我想问一下您对活动概念的了解。
击中等级 会话级别
在BigQuery(标准SQL)中,如何映射这种逻辑,以及
会话 每节活动 独特事件
请有人可以指导我理解这些概念吗?
totals.visitors是会话 某个时候 visitId被视为会话
答案 0 :(得分:0)
要实现这一点,您需要努力解决一些不同的概念。第一个是GA术语中的“会话是什么”。您可以找到here。会话是命中的集合。点击是以下内容之一:浏览量,事件,社交互动或交易。
现在要查看BQ模式中的表示形式,您可以查看here。 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
进行查询>
我希望那行得通!
欢呼
答案 1 :(得分:0)
您可以想到以下这些概念:
hits
是一个包含结构的数组,这些结构包含有关每次匹配的信息您可以在数组上编写子查询-基本上将它们视为表。我建议研究Working with Arrays,并在可能的情况下将每个练习直接应用/转移到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和Session之间的关系,您可以阅读this answer。