Adwords API:选择展示空展示的广告

时间:2014-05-21 16:09:43

标签: java scala google-adwords adwords-apiv201402

经过几天的痛苦和痛苦,我设法理解了文档试图说的内容并与Adwords API建立了联系,然后在狂热的冲动下我甚至设法从中获取了一些数据。自欺欺人,我以为我已经拥有它,直到我必须得到一些带有where子句的广告。

我现在的最终目标只是让所有展示次数为0的广告。

我查看了java code examples和许多SO帖子,当然我也检查了Adwords documentation,但我无法找到我想要的内容。在最后一个" AdGroupAdService: Create, update, and delete ads",所以据我所知这是我应该使用的服务,我的(Scala)代码如下所示:

val adwordsCredentials = new OfflineCredentials.Builder().forApi(Api.ADWORDS).fromFile().build().generateCredential()
val adwordsSession = new AdWordsSession.Builder().fromFile().withOAuth2Credential(adwordsCredentials).build()
val adgroupService = new AdWordsServices().get(adwordsSession, classOf[AdGroupAdServiceInterface])

def getAds() = {
  val builder = new SelectorBuilder()
  val selector = builder
    .fields("Id", "Name", "Status", "AdGroupId")
    .offset(0)
    .limit(100)
    .build()

  val results = adgroupService.get(selector)

  if (results.getEntries() != null) {
    results.getEntries().foreach( row => {
      println(row.getAd.getId)
    })
  }
}

1)没有getAd.getClicksgetAd.getImpressions,我挖掘了Ad.java类,唯一可用的字段是:

id;
url;
displayUrl;
devicePreference;
adType;

2)如果我在查询中添加Clicks,我会收到faultString: [SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'Clicks'],因为该广告系列没有字段Clicks;

3)报告是否是这样做的唯一方法?

看起来很容易做到,但我找不到办法。

1 个答案:

答案 0 :(得分:0)

Google通过the release of v201309从其多个Adwords API服务(包括AdGroupAdService)中删除了所有统计信息字段。

您需要使用AD_PERFORMANCE_REPORT。在报告定义的选择器中,将predicate设置为仅包含Impressions字段值为0的行。