コピペでOK! スクリプトで広告レポートを自動作成

Yahoo!広告レポートを自動化しよう!スクリプトを使って業務効率UP

テンプレートでコピペOK!Yahoo!広告 スクリプトを使用し、Google スプレッドシート上に日別レポートを自動作成する方法を紹介します。また、指標を追加したり、特定の期間の数値を取得するスクリプトのカスタマイズ方法も併せて解説します!

「忙しいのに毎日広告レポートを作成するのは大変だな...」と、広告運用者の方であれば一度でも思ったことがあるのではないでしょうか? また、「レポートの数値を見て示唆を出すことを求められているのに、レポート作成に時間がとられてしまって手一杯」という状態の方もいるのではないでしょうか?

求められている本来の仕事をするためには、レポート作成という作業を効率的に行いたいものです。これまでの連載ではGoogle 広告スクリプトを用いたレポート作成や日予算変更、広告文の検証方法について解説しました。今回は、Yahoo!広告 スクリプトを用いたレポート作成を自動化する方法を紹介していきます。コピペするだけでもすぐに使えるものを紹介しますので、Yahoo!広告 スクリプトを学んでレポート作成を効率的に行っていきましょう!

Yahoo!広告レポートを自動化しましょう​​​​

広告スクリプトで超時短!レポートを自動で取得&反映

今回紹介するYahoo!広告 スクリプトを用いることで、管理画面へのログインやレポートのダウンロードなど、レポート作成に関わる作業を自動化できます。今回はまず、日別レポートの自動作成をゴールにしましょう。

日別レポートを自動作成しましょう

レポート作成のために用意するもの

まずは、Google スプレッドシートとYahoo!広告 スクリプトのコードを準備します。今回はスクリプトを試しに使えるよう、テスト用のスプレッドシートを以下に準備しました。必ず自分のGoogle ドライブに複製してご利用ください。自社のデータを使う場合、スプレッドシートは事前に複製してください。

スプレッドシートの準備ができたら、赤枠部分をコピーします。

スプレッドシートのIDは「https://docs.google.com/spreadsheets/d/」から「/edit#gid=~」の間をコピー

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!広告の検索広告で機能するスクリプトを実行します。

Yahoo!広告アカウントにログイン

Google アカウントと連携する

右上のメニューの「ツール」から「Yahoo!広告 スクリプト」をクリックします。

「Yahoo!広告 スクリプト」をクリック

スクリプトの一覧ページが表示されました。Google アカウントと連携するために右上の「外部ツール連携」をクリックします。

「外部ツール連携」をクリック

外部ツール連携ページが表示されました。「Sign in with Google」をクリックします。

「Sign in with Google」をクリック

アカウント選択画面が表示されます。複製したスプレッドシートを所有している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!広告へログイン

ログインが完了すると、スクリプトがYahoo!広告にアクセスすることを許可するよう求められます。「承認」をクリックします。

「承認」をクリック

スクリプト登録の画面に戻ると「実行」ボタンが現れます。「実行」をクリックします。

「実行」をクリック

ブラウザ上部でスクリプトを実行して問題ないか再確認されます。「OK」をクリックします。

「OK」をクリック

ステータス欄が実行中に変わりました。

数秒から数十秒で実行が完了し成功と表示されます。

ステータスが成功と表示されます

スプレッドシートの「raw」シートにレポートが出力されました。
※キャプチャは、ダミーデータを使用しています。

レポートが出力された状態

さらに、「raw」シートを参照する「日別レポート」のシートには数値が反映されました。これで完成です。

「日別レポート」のシートには数値が反映

実行スケジュールを設定

スクリプトが上手く動いたのを確認したら、次はレポートを作成する頻度を設定します。実行頻度が未設定となっている箇所をクリックします。

実行頻度が未設定となっている箇所をクリック

実行頻度を設定する画面が表示されました。

実行頻度を設定する画面

「毎日」にチェックをして実行したいタイミングを設定します。今回は8:00にしました。設定できたら「保存」をクリックします。

「毎日」にチェックをして実行したいタイミングを設定

スクリプト一覧画面で日別レポートの実行頻度が「毎日 08:00」になっていることを確認できたら完了です。これで、定期的にレポート取得が行われるようになります。

定期的にレポート取得が行われるように

【応用編】もっと知りたい人向けの解説パート

無事に自動処理はできたでしょうか?ここから先はサンプルコードの解説や、コードを書き換えてカスタマイズしてみたい人に向けた応用編です。

スクリプトには何が書いてあったの?サンプルコードの解説

今回の記事で使ったサンプルコードには何が書いてあったのか、分解して解説します。このコードでは、以下の3つの処理を行っています。

  1. 出力先のスプレッドシートを設定
  2. 指定した条件を基にレポートを取得
  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!広告 スクリプトを活用して、日々のレポート作成作業の効率を改善していきましょう。

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

インフルエンサー
「世間に与える影響力が大きい人物」のこと。一般にはSNSの有名人、タレント、知識 ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]