You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google跨域分析:Cookie未授权时URL参数规则及相关问题咨询

问题背景与咨询

背景信息

某客户网站基于WordPress搭建,使用OneTrust进行Cookie管理,已配置Google跨域分析。用户Cookie授权状态不同时,GA的行为存在差异:

  • 完全授权Cookie:GA将用户标识数据存储于_ga、_ga_ID等分析类Cookie中;
  • 仅授权必要Cookie:GA会在URL中添加类似_gl=1*XXXXXXX*_up*MQ..*_ga*ZZZZZZZ.*_ga_YYYYYYY*YYYYYYY..的参数,此为Google官方文档记载的默认行为。

用户最初存在两处疑问:

  1. 为何仅在未完全授权Cookie时才添加URL参数?
  2. 用户进行同域子页面跳转(如从www.example-page.com/home-page到www.example-page.com/about-page)时,URL被添加GA参数是否合理?

具体咨询问题

  1. GA如何判断将数据存入Cookie还是URL参数?
  2. 首次跳转前这些参数存储于何处?是否在dataLayer或google_tag_manager全局变量中?
  3. 未完全授权Cookie时,能否将参数存储在URL以外的位置?
  4. 同域内跳转时添加GA参数是否属于正确行为?

补充说明

同域跳转添加参数的问题已解决,原因是更新了gtm-templates-simo-ahava的Consent Mode模板,回退到旧版本即可修复,推测与该模板仓库的相关PR有关。


问题解答

1. GA判断存储方式的逻辑

GA通过Consent Mode机制识别当前的Cookie授权状态来决定存储方式:

  • 当用户完全授权分析类Cookie(即analytics_storage被设为granted),GA优先使用Cookie存储用户标识(如客户端ID)——Cookie是同域/跨域场景下稳定传递用户数据的标准持久化方式;
  • 当用户仅授权必要Cookie(analytics_storage被设为denied),GA无法写入分析类Cookie,就会采用URL参数的方式传递用户标识,以此维持跨会话/跨页面的用户识别,避免数据追踪断裂。

2. 首次跳转前参数的存储位置

首次跳转前,参数对应的原始数据(如客户端ID)会临时存储在dataLayer或Google Tag Manager的全局变量中:

  • GA初始化时会生成客户端ID,若Cookie未授权,该ID会暂存到dataLayer的相关事件字段(如gtm.clientId),或google_tag_manager实例的内部变量中;
  • 当触发页面跳转时,GTM会读取这些临时存储的数据,拼接成URL参数添加到目标链接上。

3. 非URL位置存储参数的可行性

未完全授权Cookie时,无法使用分析类Cookie,但可以尝试以下合规替代方案:

  • 浏览器存储API:如sessionStorage(会话级存储,关闭标签页即失效)或localStorage(持久化存储),但GA默认不支持这种方式,需要通过自定义GTM模板或代码实现数据的存储与传递;
  • 自定义请求头:若网站内部跳转采用AJAX方式,可通过自定义请求头传递用户标识,但不适用于普通页面跳转;
  • 注意:所有替代方案必须符合GDPR等隐私法规,不能违反用户的Cookie授权意愿。

4. 同域跳转添加参数的正确性

  • Google官方默认逻辑中,仅在跨域跳转时才会添加此类URL参数;同域跳转时,即使Cookie未授权,GA也应优先尝试使用必要Cookie(若授权)或其他同域存储方式,而非添加URL参数;
  • 此次出现的同域跳转添加参数问题,属于第三方Consent Mode模板(gtm-templates-simo-ahava)的逻辑异常,回退旧版本修复符合预期,说明是模板更新带来的非标准行为。

内容的提问来源于stack exchange,提问作者Jakub Simek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:15:34