Ruby Adwords关键字报告在单个查询中返回的数据与组合查询中返回的数据不同

Ruby Adwords关键字报告在单个查询中返回的数据与组合查询中返回的数据不同,ruby,google-ads-api,adwords-apiv201402,Ruby,Google Ads Api,Adwords Apiv201402,我们正在查询Adwords API以检索关键字的数据。当查询单个日期时,我们会得到其他数据,而当查询合并在单个查询中的所有日期时,我们会得到其他数据 我们正在查询关键字\u性能\u报告 campaign = AdwordsCampaign.find 957 # Weirdness returning from the Adwords keyword performance report campaign.adwords.keyword_performance({min: Date.parse(

我们正在查询Adwords API以检索关键字的数据。当查询单个日期时,我们会得到其他数据,而当查询合并在单个查询中的所有日期时,我们会得到其他数据

我们正在查询
关键字\u性能\u报告

campaign = AdwordsCampaign.find 957

# Weirdness returning from the Adwords keyword performance report
campaign.adwords.keyword_performance({min: Date.parse("2014-05-18"), max: Date.parse("2014-05-18")}).map{|kw| kw[:conversions]}.inject(:+)
#=> 0
campaign.adwords.keyword_performance({min: Date.parse("2014-05-19"), max: Date.parse("2014-05-19")}).map{|kw| kw[:conversions]}.inject(:+)
#=> 2
campaign.adwords.keyword_performance({min: Date.parse("2014-05-20"), max: Date.parse("2014-05-20")}).map{|kw| kw[:conversions]}.inject(:+)
#=> 0
campaign.adwords.keyword_performance({min: Date.parse("2014-05-18"), max: Date.parse("2014-05-20")}).map{|kw| kw[:conversions]}.inject(:+)
#=> 6
#=> waat moment - it should be 2?
查询检索结果的代码如下:

有人知道发生了什么/我们做错了什么吗


谢谢。

这在AdWords API中并不是不一致的——您只需在
关键字\u性能
方法中计算相同的两次转换三次。原因如下:

全局关键字Id 关键字在所有AdWords中都有,它表示
关键字文本
匹配类型
的唯一组合。关键字可以出现在活动中的多个广告组中。例如,如果在同一活动中的两个不同广告组中有短语匹配关键字“cat videos”,则该关键字在两个位置的Id将相同

在要点中,您需要两次调用AdWords API。第一次,您询问每个唯一关键字
Id
的转换次数,而不管
AdGroupId
。这将只为“cat videos”短语匹配关键字返回一行(per
ConversionCategoryName
),并将包括该关键字在活动中获得的该类型的所有转换

在第二个API调用中,您需要几个字段,包括
AdGroupId
。包含
AdGroupId
字段会导致报告按ad组显示。因此,如果一个关键字出现在多个广告组中,那么您将为每个广告组获得一个单独的行

通过为这些行中的每一行分配总的转换次数,可以多次计算相同的转换次数

为什么这只发生在较大的日期范围内? 这是因为您排除了零印象行。日期范围越长,出现在多个广告组中的关键字在多个广告组中至少有一个印象的可能性越大,因此在第二次报告中有多行

例如: 假设您的活动中有以下AdGroup关键字组合:

  • AG1-KW1
  • AG1-KW2
  • AG2-KW1
  • AG2-KW3
  • AG3-KW1
  • AG3-KW4
  • AG4-KW2
5/18--KW1不会获得任何转换,但在它出现的每个广告组中至少会获得一个印象

5/19——KW1再次没有转换

5/20——AG1-KW1获得2次转换。AG2-KW1和AG3-KW1获得零印象

如果您仅为5/20提取报告,则只有AG1-KW1将在第二个报告中有一行,而AG2-KW1和AG3-KW1将被排除在外。KW1的转化率将计算一次


但在5/18-5/20的过程中,AG1-KW1、AG2-KW1和AG3-KW1都至少有一个印象。如果拉取此日期范围的报告,则三个报告中的每一个都将在第二个报告中有一行。KW1的转换将被计算三次。

这可能是因为您正在查询今天的数据吗?自上次查询以来,数据可能已更改?它发生在不包括今天的日期范围内吗?好的,谢谢你的解释。我试着删除你提到的那些专栏。所以我只查询
['KeywordText'、'Impressions'、'Clicks'、'Ctr'、'Conversions'、'Cost'、'Id']
——但是我得到了相同的结果。我错过了一个片段吗?你能发布一个更新的要点吗?一般来说,我建议将代码分解成更小的方法,这样您就可以在进行额外处理之前查看中间输出——例如,已解析的CSV。通过这种方式,您可以看到各个转换来自何处,以及哪些行包含在哪个报告中。还有一个问题是,你是想简单地衡量整个广告活动中的关键词表现,还是按广告组来衡量。就我个人而言,我可能只是按广告组对这两个报告进行分段,并使用类似“#{ad_group_id}-#{keyword_id}”的内容作为转换的哈希键。