关于通过Google Analytics API获取指定客户端会话信息的问询
实现基于唯一客户端ID的Google Analytics会话数据获取方案
我来帮你梳理这个完整的实现流程,核心分为GTM存储客户端ID到自定义维度和通过GA API拉取指定用户会话数据两个部分:
一、用Google Tag Manager把客户端ID存入Analytics的Dimension3
首先得先在GA后台和GTM里做好配置,确保用户进入网站时客户端ID能被正确记录:
- 先在Google Analytics后台创建一个会话级的自定义维度,命名为
Client ID,分配索引为3(对应你提到的dimension3)。 - 在GTM中创建变量获取客户端ID:
- 如果是UA(Universal Analytics),新建一个JavaScript变量,代码写:
{{ga('get', 'clientId')}}; - 如果是GA4,同样新建JavaScript变量,代码用:
gtag('get', 'G-你的跟踪ID', 'client_id')。
- 如果是UA(Universal Analytics),新建一个JavaScript变量,代码写:
- 创建一个触发时机为「Page View」的标签(用户进入网站时触发),标签类型选对应的GA(UA/GA4),把刚才的客户端ID变量值传递给自定义维度dimension3。
- 发布GTM容器,之后可以在GA的实时报告里验证这个自定义维度是否正常上报。
二、通过Google Analytics API拉取指定客户端ID的会话数据
当电商事件触发时,就可以通过API筛选dimension3的值来获取该用户的所有会话信息,分UA和GA4两种情况说明:
针对UA(Universal Analytics)
- 先确保你有API访问权限:创建服务账号,给它分配Analytics视图的读取权限,拿到密钥文件。
- 构造API请求时,重点设置这几个部分:
- 过滤条件:
filters=ga:dimension3==你的目标客户端ID,精准定位到该用户的会话; - 要获取的维度(对应你需要的会话信息):
ga:sessionStart(会话开始时间)ga:landingPagePath(着陆页)ga:operatingSystem(操作系统)ga:browser(浏览器)ga:screenResolution(屏幕分辨率)ga:source(引荐来源)ga:medium(媒介)ga:sessionId(会话唯一标识,用来区分不同会话)
- 要获取的指标:
ga:sessionDuration(会话时长)
- 过滤条件:
- 如果你用API Explorer测试,直接把这些参数填进去就能拿到对应数据,示例参数组合大概是这样:
metrics=ga:sessionDuration dimensions=ga:sessionStart,ga:landingPagePath,ga:operatingSystem,ga:browser,ga:screenResolution,ga:source,ga:medium,ga:sessionId filters=ga:dimension3==YOUR_TARGET_CLIENT_ID
针对GA4(Google Analytics 4)
- 同样先配置服务账号,给它分配GA4媒体资源的读取权限。
- 用GA4 Data API构造请求时,对应字段如下:
- 过滤条件:
dimension3 == "你的目标客户端ID"(注意这里的dimension3要和你在GA4后台创建的自定义维度名称一致); - 维度:
session_start(会话开始时间)landing_page(着陆页)device_operating_system(操作系统)device_browser(浏览器)device_screen_resolution(屏幕分辨率)session_source(引荐来源)session_medium(媒介)session_id(会话ID)
- 指标:
session_duration(会话时长)
- 过滤条件:
几个关键注意点
- 自定义维度一定要设为会话级,这样每个会话都会关联上客户端ID,保证筛选的准确性;
- GA数据有处理延迟,一般要等1-4小时才能拉取到最新的会话数据,别刚触发事件就急着查;
- 用API Explorer测试时,直接填入上述维度、指标和过滤条件,就能看到完整的会话信息返回。
内容的提问来源于stack exchange,提问作者Artem Prozorov
相关产品推荐
相关产品推荐

