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

如何提取gtag('consent')的用户设置值?

谷歌的gtag('get')确实无法直接读取consent相关配置,不过可以通过以下几种方式获取用户的授权状态:

方法1:直接从全局数据层读取

gtag会将consent配置存入window.dataLayer对象,你可以通过遍历该对象定位对应配置:

  • 获取默认授权配置:
    const defaultConsent = window.dataLayer.find(item => item.event === 'consent_default')?.consent;
    console.log(defaultConsent);
    
  • 获取更新后的授权配置:
    const updateConsent = window.dataLayer.find(item => item.event === 'consent_update')?.consent;
    console.log(updateConsent);
    
  • 提取单个权限状态(如ad_user_data):
    const targetConsent = window.dataLayer.find(item => item.consent?.ad_user_data !== undefined);
    const adUserDataStatus = targetConsent?.consent.ad_user_data; // 返回 'granted' 或 'denied'
    

方法2:在GTM中配置自定义变量

通过GTM自定义变量直接读取数据层中的consent值:

  1. 创建自定义JavaScript变量,代码如下:
    function() {
      return window.dataLayer.find(item => item.event === 'consent_update')?.consent || 
             window.dataLayer.find(item => item.event === 'consent_default')?.consent;
    }
    
  2. 后续在GTM的标签、触发器中可直接调用该变量,获取当前完整授权配置。

方法3:手动同步授权状态到全局变量

在调用gtag('consent')时,同步将配置存入全局变量,方便后续直接读取:

// 设置默认授权时同步存储
const defaultConfig = {
  ad_user_data: 'granted',
  functionality_storage: 'denied'
};
gtag('consent', 'default', defaultConfig);
window.currentConsent = defaultConfig;

// 更新授权时同步更新全局变量
const updateConfig = {
  ad_user_data: 'denied'
};
gtag('consent', 'update', updateConfig);
window.currentConsent = {...window.currentConsent, ...updateConfig};

之后直接读取window.currentConsent即可获取最新授权状态。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:07:09