2016-06-27 3 views
0

Я использую Google Adwords API версию - 201603не в состоянии добавить предикат селектор с Google Adwords API

При формировании критериев отчета, я фильтрацию данных с помощью предиката. Вот код, где я добавляю предикат к селектору для фильтрации данных.

final Selector selector = new Selector(); 
selector.getFields().addAll(Lists.newArrayList("CampaignId", 
    "AdGroupId", 
    "Id", 
    "CriteriaType", 
    "Criteria", 
    "FinalUrls", 
    "Impressions", 
    "Clicks", 
    "Cost")); 

final Predicate p=new Predicate(); 
p.setField("CriteriaType"); 
p.setOperator(PredicateOperator.CONTAINS_ANY); 
p.getValues().add("Webpage"); 
final Collection<Predicate> predicates=new ArrayList<>(); 
predicates.add(p); 
selector.getPredicates().add(p); 

Но когда я запускаю код, я становлюсь ниже ошибки.

 __rdxml: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><reportDefinition xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201603"><ns2:selector><ns2:fields>CampaignId</ns2:fields><ns2:fields>AdGroupId</ns2:fields><ns2:fields>Id</ns2:fields><ns2:fields>CriteriaType</ns2:fields><ns2:fields>Criteria</ns2:fields><ns2:fields>FinalUrls</ns2:fields><ns2:fields>Impressions</ns2:fields><ns2:fields>Clicks</ns2:fields><ns2:fields>Cost</ns2:fields><ns2:predicates><ns2:field>CriteriaType</ns2:field><ns2:operator>CONTAINS_ANY</ns2:operator><ns2:values>Webpage</ns2:values></ns2:predicates></ns2:selector><ns2:reportName>Criteria performance report #1467042784488</ns2:reportName><ns2:reportType>CRITERIA_PERFORMANCE_REPORT</ns2:reportType><ns2:dateRangeType>ALL_TIME</ns2:dateRangeType><ns2:downloadFormat>CSV</ns2:downloadFormat></reportDefinition> 

[27 Jun 2016 11:53:04,876-report_download:WARN:main] Response received with status code 400 and message: Bad Request 

Report was not downloaded due to: HTTP Response Code: 400, FieldPath: selector, Trigger: CriteriaType, Type: SelectorError.INVALID_PREDICATE_OPERATOR 

Я не могу понять, что представляет собой ошибка. Если у кого-то есть представление о том, что происходит. Пожалуйста, ответьте на вопрос.

ответ

1

This operator only works with labels согласно члену команды API AdWords.

Увидим, что в вашем предикате есть только одно значение, не могли бы вы использовать CONTAINS вместо CONTAINS_ANY?

+0

Да дориан. Я понял, что в моем случае мне нужно использовать оператор IN-предиката. Мало того, что мне нужно сделать что-то еще, чтобы это решить. Я скоро отправлю ответ. Спасибо за ваш ответ. – Raghavendra

+0

Ум, принимая ответ тогда? :) – dorian

+0

Большое вам спасибо за ваш ответ! – Ben

 Смежные вопросы

  • Нет связанных вопросов^_^