2016-11-17 7 views
0

Я пишу скрипт, который автоматически устанавливает время расписания объявлений для нескольких кампаний одновременно.Критерий расписания Google Adwords API ID

Тело вызова API следующее.

Проблема заключается в том, что я получаю эту ошибку:

WebFault: Server raised fault: '[RequiredError.REQUIRED @ operations[0].operand.criterion.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

Улучшение грамматики и форматирование – Ninjakannon

ответ

1

Если вы хотите добавить новое расписание объявлений, используйте ADD в качестве оператора вместо SET. Поскольку AdSchedule s неизменяемы (я думаю, что все критерии), вы не можете их модифицировать.

Если вы хотите изменить, то вам необходимо удалить существующий AdSchedule и создать новый. Вы можете получить идентификаторы существующих расписаний с помощью вызова метода get в CampaignCriterionService, это может выглядеть примерно так:

campaign_criterion_service.get({ 
    'fields': ['Id', 'DayOfWeek', 'StartHour', 'StartMinute', 'EndHour', 'EndMinute'], 
    'predicates': [{ 
     'field': 'CriteriaType', 
     'operator': 'EQUALS', 
     'values': ['AD_SCHEDULE'] 
    }] 
}) 
Смежные вопросы