如何将Google Analytics中与ga_session_id关联的user_age_bracket及gender指标导入BigQuery?及相关指标名称确认问题
关于Google Analytics会话ID关联年龄/性别指标导入BigQuery的解决方案
先帮你理清指标名称的问题,再一步步说明如何把这些数据导入并关联到BigQuery:
一、指标名称正确性确认
这里分两种场景,取决于你使用的是Universal Analytics(UA)还是Google Analytics 4(GA4):
1. 如果你用的是Universal Analytics(UA)
- 会话ID的字段名确实是
ga_session_id,这个没问题 - 用户年龄区间的正确字段是
user.demographics.age_bracket,性别是user.demographics.gender,这些属于用户级属性,会出现在UA导出到BigQuery的ga_sessions_*表中
2. 如果你用的是Google Analytics 4(GA4)
- 你提到的
ga_session_id在GA4里对应的字段是session_id(沿用UA的术语很正常) - 开启Google Signals后,年龄区间和性别会作为用户级属性存储,在BigQuery的
events_*表中,对应的键名是age_bracket和gender,需要从user_properties数组中提取(具体写法看后面的SQL示例)
如果找不到这些字段,大概率是这两个原因:
- 你还没在GA后台启用 demographics 数据收集:去Admin界面的「属性/视图设置」里开启 demographics 和兴趣报告
- 刚开启数据收集不久:需要等待1-2天,数据才会同步到BigQuery
二、导入并关联数据到BigQuery的步骤
情况1:Universal Analytics(UA)
先确保UA已链接到BigQuery:
登录UA后台,进入Admin界面,选择对应的视图,点击「BigQuery链接」,按照提示完成关联,设置导出频率(每日或实时)。查询关联数据:
数据导出后,BQ里会生成ga_sessions_YYYYMMDD格式的表,直接用SQL就能关联会话ID和年龄/性别:SELECT fullVisitorId AS user_id, ga_session_id, user.demographics.age_bracket AS user_age_bracket, user.demographics.gender AS gender FROM `你的项目ID.你的数据集ID.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20240101' AND '20240131' -- 替换成你需要的日期范围这里
fullVisitorId是用户唯一ID,用来关联用户级的年龄性别和会话(一个用户可能有多个会话)。
情况2:Google Analytics 4(GA4)
确保GA4已链接到BigQuery:
登录GA4后台,进入Admin界面,选择「产品关联」→「BigQuery链接」,完成关联并开启事件数据导出(如果需要用户级数据,也可以开启用户数据导出)。查询关联数据:
方法一:直接从事件表中提取用户属性和会话IDSELECT user_pseudo_id AS user_id, session_id, -- 从user_properties数组中提取年龄区间 (SELECT value.string_value FROM UNNEST(user_properties) WHERE key = 'age_bracket') AS user_age_bracket, -- 从user_properties数组中提取性别 (SELECT value.string_value FROM UNNEST(user_properties) WHERE key = 'gender') AS gender FROM `你的项目ID.你的数据集ID.events_*` WHERE _TABLE_SUFFIX BETWEEN '20240101' AND '20240131' -- 替换成你需要的日期范围方法二:关联事件表和用户表(如果开启了用户数据导出)
SELECT e.user_pseudo_id AS user_id, e.session_id, u.user_age_bracket, u.gender FROM `你的项目ID.你的数据集ID.events_*` e JOIN `你的项目ID.你的数据集ID.users_*` u ON e.user_pseudo_id = u.user_pseudo_id AND PARSE_DATE('%Y%m%d', e._TABLE_SUFFIX) = PARSE_DATE('%Y%m%d', u._TABLE_SUFFIX) WHERE e._TABLE_SUFFIX BETWEEN '20240101' AND '20240131'注意:GA4的年龄和性别数据是匿名化的聚合值,只有用户允许了数据收集(通过Google Signals)才会存在,不会有单个用户的精确信息。
内容的提问来源于stack exchange,提问作者Halim Iskandar
相关产品推荐
相关产品推荐

