如何在Big Query中获取测量协议命中数据?

时间:2016-09-01 10:48:54

标签: google-bigquery

我们正尝试通过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 个答案:

答案 0 :(得分: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 语法来处理这些类型的问题。