为什么Google Analytics API v3会以50%的速度触发总是采样?

时间:2017-05-17 09:16:20

标签: google-analytics-api

我为Google Analytics(v3)构建了一个非常简单的抓取工具,直到本周我才开始在所有查询中获取采样数据。

我曾经通过简单地减少查询的日期范围来克服采样,但现在我获得所有会话的50%(aprox。),即使对于少于100个会话的样本空间也是如此。

似乎有些东西正在触发采样,但我无法意识到可能是什么。任何人都遇到过类似的问题吗?

EDITED

当我们从GA网络界面(以及其他人)查询“用户概述”标准报告时,我们也正在抽样,即使只有883个会话,我们要求一天。

Users Overview with sampling

下面是一个示例查询,我们在这里查询3个维度的多个指标,样本大小为883个会话和一个采样或大约50%(查询URL被裁剪,但参数列在“查询”键上)。

API Query with sampling

1 个答案:

答案 0 :(得分:0)

似乎原因可能与查询ga:具有多个维度的用户指标有关,包括ga:appId。

我尝试了不同的组合,只有ga:用户在查询的尺寸超过ga:date时返回采样数据。

总之,如果我从具有相同3维度的示例中查询任何其他度量,则返回完整空间数据。

两周前,这种情况没有发生,所以我认为谷歌改变了ga:用户最近计算的方式。

此外,作为一种副作用,我意识到,如果您计划计算用户总数,那么批量查询用户会产生误导,因为您不能简单地对它们求和。也就是说,ga:用户与ga:1dayUsers类似,当用ga:date查询时,则无法聚合数据。同样奇怪的是你不能使用ga:appId和ga:1dayUsers,但你可以使用ga:users。

我们还在丢弃ga后发现了另一个问题:抓取工具中的用户。该问题与段参数有关,它与剩余的度量和维度结合使用时也会触发采样。

我们在同一视图中收集来自多个应用的​​数据(不推荐,但由于遗留原因,它存在)。因此,我们使用像“sessions :: condition :: ga:appId =@com.xxx.yyy.zzz”这样即时定义的片段。

事实是,当我们以这种方式过滤时,我们会受到采样,但如果我们使用像“ga:appId = com.xxx.yyy.zzz”这样的常见过滤器,我们就不会得到采样结果。

可能问题是为什么我们使用基于段的过滤器而不是标准过滤器,原因是因为我们需要一些特定的指标,如ga:7dayUsers和related,它们不能与ga:appId结合为维度和所以你不能在过滤器中使用ga:appId。令人困惑的是,对于这些指标,当我们使用基于段的过滤器时,我们不会得到采样结果。

现在看来我们所有的API调用都在返回实际数据。

但是,还不确定为什么网络界面中的默认报告(如“用户概述”)会在一天内返回少于1000个会话的采样数据。

如果在采样方面遇到类似问题,希望这些信息可以帮助其他人。