我只是在学习 BigQuery,所以这可能是一个愚蠢的问题,但我们想在那里获得一些统计数据,其中之一是给定日期的总 session 数。
为此,我在 BQ 中进行了查询:
select sum(sessions) as total_sessions from (
select
fullvisitorid,
count(distinct visitid) as sessions,
from (table_query([40663402], 'timestamp(right(table_id,8)) between timestamp("20150519") and timestamp("20150519")'))
group each by fullvisitorid
)
(我正在使用
table_query
因为稍后我们可能会增加天数范围)这导致
1,075,137
.但在我们的 Google Analytics 报告中,在“受众概览”部分,当天的结果是:
This report is based on 1,026,641 sessions (100% of sessions).
尽管这一天,总有大约 5% 的差异。所以我想知道,即使查询很简单,我们是否犯了任何错误?
这种差异是否会发生?我通读了 BigQuery 的文档,但在此问题上找不到任何内容。
提前致谢,
最佳答案
standardsql
简单 SUM(totals.visits)
或使用 COUNT(DISTINCT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING) ))
时确保 totals.visits=1
!
如果您使用 visitId
并且您不是每天分组,您将合并午夜拆分 session !
以下是所有场景:
SELECT
COUNT(DISTINCT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING) )) allSessionsUniquePerDay,
COUNT(DISTINCT CONCAT(fullVisitorId, CAST(visitId AS STRING) )) allSessionsUniquePerSelectedTimeframe,
sum(totals.visits) interactiveSessionsUniquePerDay, -- equals GA UI sessions
COUNT(DISTINCT IF(totals.visits=1, CONCAT(fullVisitorId, CAST(visitId AS STRING)), NULL) ) interactiveSessionsUniquePerSelectedTimeframe,
SUM(IF(totals.visits=1,0,1)) nonInteractiveSessions
FROM
`project.dataset.ga_sessions_2017102*`
包起来:
fullVisitorId
+ visitId
:用于重新连接午夜拆分 fullVisitorId
+ visitStartTime
: 用于考虑拆分 totals.visits=1
用于互动 session fullVisitorId
+ visitStartTime
哪里totals.visits=1
:GA UI session (以防您需要 session ID)SUM(totals.visits)
:简单的 GA UI session fullVisitorId
+ visitId
哪里totals.visits=1
和 GROUP BY date
: GA UI session ,错误和误解的机会太多关于google-analytics - BigQuery 与 Google Analytics 报告中的总 session 数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30419771/