Yahoo!広告のレポーティング業務が非常に面倒くさいと思っていることでしょう。
広告代理店であれば、ある程度レポーティング環境が整っているでしょう。しかし、小さい事業会社やスタートアップだと広告のレポーティングも全部マーケターがやらなければなりません。
広告のレポートを自動化するだけのサブスクに投資をしてくれるとも思えません(というか社長に頼むの忍びないし)。
なので、今回はあなたにスキルアップしてもらい、Yahoo!広告のレポーティングを自動化する方法を解説していきます。
Yahoo!広告スクリプトについて解説をした上で、
もちろん、今すぐ広告のレポートを作成したいという人もいらっしゃるでしょう。そういう場合は、「Yahoo!広告自動レポートの手順」に飛んでください。
そこで、コピペでYahoo!広告のスクリプトを作成できる方法を解説いたします。
まず、Yahoo!広告スクリプトとGoogleアカウントを連携する必要があります。
Googleアカウントで承認をすることで、Yahoo!広告のスクリプトをまとめていきます。
まずは、Yahoo!広告にログインした状態にしてください。
①Yahoo!広告の「ツール」をクリック」
②Yahoo!広告スクリプトをクリックしてください。
Yahoo!広告スクリプトを解説していきます。
「外部ツール連携」という歯車(⚙)が書かれているところをクリックしてください。
上記の「Sign in with Google」をクリックします。
「続行」をクリックします。
これにて、Yahoo!広告とGoogleアカウントの連携が完了します。
Yahoo!広告スクリプトで使えるものは以下でございます。
function main() {
reportDataToSpreadsheet();
}
function reportDataToSpreadsheet(){
const spreadsheetId = 'シートID';
const sheetName = 'シート名';
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
sh.clear();
// AdsUtilitiesの認証が必要な場合の処理を追加
// 以下の行は認証の一例です
// AdsUtilities.init(YOUR_API_KEY);
const reportData = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: [
'ACCOUNT_NAME','DAY','MONTH','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],
reportDateRangeType: 'ALL_TIME',
reportType: 'CAMPAIGN',
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
// reportDataをスプレッドシートに書き込む
sh.getRange(1, 1, reportData.length, reportData[0].length).setValues(reportData);
}
上記が基本となるYahoo!広告スクリプトです。
コードの中で黄色の蛍光色でハイライトしている部分を修正するだけで、Yahoo!広告のレポートが自動で出力することができます。
- reportType:レポートタイプ
- fields:スプレッドシートに出力するデータ
- reportDateRangeType:取得するデータの期間
サンプルコードでは、’CAMPAIGN’で指定しています。
reportType: 'CAMPAIGN',
キーワードレポートや、検索クエリレポートなどそれぞれ指定することができます。
reportType | 説明 |
---|---|
CAMPAIGN | キャンペーンレポートです。 |
ADGROUP | 広告グループレポートです。 |
AD | 広告レポートです。 |
KEYWORDS | キーワードレポートです。 |
SEARCH_QUERY | 検索クエリーレポートです。 |
RESPONSIVE_ADS_FOR_SEARCH_ASSET | レスポンシブ検索広告アセットレポートです。 |
Yahoo!広告レポートのfieldsを指定します。
以下のフィールドを指定することで、どのデータを取得するかを決めます。
fields: [
'ACCOUNT_NAME','DAY','MONTH','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],
このフィールドで指定したデータが、このスプレッドシートのカラムとしてデータが取得されます。
よく使うフィールドの内容は以下です。
fields | 説明 |
---|---|
ACCOUNT_ID | アカウントID |
ACCOUNT_NAME | アカウント名 |
CAMPAIGN_ID | キャンペーンID |
ADGROUP_ID | 広告グループID |
KEYWORD_ID | キーワードID |
CAMPAIGN_NAME | キャンペーン名 |
ADGROUP_NAME | 広告グループ名 |
SEARCH_QUERY | 検索クエリー |
SEARCH_QUERY_MATCH_TYPE | 検索クエリーのマッチタイプ |
KEYWORD | キーワード |
COST | コスト |
IMPS | インプレッション数 |
CLICKS | クリック数 |
CLICK_RATE | クリック率 |
AVG_CPC | 平均CPC |
CONVERSIONS | コンバージョン数 |
CONV_RATE | コンバージョン率 |
CONV_VALUE | コンバージョンの価値 |
COST_PER_CONV | コスト/コンバージョン数 |
VALUE_PER_CONV | 価値/コンバージョン数 |
ALL_CONV | すべてのコンバージョン数 |
ALL_CONV_RATE | すべてのコンバージョン率 |
ALL_CONV_VALUE | すべてのコンバージョンの価値 |
COST_PER_ALL_CONV | コスト/すべてのコンバージョン数 |
VALUE_PER_ALL_CONV | 価値/すべてのコンバージョン数 |
DAY | 日 |
DAY_OF_WEEK | 曜日 |
フィールドとは、スプレッドシートの列のことです。
フィールドの最初は’DAY’(日)をお勧めします。
日毎にデータを収集しておけば、後ほど週別にしたり月別にしたり、年別にしたり集計することは簡単です。
曜日も’DAY’の情報があれば、後から計算することは可能です。
集計はスプレッドシートの関数でもできるので、まずは日の情報を取得しておきましょう。
レポートの期間を指定することができます。
今回の例では今月分のレポートを作成するためreportDateRangeTypeは「THIS_MONTH(本日を含む当月)」を指定しています。
以下1点ご注意ください。
・文字列なので、項目を’(シングルクオーテーション)または”(ダブルクオーテーション)で囲むこと
よく使われるreportDateRangeTypeは以下のとおりです。
reportDateRangeType | 説明 |
---|---|
TODAY | 本日です。 |
YESTERDAY | 昨日です。 |
LAST_7_DAYS | 本日を除く、過去7日間です。 |
LAST_14_DAYS | 本日を除く、過去14日間です。 |
LAST_30_DAYS | 本日を除く、過去30日間です。 |
LAST_MONTH | 前月です。 |
- 日別・キャンペーン別・クリック数・コンバージョン数(一般的なレポート)
- 検索語句別コンバージョン数レポート
検索語句レポートなど、様々なことが考えられます。
function main() {
reportDataToSpreadsheet();
}
function reportDataToSpreadsheet(){
const spreadsheetId = 'シートID';
const sheetName = 'シート名';
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
sh.clear();
// AdsUtilitiesの認証が必要な場合の処理を追加
// 以下の行は認証の一例です
// AdsUtilities.init(YOUR_API_KEY);
const reportData = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: [
'ACCOUNT_NAME','DAY','MONTH','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],
reportDateRangeType: 'ALL_TIME',
reportType: 'CAMPAIGN',
reportSkipColumnHeader : "FALSE",
}).reports[0].rows;
// reportDataをスプレッドシートに書き込む
sh.getRange(1, 1, reportData.length, reportData[0].length).setValues(reportData);
}
こちらは
const reportData = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: [
'ACCOUNT_NAME','DAY','MONTH','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],
fieldsというのは、スプレッドシートにこのように
このほかに、作成例として作って欲しいレポートがございましたら、本記事のコメントにご記入ください。
「〇〇別の別の△△が知りたいです」とご連絡いただけると、本記事で作成して追記します。
Yahoo!広告スクリプトは、エンジニアにわざわざ依頼しなくとも、マーケターで準備できます。
自分で広告のデータを取得することも可能なので、ぜひ本記事を参考に自力でデータを計測できるようにしてみてください。
また、Yahoo!広告スクリプトの形式は、Google Apps Scriptと全く同じなので、基礎はGoogle Apps Scriptで学習してみると良いと思います。