【Webマーケター必見】Yahoo広告スクリプトを使えるようになると生産性が上がる!
今回は2023年2月16日に提供開始されたYahoo広告スクリプトを使ってスプレッドシートにYahoo広告のレポーティング自動化について記事を書いていきます。
Yahoo広告スクリプトを使えば、ルーティン化されている広告効果のれポーティング業務をわざわざ人の手でやる必要がなくなるのでWebマーケティング担当者はぜひ使ってみてください。
Java Scriptを少し勉強する必要がありますが、エンジニアの手を介することなくレポーティングを自動化することができます。
こんな感じのレポーティングが自動化できる↓
Yahoo広告スクリプトを使うには
Yahoo広告アカウントがあれば、基本的に誰でも使えます。
検索広告でもディスプレイ広告でも使えてToolsタブに入ると下の方にYahoo! JAPAN Ads Scriptというボタンがあるので、こちらから入ります。
Yahoo広告スクリプトに入るとこのような画面になるので、ここでスクリプトを書いていきます。
「Create new」をクリックするとスクリプトを書く画面が立ち上がるので、ここで記述していきます。
ちなみにGoogleスプレッドシートに吐き出すには、右上の「External tool connection」というボタンをクリックしてGoogleアカウントと連携する必要があります。
ここまで来ればあとはJava Scriptを書いて自動化したいレポート指標をスプレッドシートに吐き出すだけですが、、
Java Scriptがわからないとここが結構難しい。
自分も調べながら、なんとかできました。
Yahoo広告スクリプトの例
調べながらなんとか書いたYahoo広告スクリプトの例をいくつか記載します。
過去31日間の日別アカウントレポート(コスト・インプレッション・クリック・コンバージョン)
function main(){
const accountId = AdsUtilities.getCurrentAccountId();
var today = new Date();
var end_year = today.getFullYear();
var end_month = ("00" + (today.getMonth()+1)).slice(-2);
var end_date = ("00" + (today.getDate())).slice(-2);
var end = end_year + end_month + end_date;
today.setDate(today.getDate() - 31);
var sta_year = today.getFullYear();
var sta_month = ("00" + (today.getMonth()+1)).slice(-2);
var sta_date = ("00" + (today.getDate())).slice(-2);
var sta = sta_year + sta_month + sta_date;
const startDate = sta; //Write the date in yyyyMMdd format
const endDate = end;
const spreadsheetId = 'スプレッドシートのIDを入れる';
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheetName = 'レポート抽出したいシート名を入れる';
let sh = ss.getSheetByName(sheetName);
const reports = AdsUtilities.getSearchReport({
accountId: accountId,
dateRange: {
endDate: endDate,
startDate: startDate,
},
fields: ['DAY','COST', 'IMPS', 'CLICKS', 'CONVERSIONS'],
reportDateRangeType: 'CUSTOM_DATE',
reportType: 'ACCOUNT',
});
sh.getRange('レポート抽出したいセル番号を入れる').setValues(reports.reports[0].rows);
}
過去31日間の日別キーワードレポート(コスト・インプレッション・クリック・コンバージョン)
function main(){
const accountId = AdsUtilities.getCurrentAccountId();
var today = new Date();
var end_year = today.getFullYear();
var end_month = ("00" + (today.getMonth()+1)).slice(-2);
var end_date = ("00" + (today.getDate())).slice(-2);
var end = end_year + end_month + end_date;
today.setDate(today.getDate() - 31);
var sta_year = today.getFullYear();
var sta_month = ("00" + (today.getMonth()+1)).slice(-2);
var sta_date = ("00" + (today.getDate())).slice(-2);
var sta = sta_year + sta_month + sta_date;
const startDate = sta;//Write the date in yyyyMMdd format
const endDate = end;
const spreadsheetId = 'スプレッドシートのIDを入れる';
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheetName = 'レポート抽出したいシート名を入れる';
let sh = ss.getSheetByName(sheetName);
const reports = AdsUtilities.getSearchReport({
accountId: accountId,
dateRange: {
endDate: endDate,
startDate: startDate,
},
fields: ['DAY','CAMPAIGN_NAME' ,'ADGROUP_NAME' , 'KEYWORD', 'KEYWORD_MATCH_TYPE' ,'COST', 'IMPS', 'CLICKS', 'CONVERSIONS'],
reportDateRangeType: 'CUSTOM_DATE',
reportType: 'KEYWORDS',
});
sh.getRange('レポート抽出したいセル番号を入れる').setValues(reports.reports[0].rows);
}
スクリプトを登録して「Frequency」でレポート更新したいタイミングを設定すればレポートの自動化が完成。
スクリプトを記述する際にはYahoo!広告スクリプトのサンプルスクリプトを参考にしました。