【無料】Yahoo!広告のレポートをスプレッドシートに自動反映させる方法(Yahoo!広告スクリプト)

Yahoo!広告のレポーティング業務が非常に面倒くさいと思っていることでしょう。

広告代理店であれば、ある程度レポーティング環境が整っているでしょう。しかし、小さい事業会社やスタートアップだと広告のレポーティングも全部マーケターがやらなければなりません。

広告のレポートを自動化するだけのサブスクに投資をしてくれるとも思えません(というか社長に頼むの忍びないし)。

なので、今回はあなたにスキルアップしてもらい、Yahoo!広告のレポーティングを自動化する方法を解説していきます

Yahoo!広告スクリプトについて解説をした上で、

もちろん、今すぐ広告のレポートを作成したいという人もいらっしゃるでしょう。そういう場合は、「Yahoo!広告自動レポートの手順」に飛んでください。

そこで、コピペでYahoo!広告のスクリプトを作成できる方法を解説いたします。

Yahoo!広告スクリプトとGoogleアカウントの連携

まず、Yahoo!広告スクリプトとGoogleアカウントを連携する必要があります。

Googleアカウントで承認をすることで、Yahoo!広告のスクリプトをまとめていきます。

まずは、Yahoo!広告にログインした状態にしてください。

①Yahoo!広告の「ツール」をクリック」

②Yahoo!広告スクリプトをクリックしてください。

Yahoo!広告スクリプトを解説していきます。

「外部ツール連携」という歯車(⚙)が書かれているところをクリックしてください。

上記の「Sign in with Google」をクリックします。

「続行」をクリックします。

これにて、Yahoo!広告とGoogleアカウントの連携が完了します。

Yahoo!広告スクリプトを実装

ベースとなるコードをYahoo!広告スクリプトにコピペする

Yahoo!広告スクリプトで使えるものは以下でございます。

JavaScript
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:取得するデータの期間

reportType:レポートタイプを指定

サンプルコードでは、’CAMPAIGN’で指定しています。

JavaScript
    reportType: 'CAMPAIGN',

キーワードレポートや、検索クエリレポートなどそれぞれ指定することができます。

reportType説明
CAMPAIGNキャンペーンレポートです。
ADGROUP広告グループレポートです。
AD広告レポートです。
KEYWORDSキーワードレポートです。
SEARCH_QUERY検索クエリーレポートです。
RESPONSIVE_ADS_FOR_SEARCH_ASSETレスポンシブ検索広告アセットレポートです。

fields:スプレッドシートに出力するデータ

Yahoo!広告レポートのfieldsを指定します。

以下のフィールドを指定することで、どのデータを取得するかを決めます。

JavaScript
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:取得するデータの期間

レポートの期間を指定することができます。

今回の例では今月分のレポートを作成するためreportDateRangeTypeは「THIS_MONTH(本日を含む当月)」を指定しています。

以下1点ご注意ください。

・文字列なので、項目を’(シングルクオーテーション)または”(ダブルクオーテーション)で囲むこと

よく使われるreportDateRangeTypeは以下のとおりです。

reportDateRangeType説明
TODAY本日です。
YESTERDAY昨日です。
LAST_7_DAYS本日を除く、過去7日間です。
LAST_14_DAYS本日を除く、過去14日間です。
LAST_30_DAYS本日を除く、過去30日間です。
LAST_MONTH前月です。

Yahoo!広告レポートの具体例

検索語句ごとのコンバージョン数を確認

  • 日別・キャンペーン別・クリック数・コンバージョン数(一般的なレポート)
  • 検索語句別コンバージョン数レポート

検索語句レポートなど、様々なことが考えられます。

yahoo_raw.js
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_raw.js
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で学習してみると良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です