「防災メール アーカイブ」のサイトを開設してはや4ヶ月。どのエリアの人が、どのエリアについて見ているのか興味がある。
Google Analyticsの結果をもっと詳しく見ていきたいのだが、Google Analyticsではページのurlはわかるけど、ページのタイトルとかがわからない。
そこで、Google Analytics結果をGoogle Spreadsheetで読み込み、そこから情報を探っていく方法のメモ。
Google Analyticsの結果をGoogle Spreadsheetに表示する
Google Analytics Spreadsheet Add-onを使う。
https://developers.google.com/analytics/solutions/google-analytics-spreadsheet-add-on
Google Analyticsで取得できるGoogleアカウントを使うこと。
設定方法については、例えばこちら https://www.quicksprout.com/the-complete-guide-to-the-google-analytics-add-on-for-google-sheets/
これで、Google AnalyticsのほしいデータをGoogle Spreadsheetに表示できた。
Google App ScriptでオレオレAPIを叩く
Google App Scriptについてはこちら https://www.quicksprout.com/the-complete-guide-to-the-google-analytics-add-on-for-google-sheets/
bousai-mail.info で、urlからその投稿のカテゴリー(エリア)や投稿日時が知りたい。
Google Analyticsではurlの一覧が出るので、その表にエリアを表示したい。
こんな感じで、2個となりのcellの情報を、POSTして、取得した情報(エリア名)を表示する。
function getTermArea() {
var str = getAdjacentValue();
var payload = {
"str" : str
};
var options = {
'method': 'post',
"payload" : payload
}
// Call hogehoge.php
var response = UrlFetchApp.fetch("https://bousai-mail.info/hogehoge.php", options);
Logger.log(response.getContentText());
return response.getContentText();
var fact = response.getContentText();
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,1).setValue([fact]);
}
// 2個左隣りのcellの値を
function getAdjacentValue() {
var range = SpreadsheetApp.getActiveRange();
var col = range.getColumn();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange(row,col-2);
return range2.getValue();
}
postする先のhogehoge.php(適当なphpファイル)を作って
<?php
require('wp-load.php');
if( $_POST['str'] ){
$url = home_url() . $_POST['str'];
$post_id = url_to_postid( $url );
if( $post_id ){
$post = get_post( $post_id );
// get area
$terms = get_the_terms( $post_id, 'area');
$return = array();
foreach( $terms as $term ){
$name = $term->name;
if( $term->parent != 0)
$name = get_parent_term_name( $term ) ;
$return[] = $name;
}
echo implode( ',', $return );
exit;
} else {
// なし
echo '';
exit;
}
}
function get_parent_term_name( $term ){
$name = $term->name;
if( $term->parent != 0 ){
$parent_term = get_term( $term->parent, 'area' );
$name = get_parent_term_name($parent_term) . ' ' . $name;
}
return $name;
}
とすれば、投稿のほしい情報(上記だと、postの”area”というカスタムタクソノミー)が返ってくる。

関東の情報に関心が高いことがわかった。

アクセスも関東が多いが、愛知や大阪、北海道からも。
防災メール・アーカイブは、あくまで防災メールを情報を転載しているだけなので、一次情報をタイムリーに取得するには、各情報源から直接もらえるように、各々がメール配信サービスに登録してほしい。
Outbound linkを見ると、多くのメール配信サービスへ誘導できていることも確認できた。
需要のあるサービスになりそうだし、改善点も多々あるので、もう少し改良を加えていきます。
参考:
- Google App ScriptからHTTP POSTする方法 https://qiita.com/n0bisuke/items/a31a99232e50461eb00f
- スプレッドシートでGoogleアナリティクスレポート作成を自動化する方法 https://service.plan-b.co.jp/blog/ad/10698/

