MENU

Google広告スクリプトでスプレッドシートの情報に基づいて日予算を変更する方法

  • URLをコピーしました!

今回はGoogle広告スクリプトを用いてスプレッドシートの情報に基づいて日予算を変更する方法を紹介します。

目次

サンプルコード

function main() {
  // スプレッドシートを指定
  var spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/スプレッドシートのURL/');
  // シート名を指定
  var sheet = spreadsheet.getSheetByName('シート名');
  // 最終行を取得
  var lastRow = sheet.getLastRow();
  // 最終行が1行目の場合は終了
  if (lastRow == 1) {
    Logger.log('campaign does not exist.');
    return;
  }
  // 範囲を取得
  var range = sheet.getRange(2, 1, lastRow-1, 2).getValues();
  Logger.log(range);

  for (let i = 0; i < lastRow-1; i++) {
    // キャンペーンIDを取得
    var campaignId = range[i][0];
    Logger.log(campaignId);
    // 日予算を取得
    var amount = range[i][1];
    Logger.log(amount);
    // キャンペーンの存在を確認
    const campaignIterator = AdsApp.campaigns()
          .withIds([campaignId])
          .get();
    // キャンペーンが存在しない場合はアラート
    if (!campaignIterator.hasNext()) {
      throw new Error(`No campaign found with id "${campaignId}"`);
    }
    // 日予算を更新
    const campaign = campaignIterator.next();
    campaign.getBudget().setAmount(amount);
  }
}

サンプルコードの説明

スプレッドシートを指定する

  // スプレッドシートを指定
  var spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/スプレッドシートのURL/');
  // シート名を指定
  var sheet = spreadsheet.getSheetByName('シート名');
  // 最終行を取得
  var lastRow = sheet.getLastRow();
  // 最終行が1行目の場合は終了
  if (lastRow == 1) {
    Logger.log('campaign does not exist.');
    return;
  }
  // 範囲を取得
  var range = sheet.getRange(2, 1, lastRow-1, 2).getValues();
  Logger.log(range);

事前にスプレッドシートにキャンペーンID・更新したい日予算を記入しておきます。今回は1円に変更します。

更新前のキャンペーンの日予算は2円、3円です。

キャンペーン日予算を更新

  for (let i = 0; i < lastRow-1; i++) {
    // キャンペーンIDを取得
    var campaignId = range[i][0];
    Logger.log(campaignId);
    // 日予算を取得
    var amount = range[i][1];
    Logger.log(amount);
    // キャンペーンの存在を確認
    const campaignIterator = AdsApp.campaigns()
          .withIds([campaignId])
          .get();
    // キャンペーンが存在しない場合はアラート
    if (!campaignIterator.hasNext()) {
      throw new Error(`No campaign found with id "${campaignId}"`);
    }
    // 日予算を更新
    const campaign = campaignIterator.next();
    campaign.getBudget().setAmount(amount);
  }

Yahoo!広告スクリプトではキャンペーン・日予算の情報は空配列に蓄積して、配列を丸ごと入稿していましたが、Google広告スクリプトではそれぞれ入稿を行います。

Google広告はプレビュー機能がありますので、まずはプレビューしてみます。実行前に確認できるのは良いですね。

プレビューをしたら、実行します管理画面にも正しく反映されています。

Google広告スクリプトの参考ページ

今回はGoogle広告スクリプトのサンプルコード「Set a campaign budget」をベースに開発しました。
サンプルではキャンペーン名をキーにしていますが、キャンペーン名はユニークにならない可能性があるためキャンペーンIDに変更しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次