BigQuery 会话和命中级别的理解

Posted

技术标签:

【中文标题】BigQuery 会话和命中级别的理解【英文标题】:BigQuery Session & Hit level understanding 【发布时间】:2018-08-27 15:18:34 【问题描述】:

我想询问您对事件概念的了解。

命中等级 会话级别

在 BigQuery(标准 SQL)中我如何映射这个逻辑,以及

会话 每个会话的事件 独特事件

请有人指导我理解这些概念吗?

totals.visitors 是会话 有时 visitId 被当作 Session

【问题讨论】:

【参考方案1】:

要实现这一点,您需要稍微了解一些不同的概念。第一个是 GA 术语中的“什么是会话”。你可以找到here。会话是命中的集合。命中是以下之一:综合浏览量、事件、社交互动或交易。

现在要了解它在 BQ 模式中是如何表示的,您可以查看 here。 visitIdvisitorId 将帮助您定义会话(而不是用户)。

然后您可以计算您想要的事件类型的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

我希望这有效!

干杯

【讨论】:

您的回答有一些错误:visitorId 已弃用,它应该是fullVisitorId。您的查询不适用于标准 sql。在旧版 sql 中,您将每次点击 hits.type 对会话的所有点击进行求和 totals.hits。您仅按 visitId 分组 - 您应该使用 fullvisitoridvisitstarttime 进行 GA 会话。【参考方案2】:

你可以这样想这些概念:

每一行都是一个会话 从技术上讲,totals.visits=1 的每一行都是有效会话 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 和 Sessions 的关系可以看this answer。

【讨论】:

以上是关于BigQuery 会话和命中级别的理解的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:两个命中级自定义维度

BigQuery 在同一查询中展平 GA 会话和命中级别字段

从 BigQuery 导出自定义维度

sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu

在 BigQuery 中的一个会话内或多个会话内查找事件时遇到问题

取消嵌套命中和取消嵌套会话范围的自定义维度 BigQuery 代码过滤器