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でNintendo Storeをチェックし指定したソフトが〇円以下の際に通知する方法
Google Apps Scriptを利用してNintendo Storeをスク ...
-
GASを使ってみて感じたメリットとデメリット
Google Apps Scriptを色々勉強した中で感じたメリットとデメリット ...
-
GASで特定サイトにログインした後にスクレイピングを行う方法
Google Apps Scriptの勉強として特定サイトにログインし、その後に ...
-
GASとLINEを連携させて通知メッセージを送る方法のメモ
Google Apps ScriptとLINEを連携させ、LINEに何らかの通知 ...
-
GASとChatworkを連携してメッセージを送信する方法
Google Apps Scriptの勉強として「Chatwork」と連携させて ...