我想问一下你对事件概念的了解。
命中级别会话级别
如何在BigQuery (标准SQL)中如何映射这个逻辑,以及
每个会话的会话事件唯一事件
请有人引导我理解这些概念好吗?
totals.visitors是会话,有时visitId被当作会话
发布于 2018-08-27 14:14:58
要实现这一点,您需要稍微处理几个不同的概念。第一个是GA行话中的“什么是会话”。你可以找到那个这里。会话是点击的集合。点击是以下内容之一:网页浏览、事件、社交互动或交易。
现在,要了解如何将其表示在烧烤模式中,您可以查看这里。visitId
和visitorId
将帮助您定义会话(与用户相反)。
然后,您可以计算totals.hits
的数量,这是您想要的类型的事件。
它可能看起来像:
select visitId,
sum(case when hits.type = "EVENT" then totals.hits else 0) from
dataset.table_* group by 1
这应该能帮你弄到一个概览。如果您需要对事件详细信息(即hits.eventInfo.*
)进行切片和裁剪,那么我建议您对所有visitId
和所有相关事件及其各自的visitId
进行查询。
我希望那能成功!
干杯
发布于 2018-08-27 23:24:29
您可以这样想这些概念:
hits
是一个数组,包含包含每一次命中的信息的结构。您可以在数组上编写子查询--基本上把它们当作表来处理。如果可能的话,我建议学习处理数组,并将每一个练习直接应用/转移到hits
上。
会话级别上的子查询示例
SELECT
fullvisitorid,
visitStartTime,
(SELECT SUM(IF(type='EVENT',1,0)) FROM UNNEST(hits)) events,
(SELECT COUNT(DISTINCT CONCAT(eventInfo.eventCategory,eventInfo.eventAction,eventInfo.eventLabel) )
FROM UNNEST(hits) WHERE type='EVENT') uniqueEvents,
(SELECT SUM(IF(type='PAGE',1,0)) FROM UNNEST(hits)) pageviews
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
WHERE
totals.visits=1
LIMIT
1000
平坦到命中级别的示例
如果将联接数组与其父行交叉使用,也有可能在数组中使用字段进行分组
SELECT
h.type,
COUNT(1) hits
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170801` AS t CROSS JOIN t.hits AS h
WHERE
totals.visits=1
GROUP BY
1
关于visitId和会话之间的关系,您可以阅读这个答案。
https://stackoverflow.com/questions/52042383
复制