Yahoo!広告 スクリプト | Developer Center
Englishオーディエンスリスト(顧客データ)の自動アップロード
スクリプトの概要
ディスプレイ広告では、広告主様が保有している顧客データのファイルをアップロードして、オーディエンスリストにインポートできます。Yahoo!広告 スクリプトでは、このインポート作業を自動化できます。自動アップロードを利用することで、常に最新のデータを活用することができます。
インポートファイルの作成について
インポートファイルの作成方法については、こちらのヘルプをご覧ください。
パターン1:Googleドライブ上に置いたファイルから自動でアップロードする場合
パターン2:Googleスプレッドシートからアップロードする場合
必要な設定
共通
1. Yahoo!広告スクリプトとGoogleアカウントを連携します
詳しくはGoogleアカウントとの連携を確認してください。
※すでに連携済みの方は次のステップからご設定ください。
※サイトリターゲティングIDの確認についての詳細はこちらのヘルプをご覧ください
※オーディエンスリストIDの確認についての詳細はこちらのヘルプをご覧ください
パターン1:Googleドライブ上のファイルからアップロードする場合
1. Googleドライブにオーディエンスリスト(顧客データ)インポート用のファイルをアップロードしますオーディエンスリスト(顧客データ)インポート用のファイルの仕様は、こちらのヘルプをご確認ください。
2. Googleドライブにアップロードした対象のファイルIDを取得します
詳しくはGoogleドライブのファイルIDの取得方法をご確認ください。
パターン2:Googleスプレッドシートからアップロードする場合
1. GoogleスプレッドシートのA列に、下記のように顧客データを記載します(以下の例はaaid)2. 1のスプレッドシートIDを取得します
詳しくはGoogleスプレッドシートIDの取得方法をご覧ください。
サンプルコード
下記のスクリプトを、灰色のコメント部分も含めてコピーしてスクリプトの入力画面に貼り付け、スクリプト内に記載のある利用方法に沿って定数を設定してください。パターン1:Googleドライブ上のファイルからアップロードする場合
/*
■スクリプト内容
指定したGoogleドライブのファイルから、オーディエンスリスト(顧客データ)をアップロードします。
■利用方法
1.当スクリプトを、ディスプレイ広告のスクリプトとしてください。
2.定数を以下のように設定してください。
■定数
・FLAG_MAIL:結果をメール送信するならtrue、しないならfalse
・MAIL_TO:メール送信先のYahoo! BusinessID
・MAIL_TITLE:メールタイトル
・RETARGETING_TAGID:管理画面上でサイトリターゲティングIDを確認して指定
・AUDIENCE_LISTID:管理画面上でオーディエンスリストIDを確認して指定
・FILE_ID:Googleドライブ上のファイルIDを指定(参考:https://ads-developers.yahoo.co.jp/ja/ads-script/post/30390362.html#title-fileId)
・UPLOAD_TYPE:IDFA、AAID、MAIL_ADDRESSの3つが利用できます。詳細はこちら→https://ads-developers.yahoo.co.jp/ja/ads-script/product-guide/reference/enums/display.AudienceListServiceUploadUserListUploadType.html
・COMPRESS_TYPE:圧縮なしの場合は「NONE」、ZIP形式で圧縮している場合は「ZIP」
*/
const FLAG_MAIL = true;
const MAIL_TO = ['Yahoo! BusinessID'];
let MAIL_TITLE = '【Yahoo!広告 Script】オーディエンスリスト自動アップロード';
const RETARGETING_TAGID = '1A2B3C4D5E';
const AUDIENCE_LISTID = 1234567890;
const FILE_ID = '11111AAAAAbbbbb_-222222BBBBBccccc';
const UPLOAD_TYPE = 'AAID';
const COMPRESS_TYPE = 'NONE';
function main() {
const accountId = AdsUtilities.getCurrentAccountId();
try {
const fileData = DriveApp.getFileById(FILE_ID).getBlob().getBytes();
let uploadList = Display.AudienceListService.uploadUserList(accountId, RETARGETING_TAGID, AUDIENCE_LISTID, UPLOAD_TYPE, COMPRESS_TYPE, fileData).rval;
if (uploadList.values[0].operationSucceeded) {
sendEmail('オーディエンスリストの自動アップロードが完了しました。');
} else {
throw new Error('アップロード時にエラーが発生しました');
}
} catch (error) {
MAIL_TITLE = '!!エラー!!' + MAIL_TITLE;
sendEmail('オーディエンスリストの自動アップロードでエラーが発生しています!!詳細は管理画面のログをご確認ください。\n' + error);
}
}
function sendEmail(text) {
if (FLAG_MAIL) {
MailApp.sendEmail({
to: MAIL_TO,
subject: MAIL_TITLE,
body: text,
});
} else {
//メール送信しない場合はログ出力
Logger.log(text);
}
}
パターン2:Googleスプレッドシートからアップロードする場合
/*
■スクリプト内容
指定したGoogleスプレッドシートから、オーディエンスリスト(顧客データ)をアップロードします。
■利用方法
1.当スクリプトを、ディスプレイ広告のスクリプトとしてください。
2.定数を以下のように設定してください。
■定数
・FLAG_MAIL:結果をメール送信するならtrue、しないならfalse
・MAIL_TO:メール送信先のYahoo! BusinessID
・MAIL_TITLE:メールタイトル
・RETARGETING_TAGID:管理画面上でサイトリターゲティングIDを確認して指定
・AUDIENCE_LISTID:管理画面上でオーディエンスリストIDを確認して指定
・SPREAD_SHEET_ID //スプレットシートIDを指定(参考:https://ads-developers.yahoo.co.jp/ja/ads-script/post/30390362.html#ssid)
・SHEET_NAME //スプレッドシートのシート名
・UPLOAD_TYPE:IDFA、AAID、MAIL_ADDRESSの3つが利用できます。詳細はこちら→https://ads-developers.yahoo.co.jp/ja/ads-script/product-guide/reference/enums/display.AudienceListServiceUploadUserListUploadType.html
・COMPRESS_TYPE:圧縮なしの場合は「NONE」、ZIP形式で圧縮している場合は「ZIP」
*/
const FLAG_MAIL = true;
const MAIL_TO = ['Yahoo! BusinessID'];
let MAIL_TITLE = '【Yahoo!広告 Script】オーディエンスリスト自動アップロード';
const RETARGETING_TAGID = '1A2B3C4D5E';
const AUDIENCE_LISTID = 1234567890;
const SPREAD_SHEET_ID = 'スプレッドシートID';
const SPREAD_SHEET_NAME = 'シート1'
const UPLOAD_TYPE = 'AAID';
const COMPRESS_TYPE = 'NONE';
function main() {
const accountId = AdsUtilities.getCurrentAccountId();
try {
let sh = SpreadsheetApp.openById(SPREAD_SHEET_ID).getSheetByName(SPREAD_SHEET_NAME);
let ssDataArray = sh.getDataRange().getValues();
let fileContent = '';
ssDataArray.forEach(row => {
fileContent += row[0] + '\n';
});
let blob = Utilities.newBlob(Buffer.from(fileContent, 'utf-8'));
let uploadList = Display.AudienceListService.uploadUserList(accountId, RETARGETING_TAGID, AUDIENCE_LISTID, UPLOAD_TYPE, COMPRESS_TYPE, blob).rval;
if (uploadList.values[0].operationSucceeded) {
sendEmail('オーディエンスリストの自動アップロードが完了しました。');
} else {
throw new Error('アップロード時にエラーが発生しました');
}
} catch (error) {
MAIL_TITLE = '!!エラー!!' + MAIL_TITLE;
sendEmail('オーディエンスリストの自動アップロードでエラーが発生しています!!詳細は管理画面のログをご確認ください。\n' + error);
}
}
function sendEmail(text) {
if (FLAG_MAIL) {
MailApp.sendEmail({
to: MAIL_TO,
subject: MAIL_TITLE,
body: text,
});
} else {
//メール送信しない場合はログ出力
Logger.log(text);
}
}
結果確認
広告管理画面からオーディエンスリストを確認した際、「ユーザーサイズ」にアップロードした件数が反映されていれば完了です。ヒント
オーディエンスリストを作成した後、ユーザーサイズが確認できるまで最大で48時間程度かかる場合があります。