2016-11-17 36 views
0

我正在編寫一個腳本,可以一次自動爲多個廣告系列設置廣告時間表。Google Adwords API廣告時間表條件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) 
+0

改進語法和格式 – Ninjakannon

回答

1

如果要添加新的廣告計劃,使用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'] 
    }] 
})