google 广告 api 没有 return 行包含空列

google ads api doesn't return rows with null columns

从 AdWords 迁移到 GoogleAds api。

正在查询search_term_view:

val googleAdsClient: GoogleAdsClient = GoogleAdsClient.newBuilder()
  .setCredentials(credential)
  .setDeveloperToken(developerToken)
  .setLoginCustomerId(loginCustomerId.toLong)
  .build()
   
val svc = googleAdsClient.getLatestVersion.createGoogleAdsServiceClient()

val query = s"""
  SELECT 
    segments.keyword.info.text
    ,search_term_view.search_term
    ,segments.date
  FROM search_term_view
  WHERE segments.date BETWEEN '2022-01-01' AND '2022-01-01'
"""

svc.search(customerId, query).iteratePages().asScala.foreach { page =>
  page.iterateAll().asScala.foreach { row =>
    //row processing
  }
}

问题是,如果其中一列为空,svc.search() 会跳过行。 所以得到像

这样的结果
text1,term1
text2,term2

虽然对 Adwords 的相同请求 api returns 结果类似于

text1,term1
text2,term2
--,term3

没有在文档中找到任何关于空值忽略的信息。

使用最新的 google 广告 v10 库: "com.google.api-广告" % "google-广告" % "17.0.1"

收到来自 google 团队的回复:

”使用segments fields in your query may result in fewer records being returned. This behavior is further explained in this section of our segmentation指南。如果没有值可以关联到包含在SELECT子句中的段字段,那么也不会为它返回任何记录。

此外,按此other guide.

使用段字段时,也可能不会返回零指标记录