Yahoo!広告 スクリプト | Developer Center
English広告
・レスポンシブ広告を新規追加する・レスポンシブ検索広告を編集する
・指定した広告グループ配下の広告を配信停止にする
・全ての広告情報を取得する
・指定した全ての広告情報を取得する
・指定した広告グループ配下のレスポンシブ広告情報を取得する
レスポンシブ広告を新規追加する
function addResponsiveSearchAd() {
const accountId = AdsUtilities.getCurrentAccountId();
const adGroupAdArray = [
{
ad: {
adType: 'RESPONSIVE_SEARCH_AD',
finalUrl: 'http://xxxxxx.co.jp',
responsiveSearchAd: {
headlines: [//3 or more and less than 15
{
text: 'First headline',
pinnedField: "HEADLINE1",
activeStatus: "ACTIVE",
},
{
text: 'Second headline',
pinnedField: "UNSPECIFIED",
activeStatus: "ACTIVE",
},
{
text: 'Third headline',
pinnedField: "UNSPECIFIED",
activeStatus: "ACTIVE",
}
],
descriptions: [//2 or more and less than 4
{
text: 'First description',
pinnedField: "DESCRIPTION1",
activeStatus: "ACTIVE",
},
{
text: 'Second description',
pinnedField: "UNSPECIFIED",
activeStatus: "ACTIVE",
}
],
},
},
adGroupId: 1111111111,
adName: 'adNameAAA',
campaignId: 2222222,
userStatus: 'ACTIVE',
}
];//Multiple selections are possible
const adGroupAds = Search.AdGroupAdService.add({
accountId: accountId,
operand: adGroupAdArray,
}).rval;
for (let i = 0; i < adGroupAds.values.length; i++) {
if (adGroupAds.values[i].operationSucceeded) {
let adGroupAd = adGroupAds.values[i].adGroupAd;
Logger.log('adId-> ' + adGroupAd.adId + ', adName-> ' + adGroupAd.adName
+ ', adType-> ' + adGroupAd.ad.adType + ' has been added.');
} else {
let errorList = adGroupAds.values[i].errors;
errorList.forEach(function (element) {
if (element.code == 'I0001' && element.details[0].requestKey.includes('campaignId')) {
let text = 'campaignId-> ' + element.details[0].requestValue;
if (element.details[1].requestKey.includes('adGroupId')) {
text += ' adGroupId-> ' + element.details[1].requestValue;
}
Logger.log(text + ' does not exsit.');
} else if (element.code == 'D0001' && element.details[0].requestKey.includes('adName')) {
Logger.log('adName-> ' + element.details[0].requestValue + ' is duplicate.');
} else {
Logger.log('adName-> ' + adGroupAdArray[i].adName + ' could not be added.');
}
});
}
}
}
レスポンシブ検索広告を編集する
function setResponsiveSearchAd() {
const accountId = AdsUtilities.getCurrentAccountId();
const adGroupAdArray = [
{
ad: {
adType: 'RESPONSIVE_SEARCH_AD',
finalUrl: 'http://xxxxxx.co.jp',
responsiveSearchAd: {
headlines: [//3 or more and less than 15
{
text: 'New headline text1',
pinnedField: "HEADLINE1",
},
{
text: 'New headline text2',
pinnedField: "UNSPECIFIED",
},
{
text: 'New headline text3',
pinnedField: "UNSPECIFIED",
}
],
descriptions: [//2 or more and less than 4
{
text: 'New description text1',
pinnedField: "DESCRIPTION1",
},
{
text: 'New description text2',
pinnedField: "UNSPECIFIED",
}
],
},
},
adId: 3333333333,
adGroupId: 1111111111,
campaignId: 2222222,
userStatus: 'ACTIVE',
}
];//Multiple selections are possible
const adGroupAds = Search.AdGroupAdService.set({
accountId: accountId,
operand: adGroupAdArray,
}).rval;
for (let i = 0; i < adGroupAds.values.length; i++) {
if (adGroupAds.values[i].operationSucceeded) {
let adGroupAd = adGroupAds.values[i].adGroupAd;
Logger.log('adId-> ' + adGroupAd.adId + ', adName-> ' + adGroupAd.adName
+ ', adType-> ' + adGroupAd.ad.adType + ' has been updated.');
} else {
Logger.log('adId-> ' + adGroupAdArray[i].adId + ' could not be updated.');
}
}
}
指定した広告グループ配下の広告を配信停止にする
function pauseAdsInAdGroup(){
const accountId = AdsUtilities.getCurrentAccountId();
const adGroupIds = [111111111, 222222222];//Empty when not specified
const adGroupAdsGet = Search.AdGroupAdService.get({
accountId: accountId,
adGroupIds: adGroupIds,
userStatuses: ['ACTIVE'],
}).rval;
if (adGroupAdsGet.totalNumEntries == 0) {
Logger.log('Target ID does not exist.');
return;
}
let adGroupAdArray = [];
for (let i = 0; i < adGroupAdsGet.values.length; i++) {
let adGroupAd = adGroupAdsGet.values[i].adGroupAd;
//Create new operand to set
let adGroupAdSet = {
accountId: accountId,
campaignId: adGroupAd.campaignId,
adGroupId: adGroupAd.adGroupId,
adId: adGroupAd.adId,
userStatus : 'PAUSED'
};
adGroupAdArray.push(adGroupAdSet);
}
const adGroupAdsSet = Search.AdGroupAdService.set({
accountId: accountId,
operand: adGroupAdArray,
}).rval;
for (let i = 0; i < adGroupAdsSet.values.length; i++) {
if (adGroupAdsSet.values[i].operationSucceeded) {
let adGroupAd = adGroupAdsSet.values[i].adGroupAd;
Logger.log('adId-> ' + adGroupAd.adId
+ ', adName-> ' + adGroupAd.adName
+ ', adGroupId-> ' + adGroupAd.adGroupId
+ ', adGroupName-> ' + adGroupAd.adGroupName + ' has been paused.');
} else {
let adGroupAd = adGroupAdsGet.values[i].adGroupAd;
Logger.log('adName-> ' + adGroupAd.adName
+ ', adGroupName-> ' + adGroupAd.adGroupName + ' could not be stopped.');
}
}
}
全ての広告情報を取得する
function getAllAds(){
const accountId = AdsUtilities.getCurrentAccountId();
const adGroupAds = Search.AdGroupAdService.get({
accountId: accountId,
numberResults: 10000,//Max ads you can get is 10000.
}).rval;
if (adGroupAds.totalNumEntries == 0) {
Logger.log('Ad does not exist.');
return;
}
for (let i = 0; i < adGroupAds.values.length; i++){
let adGroupAd = adGroupAds.values[i].adGroupAd;
Logger.log('adGroupId-> ' + adGroupAd.adGroupId
+ ', adGroupName-> ' + adGroupAd.adGroupName
+ ', adId-> ' + adGroupAd.adId
+ ', adName-> ' + adGroupAd.adName);
}
}
指定した全ての広告情報を取得する
function getAllAdsById(){
const accountId = AdsUtilities.getCurrentAccountId();
const adIds = [1111111111, 2222222222];//Multiple selections are possible
const adGroupAds = Search.AdGroupAdService.get({
accountId: accountId,
adIds: adIds,
}).rval;
if (adGroupAds.totalNumEntries == 0) {
Logger.log('Target ID does not exist.');
return;
}
for (let i = 0; i < adGroupAds.values.length; i++){
let adGroupAd = adGroupAds.values[i].adGroupAd;
Logger.log('adGroupId-> ' + adGroupAd.adGroupId
+ ', adGroupName-> ' + adGroupAd.adGroupName
+ ', adId-> ' + adGroupAd.adId
+ ', adName-> ' + adGroupAd.adName);
}
}
指定した広告グループ配下のレスポンシブ広告情報を取得する
function getResponsiveSearchAdInAdGroup(){
const accountId = AdsUtilities.getCurrentAccountId();
const adGroupIds = [111111111, 222222222];//Multiple selections are possible
const adGroupAds = Search.AdGroupAdService.get({
accountId: accountId,
adGroupIds: adGroupIds,
adTypes: ['RESPONSIVE_SEARCH_AD'],
}).rval;
if (adGroupAds.totalNumEntries == 0) {
Logger.log('Target ID does not exist.');
return;
}
for (let i = 0; i < adGroupAds.values.length; i++){
let adGroupAd = adGroupAds.values[i].adGroupAd;
Logger.log('adGroupId-> ' + adGroupAd.adGroupId
+ ', adGroupName-> ' + adGroupAd.adGroupName
+ ', adId-> ' + adGroupAd.adId + ', adName-> '
+ adGroupAd.adName + ', finalUrl-> ' + adGroupAd.ad.finalUrl);
let responsiveSearchAd = adGroupAd.ad.responsiveSearchAd;
let headlines = [];
let descriptions = [];
for (let j = 0; j < responsiveSearchAd.headlines.length; j++){
headlines.push('headline' + (j + 1) + '-> '
+ responsiveSearchAd.headlines[j].text);
}
Logger.log('***' + headlines.join(', '));
for (let j = 0; j < responsiveSearchAd.descriptions.length; j++){
descriptions.push('description' + (j + 1) + '-> '
+ responsiveSearchAd.descriptions[j].text);
}
Logger.log('***' + descriptions.join(', '));
}
}