0
1

More than 3 years have passed since last update.

Webサイトの分析をする中、週次でその時点のDAU(Daily Active User)の平均値を記録しておく必要がありました。
今回はDataportalを使用して可視化を行っていたので、スプレッドシートにデータを書き込む必要があります。

①スプレッドシートを作成してスクリプトエディタを開く
image.png

②GASでGAのAPIを利用するために「Analytics Reporting API」を有効にします
※画面崩れはご愛嬌
image.png
これにより、AnalyticsReportingというクラス名でapiを呼び出すことができます。

③実装

function myFunction() {
  const response = AnalyticsReporting.Reports.batchGet({
    reportRequests: [{ // リクエストのBodyを作成
      viewId: '********', // GAのビューIDを指定
      dateRanges: [{startDate: '2020-04-01',endDate: '2021-03-31'}], // 取得する範囲を指定(今回は2020年度) 
      metrics: [{expression: 'ga:1dayUsers',}], // 取得する指標
      dimensions:[{name: 'ga:date'}] // 取得するディメンション
    }]
  });
  // レスポンスのJSON階層が根深いので頑張って取り出す
  const rows = JSON.parse(response).reports[0].data.rows;
  var sum = 0;
  rows.forEach(row => {sum += parseInt(row.metrics[0].values[0])});
  let dau = sum / rows.length; // 平均値を算出 
  // スプレッドシートに一行追加
  const spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
  const sheet = spreadsheet.getActiveSheet(); 
  const date = new Date(); // 取得日時を設定する為にDate型の変数を定義
  sheet.appendRow([Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd'), dau]);
}

④結果確認
image.png

⑤あとはスクリプトをスケジュールで起動するように設定しておけばOK
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1