每个着陆内容分组的会话中 Bigquery 和 GA 之间的差异

Posted

技术标签:

【中文标题】每个着陆内容分组的会话中 Bigquery 和 GA 之间的差异【英文标题】:DIfference between Bigquery and GA in sessions per Landing content grouping 【发布时间】:2017-10-19 12:16:48 【问题描述】:

我想使用 Bigquery 报告每个来源/媒体每个登陆内容组的会话数。基本上我想重现 GA 报告:行为 - 网站内容 - 登录页面 - 选择内容组 - 选择自定义维度 Source / Medium。

Bigquery 将更多会话(大约 1% - 2%)报告为 GA。这个查询有问题吗? (GA 中没有抽样)

SELECT
  date,
  Landing_Content_Group,
  Source_Medium,
  COUNT(1) AS Sessions
FROM (
  SELECT
    date,
    CONCAT(fullVisitorId,STRING(visitId)) AS sessionId,
    hits.contentGroup.contentGroup1 AS Landing_Content_Group,
    trafficSource.source +'/'+ trafficSource.medium AS Source_Medium
  FROM (TABLE_DATE_RANGE([TABLE], DATE_ADD(CURRENT_TIMESTAMP(), -3, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), -3, 'DAY')))
  WHERE
    hits.hitnumber = 1
  GROUP BY
    date,
    sessionId,
    Landing_Content_Group,
    Source_Medium )
GROUP BY
  date,
  Landing_Content_Group,
  Source_Medium
ORDER BY Sessions DESC

【问题讨论】:

我想知道如果你添加:WHERE hits.hitNumber = 1 AND totals.visits = 1 会发生什么。有用吗? 与 GA 相比,它让我的会话更少,但仍然更高。你有什么想法? 【参考方案1】:

CONCAT(fullVisitorId,STRING(visitId)) AS sessionId 可以很好地计算没有午夜分割的会话。 visitId 在拆分期间保持不变。

使用 CONCAT(fullVisitorId,STRING(visitStartTime)) AS sessionIdtotals.visits=1(=具有任何交互的会话)与 GA 保持一致。

【讨论】:

以上是关于每个着陆内容分组的会话中 Bigquery 和 GA 之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 数据仓库设计?

从 BigQuery 中的单个用户事件流构建会话

BigQuery 会话和命中级别的理解

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

Google Analytics 与 BigQuery 中的会话 - 差异

BigQuery 在选择不同行时按一个字段中的最大值分组