创建广告并分配创意和展示位置
Create Ad and assign creative and placement
我在 Campaign Manager 中有一个广告系列。
广告系列中有 1 个展示位置和 1 个广告素材(160x600 和有效)
我想制作一个广告,分配广告素材,然后使用 Google 表格中的 Google Apps 脚本分配展示位置。
我已经使用 Google Apps 脚本中的 API 参考构建了广告资源。
如果广告设置为 "inactive",我可以获得它来创建广告。但是,none 的作业已完成。
当我尝试创建广告并将其设置为 "Active" 时,出现错误:
"API call to dfareporting.ads.insert failed with error: 12032 : An ad cannot be active unless it is assigned to at least one placement."
偶尔我有时也会得到这个:
"API call to dfareporting.ads.insert failed with error: 12058 : At least one active creative must be assigned to any active ad. Also, the creative must have "Include in rotation" set to "Yes" in your ad properties."
代码如下:
funtion foo() {
var startTime = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');
var endDate = new Date (new Date(startTime).getYear()+1, new Date(startTime).getMonth(), new Date(startTime).getDate());
var endTime = Utilities.formatDate(new Date(endDate), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');
var adResource = {
"kind": "dfareporting#ad",
"active": "true",
"archived": "false",
"campaignId": "23237909",
"name": "testApiAd",
"creativeRotation": {
"creativeAssignments": {
"active": "true",
"creativeId": "121312158",//.toString(),
"clickThroughUrl": {
"defaultLandingPage": "true",
//"type": "CREATIVE_ROTATION_TYPE_RANDOM",
//"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
}
}
},
"deliverySchedule": {
"impressionRatio": "1",
"priority": "AD_PRIORITY_15",
"hardCutoff": "false"
},
"endTime": endTime,
"startTime": startTime,
"type": "AD_SERVING_STANDARD_AD",
"placementAssignments": {
"active": "true",
"placementId": "256185010",//.toString(),
//"sslRequired": "true"
}
}
var newAd = DoubleClickCampaigns.Ads.insert(adResource, profileID);
return newAd;
}
有什么我不明白的地方吗?还是完全缺失?
根据 API 参考资料,它应该可以工作,但我不明白为什么不行。
如有任何帮助,我们将不胜感激。
问题
active
标志设置为 true
的广告应至少设置一个 placementAssignments
。
解决方案
看看 placementAssignments
(以及 creativeAssignments
)的 type 属性 - 它应该是 list(意味着该值应该是 Array
的一个实例),而您将其定义为 object
。只需制作 Array
:
的展示位置和创意元素
"placementAssignments": [{
"active": "true",
"placementId": "256185010",//.toString(),
//"sslRequired": "true"
}]
"creativeRotation": {
"creativeAssignments": [{
"active": "true",
"creativeId": "121312158",//.toString(),
"clickThroughUrl": {
"defaultLandingPage": "true",
//"type": "CREATIVE_ROTATION_TYPE_RANDOM",
//"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
}
}]
}
参考
ad
资源 overview;
我在 Campaign Manager 中有一个广告系列。 广告系列中有 1 个展示位置和 1 个广告素材(160x600 和有效)
我想制作一个广告,分配广告素材,然后使用 Google 表格中的 Google Apps 脚本分配展示位置。
我已经使用 Google Apps 脚本中的 API 参考构建了广告资源。 如果广告设置为 "inactive",我可以获得它来创建广告。但是,none 的作业已完成。
当我尝试创建广告并将其设置为 "Active" 时,出现错误:
"API call to dfareporting.ads.insert failed with error: 12032 : An ad cannot be active unless it is assigned to at least one placement."
偶尔我有时也会得到这个:
"API call to dfareporting.ads.insert failed with error: 12058 : At least one active creative must be assigned to any active ad. Also, the creative must have "Include in rotation" set to "Yes" in your ad properties."
代码如下:
funtion foo() {
var startTime = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');
var endDate = new Date (new Date(startTime).getYear()+1, new Date(startTime).getMonth(), new Date(startTime).getDate());
var endTime = Utilities.formatDate(new Date(endDate), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');
var adResource = {
"kind": "dfareporting#ad",
"active": "true",
"archived": "false",
"campaignId": "23237909",
"name": "testApiAd",
"creativeRotation": {
"creativeAssignments": {
"active": "true",
"creativeId": "121312158",//.toString(),
"clickThroughUrl": {
"defaultLandingPage": "true",
//"type": "CREATIVE_ROTATION_TYPE_RANDOM",
//"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
}
}
},
"deliverySchedule": {
"impressionRatio": "1",
"priority": "AD_PRIORITY_15",
"hardCutoff": "false"
},
"endTime": endTime,
"startTime": startTime,
"type": "AD_SERVING_STANDARD_AD",
"placementAssignments": {
"active": "true",
"placementId": "256185010",//.toString(),
//"sslRequired": "true"
}
}
var newAd = DoubleClickCampaigns.Ads.insert(adResource, profileID);
return newAd;
}
有什么我不明白的地方吗?还是完全缺失? 根据 API 参考资料,它应该可以工作,但我不明白为什么不行。
如有任何帮助,我们将不胜感激。
问题
active
标志设置为 true
的广告应至少设置一个 placementAssignments
。
解决方案
看看 placementAssignments
(以及 creativeAssignments
)的 type 属性 - 它应该是 list(意味着该值应该是 Array
的一个实例),而您将其定义为 object
。只需制作 Array
:
"placementAssignments": [{
"active": "true",
"placementId": "256185010",//.toString(),
//"sslRequired": "true"
}]
"creativeRotation": {
"creativeAssignments": [{
"active": "true",
"creativeId": "121312158",//.toString(),
"clickThroughUrl": {
"defaultLandingPage": "true",
//"type": "CREATIVE_ROTATION_TYPE_RANDOM",
//"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
}
}]
}
参考
ad
资源 overview;