Google Adwords API 广告投放时间标准 ID

Google Adwords API ad schedule criterion ID

我正在编写一个脚本,可以一次自动设置多个广告系列的广告投放时间。

API 调用的主体如下。

问题是我得到这个错误:

WebFault: Server raised fault: '[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)

如果您想添加新的广告投放时间,请使用 ADD 作为运算符而不是 SET。由于 AdSchedule 是不可变的(我认为所有条件都是),您无法修改它们。

如果修改是您真正想要做的,您需要删除现有的 AdSchedule 并创建一个新的。您可以通过调用 CampaignCriterionService 的 get 方法来检索现有计划的 ID,这可能看起来像这样:

campaign_criterion_service.get({
    'fields': ['Id', 'DayOfWeek', 'StartHour', 'StartMinute', 'EndHour', 'EndMinute'],
    'predicates': [{
        'field': 'CriteriaType',
        'operator': 'EQUALS',
        'values': ['AD_SCHEDULE']
    }]
})