在 BigQuery 中的一个会话内或多个会话内查找事件时遇到问题
Posted
技术标签:
【中文标题】在 BigQuery 中的一个会话内或多个会话内查找事件时遇到问题【英文标题】:Trouble Looking For Events WITHIN a Session In BigQuery or WITHIN Multiple Sessions 【发布时间】:2015-07-16 20:57:03 【问题描述】:我希望得到第二双眼睛和一些帮助,以确认在 BigQuery 中的命中级别查看会话的最佳方式。我已经彻底阅读了 BigQuery 开发人员文档that provides insight on working WITHIN as session. My challenge is this。假设我编写了高级查询来计算存在的会话数,并按 device.device 类别对会话进行分组,如下所示:
SELECT device.deviceCategory,
COUNT(DISTINCT CONCAT (fullVisitorId, STRING (visitId)), 10000000) AS SESSIONS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
GROUP EACH BY device.deviceCategory
ORDER BY sessions DESC
然后我运行如下的后续查询来查找不同用户(客户 ID)的数量:
SELECT device.deviceCategory,
COUNT(DISTINCT fullVisitorID) AS USERS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
GROUP EACH BY device.deviceCategory
ORDER BY users DESC
(请注意,我将这些数据分开是因为我使用的数据量很大,在某些情况下会产生超过 5TB 的运行量)。
我的挑战如下。我觉得我有错误的方法并且没有成功使用 WITHIN 函数。对于每个用户 ID(或完整的访问者 ID),我想查看他们所有的各种会话,以找出他们拥有的许多会话中有多少是桌面会话,有多少是移动会话。基本上,这些是跨设备用户。我想收集这些用户的表。我从这里开始:
SELECT COUNT(DISTINCT CONCAT (fullVisitorId, STRING (visitId)), 10000000) AS SESSIONS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
WHERE device.deviceCategory = 'desktop' AND device.deviceCategory = 'mobile'
这是不正确的。此外,我编写的内部查询的任何版本都会给我无意义的结果或数字为 0 的结果。有没有人有任何策略或技巧来推荐前进的道路?使用 WITHIN 函数查找可能在会话内发生多个事件的会话的最佳方法是什么(我的目标是收集满足会话内或各种会话中某些要求的用户 ID)。两天前,我通过手动完成这些步骤并保存中间数据帧以生成计数,以非常手动的方式完成了这项工作。也就是说,我想看看是否有任何指导可以使用单个查询快速完成此操作?
【问题讨论】:
【参考方案1】:我不确定这个问题是否仍然存在于您这边,但我相信我看到了您的问题,这与滥用 WITHIN
函数无关。这是一个数据理解问题。
在处理 GA 和跨设备识别时,您无法可靠地使用 fullVisitorId
和 visitId
的任何组合来识别用户,因为这些来自 GA 放置在用户浏览器上的 cookie。因此,利用fullVisitorId
可以比特定用户更准确地识别特定设备上的特定浏览器。
为了真正跨设备跟踪用户,您必须能够利用userId
功能follow this link。这要求您让用户以某种方式登录,从而为他们提供一个标识符,您可以在他们的所有设备上使用该标识符并将他们的行为联系在一起。
在您实施某种类型的您可以控制的用户标识(而不是 GA 的 cookie 分配)后,您可以使用它来跨会话和在这些单独的会话中查找详细信息。
希望有帮助!
【讨论】:
以上是关于在 BigQuery 中的一个会话内或多个会话内查找事件时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
Google Analytics 与 BigQuery 中的会话 - 差异