无法使用 Google Adwords API 将谓词添加到选择器

Posted

技术标签:

【中文标题】无法使用 Google Adwords API 将谓词添加到选择器【英文标题】:Not able to add predicate to selector with Google Adwords API 【发布时间】:2016-06-27 18:22:15 【问题描述】:

我使用的是 Google 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);

但是当我运行代码时,我遇到了错误。

       __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 Adwords API 团队的一名成员说。

既然您的谓词中只有一个值,您就不能只使用CONTAINS 而不是CONTAINS_ANY吗?

【讨论】:

是的,多利安。我发现在我的情况下我需要使用 IN 谓词运算符。不仅如此,我还需要做其他事情来解决这个问题。我会尽快发布答案。感谢您的回复。 非常感谢您的回答!

以上是关于无法使用 Google Adwords API 将谓词添加到选择器的主要内容,如果未能解决你的问题,请参考以下文章

如何将 OAuth 与 Google AdWords / AdSense API 一起使用?

Google Adwords API 'getKeywordVariations' 无法正常工作

google adwords api 与 google-adwords-api gem

无法在 google adwords api 中获取要推送到数据库的活动数据

Google Adwords API 身份验证问题

使用 SOAP 和 Javascript(Google Adwords Sandbox API)发送 GET 请求