Yahoo!広告レポートを自動化しよう!スクリプトを使って業務効率UP
「忙しいのに毎日広告レポートを作成するのは大変だな...」と、広告運用者の方であれば一度でも思ったことがあるのではないでしょうか? また、「レポートの数値を見て示唆を出すことを求められているのに、レポート作成に時間がとられてしまって手一杯」という状態の方もいるのではないでしょうか?
求められている本来の仕事をするためには、レポート作成という作業を効率的に行いたいものです。これまでの連載ではGoogle 広告スクリプトを用いたレポート作成や日予算変更、広告文の検証方法について解説しました。今回は、Yahoo!広告 スクリプトを用いたレポート作成を自動化する方法を紹介していきます。コピペするだけでもすぐに使えるものを紹介しますので、Yahoo!広告 スクリプトを学んでレポート作成を効率的に行っていきましょう!
広告スクリプトで超時短!レポートを自動で取得&反映
今回紹介するYahoo!広告 スクリプトを用いることで、管理画面へのログインやレポートのダウンロードなど、レポート作成に関わる作業を自動化できます。今回はまず、日別レポートの自動作成をゴールにしましょう。
レポート作成のために用意するもの
まずは、Google スプレッドシートとYahoo!広告 スクリプトのコードを準備します。今回はスクリプトを試しに使えるよう、テスト用のスプレッドシートを以下に準備しました。必ず自分のGoogle ドライブに複製してご利用ください。自社のデータを使う場合、スプレッドシートは事前に複製してください。
スプレッドシートの準備ができたら、赤枠部分をコピーします。
Yahoo!広告 スクリプトのサンプルコードの()内の「スプレッドシートのID」を先ほどコピペしたものに書き換えてください。
Yahoo!広告 スクリプトのサンプルコード
function main(){
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
sheet.clear();
const accountId = AdsUtilities.getCurrentAccountId();
const report = AdsUtilities.getSearchReport({
accountId: accountId,
fields: ['DAY', 'CAMPAIGN_NAME', 'IMPS', 'CLICKS', 'COST', 'CONVERSIONS'],
reportDateRangeType: 'THIS_MONTH',
reportType: 'CAMPAIGN',
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
sheet.getRange('A1').setValues(report);
}
レポート作成手順
ここから手順を説明していきます。
Yahoo!広告にログインする
まず、レポートを作成したいYahoo!広告アカウントにログインします。
※今回はYahoo!広告の検索広告で機能するスクリプトを実行します。
Google アカウントと連携する
右上のメニューの「ツール」から「Yahoo!広告 スクリプト」をクリックします。
スクリプトの一覧ページが表示されました。Google アカウントと連携するために右上の「外部ツール連携」をクリックします。
外部ツール連携ページが表示されました。「Sign in with Google」をクリックします。
アカウント選択画面が表示されます。複製したスプレッドシートを所有しているGoogle アカウントをクリックします。
Yahoo!広告 スクリプトがGoogle アカウントにアクセスすることが求められます。問題なければ「すべて選択」にチェックを入れて「続行」をクリックします。
連携が完了するとステータス欄にチェックマークが表示されます。続いて「スクリプト」タブをクリックします。
スクリプトを設定
「新規作成」をクリックします。
Yahoo!広告 スクリプトを登録する画面が表示されました。
スクリプト名を「日別レポート」として、先述したサンプルコードを記述します。スプレッドシートのIDを変更することを忘れないでください。
function main(){
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
sheet.clear();
const accountId = AdsUtilities.getCurrentAccountId();
const report = AdsUtilities.getSearchReport({
accountId: accountId,
fields: ['DAY', 'CAMPAIGN_NAME', 'IMPS', 'CLICKS', 'COST', 'CONVERSIONS'],
reportDateRangeType: 'THIS_MONTH',
reportType: 'CAMPAIGN',
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
sheet.getRange('A1').setValues(report);
}
「保存」をクリックします。
「保存」をクリックすると、「承認」ボタンが表示されます。「承認」をクリックします。
Yahoo!広告へのログインが求められますので、広告アカウントにアクセスしたときと同じようにログインします。
ログインが完了すると、スクリプトがYahoo!広告にアクセスすることを許可するよう求められます。「承認」をクリックします。
スクリプト登録の画面に戻ると「実行」ボタンが現れます。「実行」をクリックします。
ブラウザ上部でスクリプトを実行して問題ないか再確認されます。「OK」をクリックします。
ステータス欄が実行中に変わりました。
数秒から数十秒で実行が完了し成功と表示されます。
スプレッドシートの「raw」シートにレポートが出力されました。
※キャプチャは、ダミーデータを使用しています。
さらに、「raw」シートを参照する「日別レポート」のシートには数値が反映されました。これで完成です。
実行スケジュールを設定
スクリプトが上手く動いたのを確認したら、次はレポートを作成する頻度を設定します。実行頻度が未設定となっている箇所をクリックします。
実行頻度を設定する画面が表示されました。
「毎日」にチェックをして実行したいタイミングを設定します。今回は8:00にしました。設定できたら「保存」をクリックします。
スクリプト一覧画面で日別レポートの実行頻度が「毎日 08:00」になっていることを確認できたら完了です。これで、定期的にレポート取得が行われるようになります。
【応用編】もっと知りたい人向けの解説パート
無事に自動処理はできたでしょうか?ここから先はサンプルコードの解説や、コードを書き換えてカスタマイズしてみたい人に向けた応用編です。
スクリプトには何が書いてあったの?サンプルコードの解説
今回の記事で使ったサンプルコードには何が書いてあったのか、分解して解説します。このコードでは、以下の3つの処理を行っています。
- 出力先のスプレッドシートを設定
- 指定した条件を基にレポートを取得
- レポートをスプレッドシートに出力
「2.指定した条件を基にレポートを取得」では、レポートで取得したい指標や期間を指定できます。
指標を指定する
「fields: []」の[]の中では取得したい項目や指標を指定できます。
項目 | 意味 | 備考 |
DAY | 日付 | サンプルコードで使用 |
CAMPAIGN_NAME | キャンペーン名 | サンプルコードで使用 |
IMPS | 表示回数 | サンプルコードで使用 |
CLICKS | クリック数 | サンプルコードで使用 |
COST | 費用 | サンプルコードで使用 |
CONVERSIONS | コンバージョン数 | サンプルコードで使用 |
DEVICE | デバイス | |
ALL_CONV | コンバージョン数(全て) | |
IMPRESSION_SHARE | インプレッションシェア | |
BUDGET_LOST_IMPRESSION_SHARE | インプレッションシェア損失率(予算) |
※上記の表は、出典の「キャンペーンレポート」の中から一部を抜粋して、表にしています。すべての指標を確認したい場合は、上記URLから「キャンペーンレポート」をクリックし、DLして確認してください。
期間を指定する
「reportDateRangeType:」では、期間を指定できます。
項目 | 意味 | 備考 |
THIS_MONTH | 当月(本日を含む) | サンプルコードで使用 |
TODAY | 本日 | |
YESTERDAY | 昨日 | |
LAST_7_DAYS | 過去7日間(本日を除く) | |
LAST_WEEK | 先週の月曜日から日曜日 | |
LAST_14_DAYS | 過去14日間(本日を除く) | |
LAST_30_DAYS | 過去30日間(本日を除く) | |
LAST_BUSINESS_WEEK | 先週の月曜日から5営業日 | |
THIS_MONTH_EXCEPT_TODAY | 当月(本日を除く) | |
LAST_MONTH | 前月 | |
ALL_TIME | 取得可能な全期間 | |
CUSTOM_DATE | 指定期間 |
CUSTOM_DATEを使用することで特定の期間を指定することができます。以下のスクリプトは2024年1月1日から昨日までを指定しています。
function main(){
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
sheet.clear();
var today_g = new Date();
var yesterday_g = new Date(today_g.getTime() - (24 * 60 * 60 * 1000));
var yesterday = Utilities.formatDate(yesterday_g, 'Asia/Tokyo', 'yyyyMMdd');
const accountId = AdsUtilities.getCurrentAccountId();
const report = AdsUtilities.getSearchReport({
accountId: accountId,
fields: ['DAY', 'CAMPAIGN_NAME', 'IMPS', 'CLICKS', 'COST', 'CONVERSIONS'],
reportDateRangeType:'CUSTOM_DATE',
dateRange: {
startDate: '20240101',
endDate: yesterday
},
reportType: 'CAMPAIGN',
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
sheet.getRange('A1').setValues(report);
}
Yahoo!ディスプレイ広告のサンプルスクリプト
今回はYahoo!検索広告におけるYahoo!広告 スクリプトを活用したレポート取得の自動化をご紹介しました。このほか、Yahoo!ディスプレイ広告でも同様にレポート取得を自動化することができます。ぜひお試しください。
function main(){
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
sheet.clear();
const accountId = AdsUtilities.getCurrentAccountId();
const report = AdsUtilities.getDisplayReport({
accountId: accountId,
fields: ['DAY', 'CAMPAIGN_NAME', 'IMPS', 'CLICKS', 'COST', 'CONVERSIONS'],
reportDateRangeType: "THIS_MONTH",
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
sheet.getRange('A1').setValues(report);
}
Yahoo!広告 スクリプトの作成に困ったら
LINEヤフー社では、Yahoo!広告 スクリプト Developer CenterでYahoo!広告 スクリプトに関する情報を発信しています。
サンプルスクリプトも充実していますので、ぜひ参考にしてみてください。
まとめ
このように、Yahoo!広告 スクリプトでは、これまでの連載でご紹介したGoogle 広告スクリプトと同様にレポート取得が自動化できたり、操作を自動化できることが特長です。Yahoo!広告 スクリプトを活用して、日々のレポート作成作業の効率を改善していきましょう。
ソーシャルもやってます!