かずきち。の日記

サーバサイドエンジニアのつぶやき

これで毎日の謎な集計業務からお別れ!Googleアドセンスの収益を日次で集計するスクリプトで収益記録を自動化!

Googleアドセンスの収益を毎日自動でチェックしたい

アドセンスでは毎日その日の表示回数、クリック数、インプレッション収益といったレポートが上がってきます。

f:id:kazukichi_0914:20210308171232p:plain

こんなグラフが出てくるんですが、結局AdSenseにアクセスをしないといけないし億劫である。
だったらいっそのことスクリプトで広告パフォーマンスを書き出すスクリプトを書いたほうが早い。
今回の目標は、スクリプトベースでアドセンスのレポートを抜くという目標でスクリプトを書いていく。

function myFunction() {   
  //昨日の日の収益を移動
  // 現在アクティブなシートを取得
  var sheet = SpreadsheetApp.getActiveSheet();
  // そのシートにある A1:E のセル範囲を F1 セルに切り取り&貼り付けを実行
  
  //先日のAdSenseデータの移動
  sheet.getRange("B24:GU48").moveTo(sheet.getRange("C24"));
  sheet.getRange("B1:B22").copyTo(sheet.getRange("B25"));

  // 今日の日付を格納
  var date = new Date();
  Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd'));
  var today = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd');
  sheet.getRange("B24").setValue(today);

  //ここから日付を指定して収益を取得
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var adClientId = 'ca-pub-**********************:'
 var startDate = '2021-01-01';
 var endDate = '2021-01-31';
 var metrics = ['PAGE_VIEWS', 'CLICKS', 'PAGE_VIEWS_CTR', 'COST_PER_CLICK', 'PAGE_VIEWS_RPM', 'EARNINGS']
 var args = {
 'metric': metrics,
 'dimension': ['WEEK'],
 'filter': ['AD_CLIENT_ID==' + adClientId],
 };
 var report = AdSense.Reports.generate(startDate, endDate, args).getRows();
 Logger.log(report[1]);
 Logger.log(report[2]);
}

このスクリプトを毎週の定時実行にしておくと、
[ページビュー数、クリック数、CTR率、CPC、RPM、収益]を配列で返してくれます。

コードを書いたら、トリガー設定をして自動実行にする

f:id:kazukichi_0914:20210308172637p:plain

Googleには毎週決まったことなら自動でスクリプトを動かしてくれるトリガー機能がついているので、このスクリプトを毎日のAM1:00くらいに自動実行にしましょう。

tonari-it.com
引用:
https://tonari-it.com/gas-trigger-set/

トリガーを使ったことがないよという人向けに役立ちそうな記事を置いておきました。
上記スクリプトは完動ですのでご自由にお使いください。
使い方がわからない方は下記でサポートします。

AdSense収益を決まった時間に自動で記録します GASで収益の記録を自動化して、スプレッドシートに記帳

別にコードを隠すつもりはあないので、ご自由に改ざんしてください。
kazukichi0914.hatenablog.com
引用:
https://kazukichi0914.hatenablog.com/entry/2021/03/09/200000