如何在 Big Query 中获取测量协议命中数据?
Posted
技术标签:
【中文标题】如何在 Big Query 中获取测量协议命中数据?【英文标题】:How to get measurement protocol hit data in Big Query? 【发布时间】:2016-09-01 10:48:53 【问题描述】:我们正在尝试通过measurement protocol
连接在线和离线行为。
它已被发送到Google Analytics
,并带有以下参数(以及其他参数):
eventCategory= offline_transaction
source= store
medium= offline
数据已在Google Analytics
中正确注册,可在报告部分中找到。
我正在尝试通过这种方式让他们进入BigQuery
:
SELECT
hits.eventInfo.eventCategory, trafficSource.source, trafficSource.medium
FROM [XXX:YYY.ga_sessions_20160827]
where hits.eventInfo.eventCategory="offline_transaction"
and trafficSource.source="store"
and trafficSource.medium="offline"
输出是“查询返回零记录”。
知道我做错了什么吗? BigQuery 中是否提供来自 Measurement Protocol 的数据?
提前致谢。
【问题讨论】:
【参考方案1】:我相信正在发生的事情是,trafficSource.source/medium 被记录在会话级别,而 hits.eventCategory 被记录在命中级别,因此它们永远不会一起包含在一行中,因此 0 行与您的查询匹配.试试下面的方法:
SELECT
MAX(IF (hits.eventInfo.eventCategory = "offline_transaction", hits.eventInfo.eventCategory, NULL)) WITHIN RECORD AS eventCategory,
SUM(IF (hits.eventInfo.eventCategory = "offline_transaction", 1, NULL)) WITHIN RECORD AS eventCnt,
trafficSource.source,
trafficSource.medium
FROM [XXX:YYY.ga_sessions_20160827]
where hits.eventInfo.eventCategory="offline_transaction"
and trafficSource.source="store"
and trafficSource.medium="offline"
这应该让您计算该事件在该会话中发生的次数。在不了解更多关于您的用例/您想要从表中提取的内容的情况下,我不知道还有什么可以提供帮助的。
我不得不经常使用 aggregate_function() WITHIN RECORD 语法来处理这些类型的问题。
【讨论】:
感谢您的回答,@andre622。它不起作用。也许链接到 BigQuery 项目的视图禁用了 UserId 的事实会影响这种行为? (命中与 UserId 值相关联)。 啊,是的;请参阅this answer 以进一步了解用户 ID。剧透警告:它不会从 GA 配置文件导出到 BigQuery。以上是关于如何在 Big Query 中获取测量协议命中数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Google Big Query 中正确使用 GROUP BY 命令?
如何使用 Google Big Query 在 GROUP_CONCAT 上获取不同的值
Big Query-如何在 Big Query 中按浏览量、用户每周比较数据