【发布时间】:2017-07-13 10:27:25
【问题描述】:
如何在与 BigQuery 关联的 Google Analytics 原始数据中计算会话持续时间?
我不知道如何在 BigQuery 中计算会话持续时间!
谢谢
【问题讨论】:
-
您需要提供比这更多的信息。
标签: sql google-analytics google-bigquery
如何在与 BigQuery 关联的 Google Analytics 原始数据中计算会话持续时间?
我不知道如何在 BigQuery 中计算会话持续时间!
谢谢
【问题讨论】:
标签: sql google-analytics google-bigquery
以下内容将为您提供 Google BigQuery 中的 Google Analytics 会话持续时间
SELECT fullVisitorId, MAX(h.time)/1000 SessionTime
FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h
GROUP BY fullVisitorId
然后你可以平均结果
SELECT AVG(sessionTime) AvgSessionTime
FROM
(
SELECT fullVisitorId, MAX(h.time)/1000 sessionTime
FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h
GROUP BY fullVisitorId
)
您可能会发现BigQuery Schema 很有用
【讨论】:
您可以使用totals.timeOnSite 字段,如ga table schema 中所述,类似于:
SELECT
AVG(totals.timeOnSite) avgTimeOnSite
FROM `project_id.dataset_id.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN "20170701" and "20170702"
【讨论】:
根据@Daryl Wenman-Bateson 的回答,我做了一些测试。 使用正确的指标对会话进行分组以获得正确的数据非常重要:要计算会话,您需要将 visitId 添加到 fullVisitorId 以获取非唯一用户但唯一用户的会话:
SELECT AVG(sessionTime) avgSessionTime
FROM
(
SELECT
concat(fullVisitorId, visitId) as sessions,
MAX(h.time)/1000 as sessionTime
FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h
GROUP BY sessions
)
我用来自 GA 自定义报告的数据和上面的查询做了一些测试数字匹配。
//编辑: 另见:https://stackoverflow.com/a/47069527 在我的测试中,我得到了与 GA 中相同的会话计数,如果这不符合您的需要,您也可以尝试 CONCAT(fullVisitorId,STRING(visitStartTime)) AS sessionId 和 totals.visits=1 来匹配您的数字与GA一致。
【讨论】: