Blog ブログ

FIVE

【検索広告】Yahoo!広告スクリプトを使って自動レポートを作成

2024.02.13



Yahoo!検索広告の日々のレポーティング作業を簡略化し、
分析作業に時間をしっかり使えるようにするためのデータ抽出の自動化の方法をご紹介します。

※Google広告のデータ自動抽出化について記載した記事はこちらから

 

Yahoo!検索広告データの自動出力に必要な物

・編集権限以上のYahoo!検索広告のアカウントの権限
・Googleスプレッドシート

以上です!

 

Googleスプレッドシート上の操作

広告管理画面上から操作をする前に、先にデータの抽出先になるスプレッドシートの準備をします。

スプレッドシートを新規作成した後、後ほど出力先となるタブに名称をあらかじめつけておきます。

シート内を何か操作する必要はないので、スプレッドシートのURLだけを保管しておきましょう。

後ほど赤線のd/から/editまでの英数字部分をスクリプトで利用します。

Yahoo!検索広告管理画面上の操作

手順①

Yahoo!検索広告の管理画面上で、「右上のツール」を選択した後に表示されるメニューの「運用支援」の「Yahoo!広告スクリプト」をクリックし、スクリプト画面に移動します。

※スクリプトで自動的にデータを抽出したいアカウントを開いている状態でこの操作を行ってください。

手順②

作成済のスクリプトが一覧表示される画面になるので、まずは右上の「外部ツール連携」をクリックし、Googleアカウントとの連携を実行します。

無事連携に成功すると、上記のように連携済のステータスとなります。

その後はスクリプトの一覧画面に戻り、「新規作成」ボタンからスクリプト作成画面へと移動します。

手順③

テキストを入力する枠が表示されるので、ここに自分の出したい項目などを入力していきます。コードが長い為、最上部の抜粋した部分のみを記載します。
出力項目に変更がない場合、アカウントが変わった場合でも赤字箇所の変更のみで流用が可能です。
※本記事の一番下に実際利用するサンプルコードの全文は記載しますのでご安心ください。

function main() {
reportDataToSpreadsheet();
}

function reportDataToSpreadsheet(){
const spreadsheetId = ‘1_OgROA0k4jx5JhYJwdw3rYIasxJs6CGFE8D6-WR6g8c‘ ←この赤字部分に、出力するGoogleスプレッドシートのURL d/から/edit の英数字を入力
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheetName1 = ‘デイリー‘; ←この赤字部分に、出力する出力するGoogleスプレッドシートのタブの名称を入力
const sheetName2 = ‘時間帯別‘; ←この赤字部分に、出力する出力するGoogleスプレッドシートのタブの名称を入力
const sheetName3 = ‘KW‘; ←この赤字部分に、出力する出力するGoogleスプレッドシートのタブの名称を入力
const sheetName4 = ‘検索クエリ‘; ←この赤字部分に、出力する出力するGoogleスプレッドシートのタブの名称を入力

コードを記載後、スクリプトの初回作成時には「認証」をクリックし、その後Yahoo広告と連携しているメールアドレスに承認用のコードが送られてくるのでそのコードを入力し承認しましょう。

そして保存すればスクリプトの作成は完了です。

認証を終えた後は、「実行」ができるようになっているので、そのまま実行を押してみましょう。

その後、実行履歴からスクリプトの実行状況を確認することができ、所要時間はアカウントの構成や出力するデータ数によりますが、基本的には2-3分以内に完了し、ステータスが成功になっていればスクリプトの出力も問題なく完了しています。

手順④

スクリプトの実行が完了すると、最初に作成したGoogleスプレッドシートにスクリプト内で指定した日付や項目数値が一斉に自動的に出力されるようになるので、後はこのデータを

・Excelレポートに貼り付け
・そのまま別タブで数式を作成してレポート作成
・この出力データを利用してデータポータルでレポート作成

など、お好きなように利用・調整してもらえれば完了です!

スクリプトコードの詳細

手順③で抜粋したスクリプトコードの全文を記載します。赤字部分以外はコピペでokです。

=============================

function main() {
reportDataToSpreadsheet();
}

function reportDataToSpreadsheet(){
const spreadsheetId = ‘●●●●●●●●●●●‘;
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheetName1 = ‘デイリー’;
const sheetName2 = ‘時間帯別’;
const sheetName3 = ‘KW’;
const sheetName4 = ‘検索クエリ’;
let sh1 = ss.getSheetByName(sheetName1);
let sh2 = ss.getSheetByName(sheetName2);
let sh3 = ss.getSheetByName(sheetName3);
let sh4 = ss.getSheetByName(sheetName4);
const fields1 = [‘MONTH’, ‘DAY’, ‘CAMPAIGN_NAME’,’ADGROUP_NAME’,’AD_NAME’, ‘IMPS’, ‘CLICKS’, ‘COST’, ‘CONVERSIONS’, ‘CONV_VALUE’];
const fields2 = [‘MONTH’, ‘HOUR_OF_DAY’, ‘DEVICE’, ‘CAMPAIGN_NAME’, ‘IMPS’, ‘CLICKS’, ‘COST’, ‘CONVERSIONS’, ‘CONV_VALUE’];
const fields3 = [‘MONTH’, ‘KEYWORD’, ‘KEYWORD_MATCH_TYPE’, ‘QUALITY_INDEX’, ‘CAMPAIGN_NAME’,’ADGROUP_NAME’, ‘IMPS’, ‘CLICKS’, ‘COST’, ‘CONVERSIONS’, ‘CONV_VALUE’];
const fields4 = [‘MONTH’, ‘SEARCH_QUERY’, ‘SEARCH_QUERY_MATCH_TYPE’, ‘QUERY_TARGETING_STATUS’, ‘CAMPAIGN_NAME’,’ADGROUP_NAME’, ‘IMPS’, ‘CLICKS’, ‘COST’, ‘CONVERSIONS’, ‘CONV_VALUE’];
const reports1 = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: fields1,
reportDateRangeType: ‘THIS_MONTH_EXCEPT_TODAY’,
reportType: ‘AD’,
});
sh1.clear();
sh1.appendRow(fields1);
sh1.getRange(‘A2’).setValues(reports1.reports[0].rows);

const reports2 = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: fields2,
reportDateRangeType: ‘THIS_MONTH_EXCEPT_TODAY’,
reportType: ‘CAMPAIGN’,
});
sh2.clear();
sh2.appendRow(fields2);
sh2.getRange(‘A2’).setValues(reports2.reports[0].rows);

const reports3 = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: fields3,
reportDateRangeType: ‘THIS_MONTH_EXCEPT_TODAY’,
reportType: ‘KEYWORDS’,
});
sh3.clear();
sh3.appendRow(fields3);
sh3.getRange(‘A2’).setValues(reports3.reports[0].rows);

const reports4 = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: fields4,
reportDateRangeType: ‘THIS_MONTH_EXCEPT_TODAY’,
reportType: ‘SEARCH_QUERY’,
});
sh4.clear();
sh4.appendRow(fields4);
sh4.getRange(‘A2’).setValues(reports4.reports[0].rows);

}

=============================

補足

表示回数・クリック数・コンバージョン数などの基本的な指標はこのサンプルコードで出力が可能ですが、出力する期間を変更したい場合もあると思うので、その場合の対象期間の変更方法を記載します。希望する期間がある場合は参考にしてご利用ください。

該当箇所

reportDateRangeType: ‘THIS_MONTH_EXCEPT_TODAY‘,

この赤字部分を希望する年月日の英字に変更し、出力します。良く使う内容は以下に表にしておくので、活用ください。

TODAY本日
YESTERDAY
昨日
LAST_30_DAYS
本日を除く、過去30日間
LAST_MONTH前月
THIS_MONTH
本日を含む、当月
THIS_MONTH_EXCEPT_TODAY本日を除く、当月
ALL_TIME取得可能な全期間

最後に

2023年秋ごろから2024年の1月まで新規作成が停止されてしまっていた為、記事の作成が遅くなりましたが今回はYahoo!検索のスクリプトについてご紹介しました。

あくまで汎用的なものにはなりますが、レポーティング工数の削減のお役に立てば幸いです。

ご自身でもっと調べてやりたい方はYahoo公式も参考に是非頑張ってみてください!

Yahoo!広告スクリプト公式

次回はYahoo!ディスプレイも同様に作成方法をご紹介できればと思っています。