今回は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に変更しています。