Google Analyticsの内容をGoogle Spreadsheetで

Pocket

防災メール アーカイブ」のサイトを開設してはや4ヶ月。どのエリアの人が、どのエリアについて見ているのか興味がある。

https://bousai-mail.info

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を見ると、多くのメール配信サービスへ誘導できていることも確認できた。

 

需要のあるサービスになりそうだし、改善点も多々あるので、もう少し改良を加えていきます。

 

参考: