GASとGoogleアナリティクスを連携させ昨日分のアクセス数TOP3位のページタイトル及び合計アクセス数を取得する方法
GASとGoogleアナリティクスを連携させて「昨日分のアクセス数TOP3位のページタイトルと当該ページのアクセス数」及び「昨日分の合計アクセス数」を取得したい。Google Analytics Data APIを使うことで実装できる模様。以下にソースコードと実装方法をメモ。
Google Analytics Data API
リファレンス
https://developers.google.com/analytics/devguides/reporting/data/v1?hl=ja
GASの準備
「サービス→Google Analytics Data API」を選択し追加しておく。今回はバージョンv1betaを使用した。
尚、似たようなAPIで「Analytics Reporting API」というのもあるので間違えないよう注意。
実装方法
ソースコード
function runReport() { //Google AnalyticsプロパティID const PROPERTY_ID = '【プロパティID】'; //取得したいメトリクスの名前 const METRIC_NAMES = ['screenPageViews']; //取得したいディメンジョンの名前 const DIMENSION_NAMES = ['Date', 'pageTitle', 'eventName']; //取得期間の開始終了 const START_DATE = 'yesterday'; const END_DATE = 'yesterday'; const metrics = METRIC_NAMES.map((x) => { const tmp = AnalyticsData.newMetric(); tmp.name = x; return tmp; }); const dimensions = DIMENSION_NAMES.map((x) => { const tmp = AnalyticsData.newDimension(); tmp.name = x; return tmp; }); const dateRange = AnalyticsData.newDateRange(); dateRange.startDate = START_DATE; dateRange.endDate = END_DATE; const request = AnalyticsData.newRunReportRequest(); request.dimensions = dimensions; request.metrics = metrics; request.dateRanges = dateRange; const report = AnalyticsData.Properties.runReport(request,'properties/' + PROPERTY_ID); if( !report.rows ){ return; } let count = 1; let limit = 3; let all_pv = 0; let body = ''; for( const row of report.rows ){ const title = row.dimensionValues[1].value; const pv = Number(row.metricValues[0].value); if( count <= limit ){ body += `${count}位 ${title} | ${pv}pv\n`; } count = count + 1; all_pv = all_pv + pv; } body += `合計${all_pv}pv`; console.log(body); return false; }
書き換える場所
PROPERTY_IDは自サイトのプロパティIDを記述する。imitを書き換えることで上記〇位が設定できる。
その他連携
bodyに「昨日分のアクセス数TOP3位のページタイトルと当該ページのアクセス数」及び「昨日分の合計アクセス数」が入るので例えばだけど結果を指定のアドレスにメールを送りたい場合は以下過去記事を参考にGmail連携させる。
関連記事
-
GASを使ってみて感じたメリットとデメリット
Google Apps Scriptを色々勉強した中で感じたメリットとデメリット ...
-
GASで祝日一覧(年月日と祝日名)データをJSON出力するAPIを作成
PHPのシステム案件で祝日を取得し、処理を行う箇所があった。Googleカレンダ ...
-
GASとGoogleカレンダを連携し暦通りではない店休日を取得する方法
小売店等のサイトで営業日カレンダーみたいなものを表示させる際に今まではPHPで管 ...
-
GASを利用してGmailに届いたメール内容をGoogleスプレッドシートに記入する方法
WordPressのContact Form7から送信した内容をGmailで受け ...
-
GASでGoogleカレンダーと連携してイベントの取得・追加・削除
Google Apps Scriptの勉強としてGoogleカレンダーと連携させ ...