Yahoo!広告 スクリプト | Developer Center
English基本のレポート
更新履歴
2024/08/16 以下を追記
・出力先のセル指定について
・レポートのフィルター・並べ替えへのリンク
2024/07/24 目次を追加
目次
スクリプトの概要
Yahoo!広告スクリプトでは、Google スプレッドシートに各種レポートを直接出力することが可能です。
本ページでは、基本的なレポートの取得方法と、取得したレポートをスプレッドシートへ出力する方法について解説します。
フィルタの指定方法については、レポートのフィルター・並べ替えをご覧ください。
ご利用の流れ
1.サンプルコードをコピーしてテキストファイルに保存し、解説を見ながらサンプルコード内の(1)~(6)を書き換えます。
2.こちらの手順のとおり、Google アカウントと連携します。
3.こちらの手順のとおり、1で作ったスクリプトを実行します。
1.検索広告のキャンペーンレポート(今月、フィルタ指定なし)
サンプルコード
function main() {
const spreadsheetId = 'スプレッドシートID';//...(1)
const sheetName = 'シート1';//...(2)
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
sh.clear();
const reportData = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),// 実行中のアカウントを取得します
reportType: 'CAMPAIGN', //...(3)
fields: [
'ACCOUNT_NAME','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'//...(4)
],
reportDateRangeType: 'THIS_MONTH',//...(5)
reportSkipColumnHeader : 'FALSE',//...(6)
}).reports[0].rows; //戻り値の1つ目のレポート行を取得
sh.getRange('A1').setValues(reportData);//...(7)
}
解説
(1)出力先のスプレッドシート ID を指定します。
スプレッドシート ID については、こちらの FAQ をご覧ください。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(2)出力先のスプレッドシートのシート名を指定します。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(3)reportTypeでレポート種別を指定します。
今回の例ではキャンペーンレポートを作成するため、reportType は「CAMPAIGN」を指定しています。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
よく使われる reportType は以下のとおりです。
reportType | 説明 |
---|---|
CAMPAIGN | キャンペーンレポートです。 |
ADGROUP | 広告グループレポートです。 |
AD | 広告レポートです。 |
KEYWORDS | キーワードレポートです。 |
SEARCH_QUERY | 検索クエリーレポートです。 |
RESPONSIVE_ADS_FOR_SEARCH_ASSET | レスポンシブ検索広告アセットレポートです。 |
上記以外に指定できる値の詳細はリファレンスをご覧ください。
(4)fieldsで出力項目を指定します。
以下2点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
・配列なので、項目を,(カンマ)で区切ること
よく使われるfieldsは以下のとおりです。
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 | 曜日 |
※レポートごとに使える項目が異なります。それぞれのレポートでどの項目が使えるかは各レポート定義をご確認ください。
CSVファイル内の「フィールド名」列の内容をスクリプトに記載いただくことになります。
(5)reportDateRangeTypeでレポートデータの期間を指定します。
今回の例では今月分のレポートを作成するためreportDateRangeTypeは「THIS_MONTH(本日を含む当月)」を指定しています。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
よく使われるreportDateRangeTypeは以下のとおりです。
reportDateRangeType | 説明 |
---|---|
TODAY | 本日です。 |
YESTERDAY | 昨日です。 |
LAST_7_DAYS | 本日を除く、過去7日間です。 |
LAST_14_DAYS | 本日を除く、過去14日間です。 |
LAST_30_DAYS | 本日を除く、過去30日間です。 |
LAST_MONTH | 前月です。 |
上記以外に指定できる値の詳細はリファレンスをご覧ください。
ユーザー側で任意の日付を指定したい場合は、後述の「応用:期間を自由に指定したい場合」をご覧ください。
(6)reportSkipColumnHeaderでヘッダー行を出力するかどうか設定できます。
今回はヘッダー行を出力するため「FALSE」です。
ヘッダー行を出力したくない場合は「TRUE」を指定してください。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(7)sh.getRange('A1').setValues(reportData);でスプレッドシートのA1セル以降に書き込みます。
「A1」の部分に別のセルを指定することで、任意のセル以降に書き込むことも可能です。
この際、両側の'(シングルクオーテーション)を削除しないようご注意ください。
例)B3セル以降に書き込みたい場合
sh.getRange('B3').setValues(reportData);
2.ディスプレイ広告のキャンペーンレポート(今月、フィルタ指定なし)
サンプルコード
function main(){
const spreadsheetId = 'スプレッドシートID';//...(1)
const sheetName = 'シート1';//...(2)
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
sh.clear();
const reportData = AdsUtilities.getDisplayReport({
accountId: AdsUtilities.getCurrentAccountId(),
fields: [
'ACCOUNT_NAME','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],//...(3)
reportDateRangeType: 'THIS_MONTH',//...(4)
reportSkipColumnHeader : 'FALSE',//...(5)
}).reports[0].rows;
sh.getRange('A1').setValues(reportData);//...(6)
}
解説
(1)出力先のスプレッドシート ID を指定します。
スプレッドシート ID については、こちらの FAQ をご覧ください。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(2)出力先のスプレッドシートのシート名を指定します。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(3)fieldsで出力項目を指定します。
以下2点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
・配列なので、項目を,(カンマ)で区切ること
よく使われるfieldsは以下のとおりです。
fields | 説明 |
---|---|
ACCOUNT_ID | アカウントID |
ACCOUNT_NAME | アカウント名 |
CAMPAIGN_ID | キャンペーンID |
CAMPAIGN_NAME | キャンペーン名 |
CAMPAIGN_USER_STATUS | キャンペーン配信設定 |
ADGROUP_ID | 広告グループID |
ADGROUP_NAME | 広告グループ名 |
ADGROUP_USER_STATUS | 広告グループ配信設定 |
AD_ID | 広告ID |
AD_NAME | 広告名 |
AD_TYPE | 広告タイプ |
AD_USER_STATUS | 広告配信設定 |
GENDER | 性別 |
AGE | 年齢 |
MONTH | 月 |
DAY | 日 |
HOUR | 時間 |
DELIVER | 広告掲載方式 |
DEVICE | デバイス |
MEDIA_ID | メディアID |
MEDIA_NAME | メディア名 |
MEDIA_FILE_NAME | ファイル名 |
MEDIA_AD_FORMAT | ピクセルサイズ |
AD_TITLE | タイトル |
IMPS | インプレッション数 |
CLICK_RATE | クリック率 |
COST | コスト |
CLICKS | クリック数 |
AVG_CPC | 平均CPC |
AVG_DELIVER_RANK | 平均掲載順位 |
VIEWABLE_IMPS | ビューアブルインプレッション数 |
AVG_CPV | 平均CPV |
CONVERSIONS | コンバージョン数 |
CONV_RATE | コンバージョン率 |
COST_PER_CONV | コスト/コンバージョン数 |
CONV_VALUE | コンバージョンの価値 |
VALUE_PER_CONV | コンバージョンの価値/コンバージョン数 |
ALL_CONV | コンバージョン数(すべて) |
ALL_CONV_RATE | コンバージョン率(すべて) |
COST_PER_ALL_CONV | コスト/コンバージョン数(すべて) |
ALL_CONV_VALUE | コンバージョンの価値(すべて) |
VALUE_PER_ALL_CONV | コンバージョンの価値(すべて)/コンバージョン数(すべて) |
CONV_VALUE_PER_COST | コンバージョンの価値/コスト |
ALL_CONV_VALUE_PER_COST | コンバージョンの価値(すべて)/コスト |
CONV_VALUE_VIA_AD_CLICK_PER_COST | コンバージョンの価値(クリック経由)/コスト |
AVG_CPM | 平均CPM |
AVG_VCPM | 平均vCPM |
※レポートごとに使える項目が異なります。それぞれのレポートでどの項目が使えるかは各レポート定義をご確認ください。
CSVファイル内の「フィールド名」列の内容をスクリプトに記載いただくことになります。
(4)reportDateRangeTypeでレポートデータの期間を指定します。
今回の例では今月分のレポートを作成するためreportDateRangeTypeは「THIS_MONTH(本日を含む当月)」を指定しています。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
よく使われるreportDateRangeTypeは以下のとおりです。
reportDateRangeType | 説明 |
---|---|
TODAY | 本日です。 |
YESTERDAY | 昨日です。 |
LAST_14_DAYS | 本日を除く、過去14日間です。 |
LAST_30_DAYS | 本日を除く、過去30日間です。 |
LAST_MONTH | 前月です。 |
上記以外に指定できる値の詳細はリファレンスをご覧ください。
ユーザー側で任意の日付を指定したい場合は、後述の「応用:期間を自由に指定したい場合」をご覧ください。
(5)reportSkipColumnHeaderでヘッダー行を出力するかどうか設定できます。
今回はヘッダー行を出力するため「FALSE」を指定しています。ヘッダー行を出力したくない場合は「TRUE」を指定してください。
以下1点ご注意ください。
・文字列なので、項目を'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
※ディスプレイ広告では、一部のレポートを除いてreportTypeは指定しません。
reportTypeを指定しない場合、「fields」で指定した出力項目により、以下の単位のレポートとなります。
・アカウントレポート
・キャンペーンレポート
・広告グループレポート
・広告レポート
・リンク先URLレポート
例)「fields」で「AD_ID(広告ID)を指定した場合、広告レポートとなります。
reportTypeを指定する必要があるレポートについてはリファレンスをご覧ください。
reportTypeを指定する場合、以下1点ご注意ください。
・文字列なので、項目'(シングルクオーテーション)または"(ダブルクオーテーション)で囲むこと
(6)sh.getRange('A1').setValues(reportData);でスプレッドシートのA1セル以降に書き込みます。
「A1」の部分に別のセルを指定することで、任意のセル以降に書き込むことも可能です。
この際、両側の'(シングルクオーテーション)を削除しないようご注意ください。
例)B3セル以降に書き込みたい場合
sh.getRange('B3').setValues(reportData);
応用:期間を自由に指定したい場合
検索広告もディスプレイ広告も共通です。
reportDateRangeTypeに「CUSTOM_DATE」を設定し、dateRangeを以下のように指定します。
reportDateRangeType:'CUSTOM_DATE',
dateRange: {
startDate: '20230101',//開始日をYYYYMMDD形式で指定
endDate: '20230228' //終了日をYYYYMMDD形式で指定
},
「1.検索広告のキャンペーンレポート(今月、フィルタ指定なし)」のスクリプトに適用すると以下のようになります。
function main() {
const spreadsheetId = 'スプレッドシートID';
const sheetName = 'シート1';
const ss = SpreadsheetApp.openById(spreadsheetId);
let sh = ss.getSheetByName(sheetName);
sh.clear();
const reportData = AdsUtilities.getSearchReport({
accountId: AdsUtilities.getCurrentAccountId(),// 実行中のアカウントを取得します
fields: [
'ACCOUNT_NAME','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
],
//reportDateRangeType: 'THIS_MONTH',//THIS_MONTH指定は削除する
//ここに上記reportDateRangeType、dateRangeを貼り付ける
reportDateRangeType:'CUSTOM_DATE',
dateRange: {
startDate: '20230101',//開始日をYYYYMMDD形式で指定
endDate: '20230228'//終了日をYYYYMMDD形式で指定
},
//ここまで
reportType: 'CAMPAIGN',
reportSkipColumnHeader : 'FALSE',
}).reports[0].rows; //戻り値の1つ目のレポート行を取得
sh.getRange('A1').setValues(reportData);//スプレッドシートへの書き込み処理
}