如何通过Google Analytics Reporting API v4获取指定日期用户明细数据
获取Google Analytics用户明细数据的方法
嘿,我来帮你搞定这个问题——要拿到2013-01-01那65位用户的性别、会话ID、年龄这类明细数据,你得调整下API请求的参数,同时注意GA的一些数据规则,下面一步步说:
1. 修改你的API请求参数
你原来的请求只按日期统计了用户总数,现在要获取用户级的明细,得把需要的用户属性、会话相关的维度加进去。这里给你一个修改后的请求示例:
{ "reportRequests": [ { "viewId": "345", "dateRanges": [ { "startDate": "2013-01-01", "endDate": "2013-01-01" } ], "metrics": [ { "expression": "ga:sessions" } ], "dimensions": [ { "name": "ga:date" }, { "name": "ga:clientId" }, // 每个设备/浏览器的唯一标识,没启用用户ID时用这个 { "name": "ga:userId" }, // 如果你网站启用了用户ID功能,用这个标识登录用户 { "name": "ga:sessionId" }, // 会话ID,每个会话的唯一标识 { "name": "ga:userAgeBracket" }, // 用户年龄区间 { "name": "ga:userGender" }, // 用户性别 { "name": "ga:sessionStartTime" } // 会话开始的具体时间 ], "samplingLevel": "LARGE" // 尽量减少数据采样,保证数据完整 } ] }
2. 几个必须注意的点
- 用户标识的选择:
ga:userId需要你在网站上提前配置了用户ID功能(用来关联登录后的用户),如果没开这个功能,只能用ga:clientId——但要注意,同一个用户换设备或浏览器会有不同的clientId,可能会出现重复统计的情况。 - 数据采样问题:如果当天的会话量很大,GA可能会返回采样后的汇总数据。设置
samplingLevel: "LARGE"能尽量避免这种情况,如果还是不行,就得把请求的时间范围再缩小(比如按小时请求)。 - 数据保留期限:GA有数据保留政策,2013年的数据可能已经超过了默认的保留期,你得先确认你的GA账户里还能查到这些旧数据的明细。
- 维度组合限制:GA不是所有维度都能随便组合的,上面列的这些维度都是兼容的,要是加了不兼容的维度,API会返回错误。
3. 响应数据怎么看
修改后的请求会返回每条会话对应的用户信息,大概是这样的格式:
{ "reports": [ { "columnHeader": { "dimensions": ["ga:date", "ga:clientId", "ga:sessionId", "ga:userAgeBracket", "ga:userGender"], "metricHeader": {"metricHeaderEntries": [{"name": "ga:sessions", "type": "INTEGER"}]} }, "data": { "rows": [ { "dimensions": ["20130101", "123456.789012", "1357924680", "25-34", "MALE"], "metrics": [{"values": ["1"]}] }, // 剩下的54条用户会话数据... ] } } ] }
4. 处理重复用户
因为同一个用户可能在同一天有多个会话,所以你需要用ga:userId或者ga:clientId来做去重,这样就能得到当天那65个独立用户的完整明细了。
内容的提问来源于stack exchange,提问作者Doe
相关产品推荐
相关产品推荐

