こんな人にオススメ
- Yahoo広告のレポート作成を自動化したい
- Looker Studio(データポータル)ではなく、スプレッドシートで関数つかって処理したい
Yahoo広告スクリプトとは
Yahoo!広告スクリプトは、Yahoo!広告の入稿や配信設定変更、レポート作成を自動化できる、JavaScriptベースの自動化支援ツールです。Googleドライブ、Googleスプレッドシートと連携したデータ入出力、Slackメッセージやメールの送信、Yahoo!天気・災害の天気予報データに基づいた広告配信などにも対応しています。
出典:https://ads-developers.yahoo.co.jp/ja/ads-script/
Javascriptで利用できるYahoo広告自動化のためのサービスです。
Yahoo天気で晴れ予報ならなら晴れの日バージョンの広告キャンペーンを、雨なら雨の日用のものを適応する。といったことができるようになります。
2023年2月15日(水)から実施されたサービスです。
利用方法
Yahoo広告スクリプトのご利用ガイドに沿って設定すれば、すぐに使えるようになります。
出力するGoogleスプレッドシートに紐づくGoogleアカウントとの連携も忘れずに。
使用するプログラム -検索広告版-
const spreadsheetId = 'スプレッドシートのID';
const sheetName = 'シートの名前';
const pastDays = 120; // 過去120日分
function formatDate(date) {
return date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2);
}
function main() {
const accountId = AdsUtilities.getCurrentAccountId();
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
// Clear the contents of the sheet
sh.clear();
const today = new Date();
const endDate = formatDate(today);
today.setDate(today.getDate() - pastDays);
const startDate = formatDate(today);
const reports = AdsUtilities.getSearchReport({
accountId: accountId,
dateRange: {
endDate: endDate,
startDate: startDate,
},
fields: ['DAY', 'CAMPAIGN_NAME', 'CLICKS', 'IMPS', 'COST', 'CONVERSIONS'],
reportDateRangeType: 'CUSTOM_DATE',
reportType: 'CAMPAIGN',
reportSkipColumnHeader : 'FALSE',
}).reports[0].rows;
sh.getRange('A1').setValues(reports);
}
プログラムの解説
過去のブログ記事「Google広告のレポートを定期的にスプレッドシートに出力する用のGoogle広告のスクリプト」と同じ項目でレポート出力します。
1行目と2行目でスプレッドシートの指定をします。
3行目は過去何日分のレポートを出力するか指定します。
5〜7行目は日付フォーマットをyyyyMMddにする関数。
10行目はYahoo広告のアカウントIDを取得。
12〜15行目はスプレッドシートを開いて一度全部消去。
17〜20行目は今日の日付と120日前の日付を取得してフォーマットを揃えています。
22〜30行目がレポートの中身の指定。
31行目がレポートの見出し行の作成。
32行目でレポートの中身を出力しています。
使用するプログラム -ディスプレイ広告版-
const spreadsheetId = 'スプレッドシートのID';
const sheetName = 'シートの名前';
const pastDays = 120; // 過去120日分
function formatDate(date) {
return date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2);
}
function main() {
const accountId = AdsUtilities.getCurrentAccountId();
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
// Clear the contents of the sheet
sh.clear();
const today = new Date();
const endDate = formatDate(today);
today.setDate(today.getDate() - pastDays);
const startDate = formatDate(today);
const reports = AdsUtilities.getDisplayReport({
accountId: accountId,
dateRange: {
endDate: endDate,
startDate: startDate,
},
fields: ['DAY', 'CAMPAIGN_NAME', 'CLICK', 'IMPS', 'COST', 'CONVERSIONS'],
reportDateRangeType: 'CUSTOM_DATE',
reportSkipColumnHeader : 'FALSE',
}).reports[0].rows;
sh.getRange('A1').setValues(reports);
}
クリック数の指定がCLICKSとCLICKの違いがあったり、ディスプレイ広告では、一部のレポートを除いてreportTypeは指定しなかったり、コピペですんなり画像広告版を作成できなかった……。