「防災メール アーカイブ」のサイトを開設してはや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/