python - 使用变量/维度过滤时,使用 Google Core Reporting API 和 bigquery 进行的用户计数不正确且不一致

标签 python google-analytics google-api google-bigquery

背景:我有应用和网络数据,我的一些应用(新 iOS 版本)使用 GA 维度,其余应用(Android 和网络)使用 GA 自定义变量。

首先,我目前正在尝试在查询浏览器的 BigQuery 中复制此查询,以便仅为我的 Web 用户获取指定日期内的简单用户计数:

select count(distinct fullvisitorid, 10000000) as users
 from table_date_range([12345678.ga_sessions_],    
 timestamp('2015-02-01'), timestamp('2015-03-01')) 
  where hits.customvariables.customvarvalue like '%web%'

我有大约 534 万用户。这与我在 Google Analytics 中看到的相符。我确信这个数字是正确的。

如果我进入查询资源管理器并且不应用任何过滤器(因此我包括我的应用程序和 Web 用户),我将获得 570 万用户。同样,这与 Google Analytics 相对应,我们相信这个数字是正确的,网络占据了我们的大部分流量。

如果我在查询资源管理器中运行另一个查询,但这次应用过滤器:

ga:customVarValue1=@web

我有 873 万用户。因此,应用过滤器后我拥有的用户比没有应用过滤器的用户多...显然这是不正确的,并且与查询资源管理器应用过滤器后聚合的方式有关。

注意:当我在 BigQuery 中运行此查询时:

select sum(users)
from (
   select count(distinct fullvisitorid, 1000000) as users,
    hits.customvariables.customvarvalue as platform
   from table_date_range([12345678.ga_sessions_],    
    timestamp('2015-02-01'), timestamp('2015-03-01')) 
   group each by 2)
    where platform like '%web%'

我有 873 万用户。与我在查询资源管理器中应用过滤器时得到的数字几乎完全相同,我得到的大约 1% 的差异可以通过采样来解释。我已经在多个日期进行了测试,所以我确信这就是正在发生的事情。应用过滤器后聚合而不是前聚合(如我的第一个 BigQuery 查询中)会导致更多的用户,因为我们在此时间范围内发布了两个网络版本。因此,所有用户使用的每个网络版本都会被统计一次。

添加: 我团队的一位开发人员在二月份编写了一些 Python 脚本,该脚本复制了上面编写的第一个 BigQuery 代码(变量 = web 的简单用户计数),但改为访问 Core Reporting API 并请求未采样的报告。截至 2015 年 3 月 5 日,我们使用 BigQuery 与使用 Python 脚本获得的用户数量几乎相同(由于采样而存在 1% 的差异)。然后在 3 月 5 日,即使对于历史用户计数,它们也开始出现分歧,相反,我们的 Python 脚本开始生成类似于查询资源管理器的计数(过滤器在聚合后应用,而不是在聚合前应用)。

我的问题是: 1. 3月5日发生了什么变化? 2.我们如何在查询浏览器中复制上面的第一个 BigQuery 代码?我们是否正确应用了变量过滤器? 3.我们如何在 Python 脚本中复制访问核心报告 API 的 BigQuery 代码?

最后: 在查询资源管理器中,我要求提供给定日期内的用户计数,并使用维度过滤器:

ga:dimension2=@ios

运行时,我得到的结果比 BigQuery 中得到的结果少大约 50%:

select count(distinct fullvisitorid, 10000000) as users
 from table_date_range([12345678.ga_sessions_],    
 timestamp('2015-02-01'), timestamp('2015-03-01')) 
  where hits.customdimensions.value like '%ios%'

如果过滤器在聚合后应用,就像使用变量进行过滤时一样,那么我将获得更高的用户数量,而不是更少。我真的无法解释查询浏览器正在做什么,以便在过滤维度时大幅降低计数。

请停下来

最佳答案

我无法回答您,但既然您使用的是 BigQuery,我假设您是 Premium 客户?如果是这样,您可以向他们的支持团队开具票证 - 他们应该会很快回复您。

关于python - 使用变量/维度过滤时,使用 Google Core Reporting API 和 bigquery 进行的用户计数不正确且不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102965/

相关文章:

javascript - 嵌入API自定义组件:Uncaught TypeError: Cannot read property 'ViewSelector2' of undefined

php - GSC_Client 和 oAuth2 访问

python - 可以随时间获取 alexa 信息或 google 页面排名吗?

python - 点错误: Invalid requirement: '==' in colab

python - Django: NoReverseMatch at/'myapp' 不是注册的命名空间

python - 如何在 QMessageBox 小部件中居中文本和按钮

python - 在 O(logn) 中从 python heapq 中删除

google-analytics - 谷歌分析与 ddos

php - 谷歌分析 : Send PageViews or Event with PHP

java - 异常 : 401 Unauthorized Error | com. google.api.client.auth.oauth2.TokenResponseException:401 未经授权