こんな人にオススメ

  • Google広告のレポート作成を自動化したい
  • Looker Studio(データポータル)ではなく、スプレッドシートで関数つかって処理したい

使用するプログラム

function main() {

    const FileID = 'スプレッドシートのID'
    const temp_sheet = SpreadsheetApp.openById(FileID).getSheetByName('シートの名前');

    var dt = new Date();
        dt.setMonth(dt.getMonth()-4);

    const from =  Utilities.formatDate(dt, 'Asia/Tokyo', 'yyyyMMdd');
    const to = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd');
  
    var report = AdsApp.report(
      'SELECT Date, CampaignName, Clicks, Impressions, Cost ' +
      'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
      'WHERE  Cost > 0 ' +
      'DURING ' + from + ',' + to
                              );
  
    temp_sheet.clear();
    report.exportToSheet(temp_sheet);
    if (temp_sheet.getLastRow() == 1) {
        return;
    }
}

プログラムの解説

3行目で出力先のスプレッドシートを指定します。
IDはスプレッドシートのURLから判別できます。
4行目はシートの名前を指定します。

6〜10行目はレポートの出力期間の設定用のプログラムです。
集計期間は今日から4ヶ月前。
ここは完全に私個人が使いやすい期間に設定してますので、どうぞみなさんで好きに設定してください。
集計プログラムが実行されたら、一度スプレッドシートを白紙にして、今日から4ヶ月前のデータを出力するように設定しているので、つねに直近4ヶ月間という形になります。
6〜7行目で今日から4ヶ月前の日付を作成して、9〜10行目で開始日と終了日の変数に宣言します。
fromに20220101を宣言すれば、2022年1月1日から今日までになります。

12〜17行目はSELECT関数になります。
カラムは「日付」「キャンペーン名」「クリック数」「インプレッション数」「費用」。
テーブル「CAMPAIGN_PERFORMANCE_REPORT」から。
費用が発生しているデータのみ。
今日から4ヶ月前までの期間。

21行目で指定したスプレッドシートの内容をねんのためクリア。おまじない。
22行目以降でレポートを出力して終了になります。

Yahoo広告スクリプトについて記事を書きました。