我正在编写一个脚本,可以同时自动设置多个广告系列的广告投放时间。
API调用的正文如下。
问题是我收到了这个错误:
WebFault:服务器引发的错误:' [RequiredError.REQUIRED @ operations [0] .operand.criterion.id]'
显然,缺少标准ID。
标准ID应该是什么样的?
# create adschedule
adschedule = {
'xsi_type': 'AdSchedule',
'dayOfWeek': 'TUESDAY',
'startHour': "0",
'endHour': "22",
'startMinute': "FIFTEEN",
'endMinute': "FORTY_FIVE"
}
# Create operation
operation = {
'operator': 'SET',
'operand': {
"campaignId": campaignId,
"criterion": adschedule
}
}
# Make the mutate request.
result = campaign_criterion_service.mutate(operation)
答案 0 :(得分:1)
如果您想添加新的广告投放时间,请使用ADD
作为运算符,而不是SET
。由于AdSchedule
是不可变的(我认为所有标准都是),所以你无法修改它们。
如果您实际想要修改,则需要删除现有的AdSchedule
并创建一个新的get
。您可以通过调用CampaignCriterionService的campaign_criterion_service.get({
'fields': ['Id', 'DayOfWeek', 'StartHour', 'StartMinute', 'EndHour', 'EndMinute'],
'predicates': [{
'field': 'CriteriaType',
'operator': 'EQUALS',
'values': ['AD_SCHEDULE']
}]
})
方法来检索现有计划的ID,这可能如下所示:
{{1}}