我正在编写一个脚本,自动设置多个活动的广告时间表时间。
API调用的主体如下:
问题是我得到这个错误:
WebFault: Server raise fault: '[RequiredError. ']要求@操作[0].operand. criteria .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)
如果要添加新的广告调度,请使用ADD
作为操作符而不是SET
。因为AdSchedule
s是不可变的(我认为所有的标准都是),你不能修改它们。
如果修改是您真正想要做的,您需要删除现有的AdSchedule
并创建一个新的。您可以通过调用CampaignCriterionService的get
方法来检索现有调度的id,这看起来像这样:
campaign_criterion_service.get({
'fields': ['Id', 'DayOfWeek', 'StartHour', 'StartMinute', 'EndHour', 'EndMinute'],
'predicates': [{
'field': 'CriteriaType',
'operator': 'EQUALS',
'values': ['AD_SCHEDULE']
}]
})