TapCub 正式上线:统计、分析、客服一个平台免费用

免费工具 Consent Mode v2 代码生成器:gtag 和 GTM 两种写法

投 Google Ads、用 GA4 统计欧洲访客的出海网站,需要把访客的 Cookie 选择通过 Consent Mode(同意模式)告诉 Google。选好安装方式、基本还是高级模式、哪些地区需要同意,就能得到顺序正确的默认值代码、弹窗要调用的 update,以及每个参数的白话说明;全部对照 Google 官方文档。

  • 7 个同意参数
  • 按地区设默认值
  • 本地生成
生成器

选好方案,复制两段代码

默认适合用 GA4 统计欧洲访客的网站:欧洲经济区、英国、瑞士默认拒绝,其他地区默认允许,高级模式。任意修改,代码随输入更新。

gtag.js = 直接贴在页面里的 Google 代码;Tag Manager = GTM 容器。

gtag.js 用 G-(GA4)、AW-(Google Ads)或 GT-;Tag Manager 用 GTM-。

高级模式立即加载 Google 代码、默认拒绝;基本模式等访客同意后才加载。区别见工具下方的表。

地区代码用 ISO 3166-2。名单以外的地区,所有参数默认 granted。

代码等待弹窗回报选择的时间。Google 的 Tag Manager 文档建议至少 500。

弹窗写入的 localStorage 键或 Cookie 名。Cookie 弹窗生成器 用的是 cookie_consent。

1. 放在 <head> 最前面,早于任何 Google 代码
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  // Consent Mode v2 默认值:必须在任何 config、event 命令之前执行
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied',
    'functionality_storage': 'denied',
    'personalization_storage': 'denied',
    'security_storage': 'granted',
    'wait_for_update': 500,
    'region': ['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'IS', 'LI', 'NO', 'GB', 'CH']
  });
  gtag('consent', 'default', {
    'ad_storage': 'granted',
    'ad_user_data': 'granted',
    'ad_personalization': 'granted',
    'analytics_storage': 'granted',
    'functionality_storage': 'granted',
    'personalization_storage': 'granted',
    'security_storage': 'granted'
  });
  gtag('set', 'ads_data_redaction', true);
  // 回访访客:恢复 Cookie 弹窗保存的选择
  (function () {
    var raw = null, r = null;
    try { raw = localStorage.getItem('cookie_consent'); } catch (e) {}
    if (!raw) try { var m = document.cookie.match(/(?:^|; )cookie_consent=([^;]*)/); if (m) raw = decodeURIComponent(m[1]); } catch (e) {}
    try { r = JSON.parse(raw); } catch (e) {}
    if (!r || !r.c || !(r.e > Date.now())) return;
    var c = r.c;
    gtag('consent', 'update', {
      'ad_storage': c.marketing ? 'granted' : 'denied',
      'ad_user_data': c.marketing ? 'granted' : 'denied',
      'ad_personalization': c.marketing ? 'granted' : 'denied',
      'analytics_storage': c.analytics ? 'granted' : 'denied',
      'functionality_storage': c.preferences ? 'granted' : 'denied',
      'personalization_storage': c.preferences ? 'granted' : 'denied'
    });
  })();
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

在 Google 代码或 GTM 容器之前执行。顺序很关键:Google 明确说默认值如果在 config、event 命令之后调用就不会生效。

每个参数设成了什么

参数默认值名单以外的地区弹窗分类控制什么
ad_storagedeniedgranted营销广告用途的存储,例如 Cookie
ad_user_datadeniedgranted营销向 Google 发送用于广告的用户数据
ad_personalizationdeniedgranted营销个性化广告(再营销)
analytics_storagedeniedgranted统计分析统计用途的存储,例如访问时长
functionality_storagedeniedgranted偏好支持网站功能的存储,例如语言设置
personalization_storagedeniedgranted偏好个性化用途的存储,例如推荐内容
security_storagegrantedgranted必要(不征求)安全用途的存储:登录认证、防欺诈
2. 让弹窗调用这段
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  // 访客做出或修改选择时调用 applyConsent()
  window.applyConsent = function (c) {
    gtag('consent', 'update', {
      'ad_storage': c.marketing ? 'granted' : 'denied',
      'ad_user_data': c.marketing ? 'granted' : 'denied',
      'ad_personalization': c.marketing ? 'granted' : 'denied',
      'analytics_storage': c.analytics ? 'granted' : 'denied',
      'functionality_storage': c.preferences ? 'granted' : 'denied',
      'personalization_storage': c.preferences ? 'granted' : 'denied'
    });
  };
  // 示例:
  // applyConsent({ analytics: true, marketing: false, preferences: false });
</script>

访客点击时调用 applyConsent({ analytics, marketing, preferences }),并把选择保存下来。Cookie 弹窗生成器 生成的弹窗两件事都已经做了。

这套方案的说明

  • 已做到顺序正确:先定义 dataLayer 和 gtag,再设默认值,然后才加载 gtag.js、执行 config。
  • 说明默认拒绝只对 32 个地区代码生效;另一条默认值对其他地区全部允许。Google 按最具体的匹配地区取值。
  • 说明高级模式:Google 代码立即加载。同意为 denied 时发送不带 Cookie 的 ping(时间戳、用户代理、来源页、同意状态),Google 用它做针对你账户的转化建模。
  • 说明ads_data_redaction 只在 ad_storage 为 denied 时起作用,granted 之后没有影响。
  • 说明回访访客:在任何代码运行前,读取「cookie_consent」里保存的选择并发送 update。
  • 说明用 Google Tag Assistant 检查:Consent 标签页会显示每个参数的默认值和 update。
全部在你的浏览器里计算。这里输入的任何内容都不会上传,TapCub 也不会保存。

分享这组输入:数值写在链接的 # 后面,不会发到服务器。

版本 v1.0更新于 更新记录

看懂结果

每段代码做什么

Consent Mode 本身不显示弹窗,它负责把访客的选择告诉 Google 代码,让弹窗和代码配合起来。

默认值代码

定义 dataLayer 和 gtag(),然后对 7 个参数调用 gtag('consent', 'default', …)。设了地区名单时有两条默认值:名单内 denied,其他地区 granted。

update 调用

gtag('consent', 'update', …) 把弹窗的三个分类对应到 6 个参数:营销同时控制 ad_storage、ad_user_data、ad_personalization,统计分析控制 analytics_storage。

参数表

列出每个参数的默认值、名单以外地区的取值、由弹窗哪个分类改变,以及 Google 的一句话定义。

说明清单

指出代码 ID 填错、地区代码不对、等待时间过短,以及基本 / 高级模式下 Google 能收到什么数据。

granted / denied 管的是存储和数据用途,不是代码加不加载。高级模式下即使 denied,Google 代码仍会发送不带 Cookie 的 ping;如果同意前什么都不想发,请选基本模式。

怎么用

四步

大约十五分钟,包括用 Tag Assistant 检查。

  1. 1

    选安装方式和模式

    选 gtag.js 或 Tag Manager,填代码 ID。想让 Google 对拒绝的访客做转化建模就选高级模式;同意前什么都不想发给 Google 就选基本模式。

  2. 2

    设定哪些地区需要同意

    「欧洲经济区 + 英国 + 瑞士」适合多数出海网站;要精确到国家或州就用自定义名单(ISO 3166-2,例如 US-CA)。

  3. 3

    贴代码

    默认值代码放在每个页面 <head> 的最前面,早于 Google 代码或 GTM 容器。Shopify、WordPress 在主题的 head 模板里加。update 接到弹窗按钮上,或者直接用我们的 Cookie 弹窗,它已经调用好了。

  4. 4

    检查

    打开 Tag Assistant,加载页面,看 Consent 标签页:页面加载时是默认值,点击弹窗后出现 update。再用无痕窗口模拟一次回访。

基本模式 vs 高级模式

Consent Mode 的两种实现方式

Google 文档里两种模式都有,选哪种取决于法务意见和你需要多少建模数据。以下根据 Google 帮助中心 consent mode 说明整理(2026-11-10 核对):

  • 基本模式:访客和弹窗交互之前,Google 代码不加载;访客拒绝时什么都不发给 Google,连同意状态都不发。转化建模用通用模型
  • 高级模式:Google 代码立即加载,默认 denied。拒绝期间发送不带 Cookie 的 ping,内容是功能性信息(时间戳、用户代理、来源页)和粗略标记。建模针对你的账户
  • 对欧洲经济区的访客,Google 要求用它的代码做衡量、个性化广告或再营销的广告主收集同意,并通过 consent mode(包括 ad_user_data、ad_personalization)传给 Google
  • 顺序:default 必须在任何 config、event 命令之前执行;访客做出选择后尽快发送 update,之后每个页面都要再发
基本模式和高级模式对比
基本模式高级模式
代码加载访客交互前不加载立即加载,默认 denied
同意之前不发送任何数据,包括默认状态发送同意状态和无 Cookie 的 ping
同意之后代码加载并正常运行写入 Cookie,发送完整数据
拒绝时什么都不发只发无 Cookie 的 ping
转化建模通用模型针对广告主的模型
本生成器的写法访客接受后由 loadGoogleTag() 加载 gtag.jsgtag.js 写在页面里,设置 wait_for_update
例子

一个访客、三次页面浏览

一位德国访客打开用 GA4 的网站,工具默认设置:高级模式、欧洲经济区 / 英国 / 瑞士名单、恢复已保存选择。

同意状态随访问变化
时间点执行了什么analytics_storagead_storage
第一次打开页面DE 适用的地区默认值denieddenied
在弹窗里只同意统计分析applyConsent({ analytics: true }) → updategranteddenied
打开下一个页面先默认值,再从 cookie_consent 恢复并 updategranteddenied
一位来自加拿大的访客不带地区的那条默认值(不在名单里)grantedgranted

欧洲以外默认允许是否合适,是法律问题而不是技术问题。比如加州 CCPA 对出售、共享数据采用「可退出」模式;想在所有地区都用更严格的默认值,就选「所有访客」。

常见错误

Consent Mode 最容易出错的地方

几乎所有问题都出在顺序,或者漏了 update。

默认值放在 Google 代码后面

gtag('consent', 'default') 如果在 config 之后执行,Google 说默认值不会生效。把这段放在 <head> 最前面。

只在点击的那一页发 update

后续页面不恢复已保存的选择,回访访客又会被当成 denied。保持「每个页面都恢复已保存的选择」打开。

只设了 v1 的参数

只设 ad_storage、analytics_storage,不设 ad_user_data、ad_personalization,v2 的两个信号就是空的。生成器总是写全 7 个。

地区代码写错

英国是 GB 不是 UK,EU 也不是地区代码。工具会标出认不出的代码。

常见问题

Consent Mode 常见问题

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

Consent Mode v2 新增了什么?

两个参数:ad_user_data(向 Google 发送用于广告的用户数据)和 ad_personalization(个性化广告)。加上 ad_storage、analytics_storage 和另外三个存储类参数,一共 7 个。Google 针对欧洲经济区的说明要求广告主把这些访客的同意选择通过 consent mode 传过去。

Consent Mode 就是 Cookie 弹窗吗?

不是。Google 说 consent mode 不提供弹窗,它接收弹窗传来的选择,再调整 Google 代码的行为。你仍然需要弹窗或同意管理平台。Cookie 弹窗生成器 生成的弹窗已经调用好了 update。

基本模式和高级模式选哪个?

基本模式在访客同意前什么都不发给 Google;高级模式立即加载代码,拒绝期间发送不带 Cookie 的 ping,Google 据此为你的账户单独建模。Google 把选择权留给网站,一般取决于法务是否接受这些 ping。

默认值代码放在哪里?

放在 <head> 的最前面,早于 Google 代码或 GTM 容器。Google 文档明确说,顺序错了(在 config、event 之后调用)默认值就不起作用。

wait_for_update 是什么意思?

告诉代码在发送数据前等多少毫秒的 update,让弹窗有时间在页面加载时回报已保存的选择。Google 的 Tag Manager 文档建议至少 500 毫秒。

在 Google Tag Manager 里怎么设置 Consent Mode?

两种做法:在容器代码之前贴默认值代码(Google 的 Tag Manager 示例就是这样写的);或者用同意模板,在「Consent Initialization - All Pages」触发器上设默认值。模板里要用 setDefaultConsentState 和 updateConsentState,不要用 gtag('consent', …)。

url_passthrough 和 ads_data_redaction 是什么?

url_passthrough 在 Cookie 被拒绝时,通过网址参数(如 gclid、_gl、wbraid)传递广告点击和会话信息。ads_data_redaction 在 ad_storage 为 denied 时,去掉 Google Ads 和 Floodlight 请求里的广告点击标识;ad_storage 变成 granted 后就没有作用了。

国内网站需要 Consent Mode 吗?

只服务国内访客、不用 Google 代码的网站用不上。它是 Google 的机制,影响的是 GA4、Google Ads 等 Google 代码;国内的统计和广告平台不读这个信号。做出海业务、面向欧洲访客投 Google 广告的网站才需要重点配置。

更新记录

更新记录

这个工具的新功能、修复和数据更新,最新的在前。

  1. · v1.0

    首次上线首次上线。

这个工具用到的数据

  • Google Consent Mode 官方文档 — 核对于 2026-11-10,每 6 个月复核(2027-05-10 前复核)

缺功能或发现错误?告诉我们,常被提到的会排进下次更新。 全部工具更新

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie