Java 无法使用Google Adwords API向选择器添加谓词

Java 无法使用Google Adwords API向选择器添加谓词,java,google-ads-api,Java,Google Ads Api,我使用的是谷歌Adwords API版本-201603 在生成条件报告时,我使用谓词过滤数据。 下面是我向选择器添加谓词以过滤数据的代码 final Selector selector = new Selector(); selector.getFields().addAll(Lists.newArrayList("CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria", "FinalUrls"

我使用的是谷歌Adwords API版本-201603

在生成条件报告时,我使用谓词过滤数据。 下面是我向选择器添加谓词以过滤数据的代码

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);
最终选择器=新选择器();
selector.getFields().addAll(Lists.newArrayList(“活动ID”),
“AdGroupId”,
“身份证”,
“标准类型”,
“标准”,
“最终结果”,
“印象”,
“点击”,
"成本);;
最终谓词p=新谓词();
p、 设置域(“标准类型”);
p、 setOperator(PredicateOperator.CONTAINS_ANY);
p、 getValues().add(“网页”);
最终集合谓词=new ArrayList();
谓词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
\uRDXML:CampaignIDGroupIDicCriteriaTypeCriteriaFinalUrlImpressions单击标准类型包含任何网页标准性能报告#1467042788Criteria性能报告所有时间CSV
[2016年6月27日11:53:04876-report_download:WARN:main]收到响应,状态代码为400,消息:请求错误
报告未下载,原因是:HTTP响应代码:400,字段路径:选择器,触发器:CriteriaType,类型:SelectorError。无效的\u谓词\u运算符
我想不出是什么错误。如果有人知道发生了什么。请务必回答这个问题。

据Adwords API团队的一名成员说


既然你的谓词中只有一个值,你就不能用
CONTAINS
而不是
CONTAINS\u ANY

Yes-dorian。我发现在我的例子中,我需要使用in谓词操作符。不仅如此,我还需要做些别的事情来解决这个问题。我将很快公布答案。谢谢你的回答。非常感谢你的回答!