google-analytics - 谷歌分析用户计算
问题描述
我正在尝试在 GA 中模仿此图表:
但是我注意到,当我不在代码中添加日期时,数字匹配,但是当我添加日期时,数字似乎加倍。
代码:
SELECT
date,
COUNT(DISTINCT fullVisitorId) AS Users,
-- New Users (metric)
COUNT(DISTINCT(
CASE
WHEN totals.newVisits = 1 THEN fullVisitorId
ELSE
NULL
END)) AS New_Users,
-- Sessions (metric)
COUNT(DISTINCT CONCAT(fullVisitorId, CAST(visitStartTime AS STRING))) AS Sessions,
-- Bounces (metric)
COUNT(DISTINCT
CASE
WHEN totals.bounces = 1 THEN CONCAT(fullVisitorId, CAST(visitStartTime AS STRING))
ELSE
NULL
END
) AS Bounces,
-- Transactions (metric)
COUNT(DISTINCT hits.transaction.transactionId) AS Transactions,
--Revenue (metric)
SUM(hits.transaction.transactionRevenue)/1000000 AS Revenue
FROM
`ABC-ca-web.123.ga_sessions_*`, Unnest(hits) hits
WHERE trafficSource.campaign LIKE '%ABC%' and date between '20200801' AND '20200831'
解决方案
如果您在 GA 中按日期计算用户数,也会发生这种情况,这是通常的查询操作。
您不能汇总不同时期的用户。例如,如果用户 X 在一周内每天都访问该站点,则分析整个期间的用户数为 1,但如果您逐日分析,则第一天为 1,第二天为 1,1第三天,等等……因为每天都有同一个用户在那里。如果您按天计算用户,结果是您有 7 个用户,但实际上您有 1 个用户,因为它是同一个用户。
推荐阅读
- aws-lambda - 如何使用 AWS Lambda 解压缩和读取巨大的(1-10+ GB)压缩文件(gzip、zip、parquet)?
- javascript - 尝试从 localhost 获取 json 文件的数据时如何解决 CORS Origin 问题
- mysql - MYSQL 使用分组结果中的 AVG 值设置列值
- dhall - 解析路径类型
- c++ - 使用 sort() 对向量进行排序时,在极少数情况下返回进程 (0xc0000005)
- amazon-dynamodb - DynamoDB:获取与可能键之一匹配的所有项目
- docker - 在 jenkins pod 中执行 docker 和 kubectl 命令并支持持久卷
- c# - OpenTK (OpenGL) 如何正确使用 BufferSubData 和 DrawElements 与多个对象
- angular - Angular - 使用 jsonPath
- postgresql - PostgreSQL:如何将“PIVOT”从 T-SQL 转换为 PLPGSQL 过程