如何为面向欧美的网站添加跟踪许可?
只要我们做出海生意的就一定知道欧洲有GDPR,美国有CCPA。因此我们访问这两个地区网站的时候总会有弹出窗口,问你要不要接受Cookie,要不要接受跟踪。这是隐私保护合规的重要举措,但这也为我们制造了不少麻烦。因为我们现在必须要在用户允许跟踪之后才能调用Google Analytics这样的工具进行跟踪了。
本篇马老师将会用Google Tag Manager结合GA4标签在WordPress平台上用一个例子来解释部署方法。
安装弹窗插件
我们这次使用的是一个叫Beautiful Cookie Consent Banner的WP插件。
该插件是马老师随便找的,有几个优点:
- 免费!!!
- 不会从第三方下奇怪的资源。
- 自动会推送event到datalayer。
- 可定制对话框样式。
- 会自动删第一方Cookie。
启用后,按喜好设置。但记得Push consent event to dataLayer要勾上。
在本文的实例中,我们Compliance Type会选择Ask user to Opt-in。这样的话,当新用户来到我们网站的时候Google Analytics不会启用,一直到用户点击Allow允许我们跟踪以后GA4的标签才触发。同时,我们会把选择保存至第一方Cookie,记住用户的选项。
另外我们先记下来:
- beautiful_cookie_consent_updated会被push到datalayer
- cookieconsent_status是默认使用的cookie名称,有allow和deny两个值。
GTM中启用Consent Overview
从Admin > Container Settings > Additional Settings可以打开Consent Overview模式,该模式还在beta中。
回到Workspace点击左边菜单的Tags,可以看到所有Tag的列表。而在列表的右上角,在New按钮的左边,有一个盾牌打勾的图标。这里就可以去到Consent Overview界面。这里可以看到哪些被设置和consent相关的标签和未设置关联的标签。
今后需要了解Container中关于Consent的问题都可以到这个界面查看。方便很多。
添加变量获取Cookie状态
这个变量用于抓取Cookie中插件设置的值,通过这个值我们可以决定是不是触发GA4的标签。当然,我们也会对其设默认的值deny。
极诣认为通过Cookie来获得状态要比在datalayer中获取要可靠。然后我们把Cookie的值转化为Google听得懂的Consent Mode的值:granted或者是denied。
上面我们建立了一个Lookup Table类型的变量,把Cookie的值翻译成了denied或者granted。
新建两个触发器捕获许可变动
首先我们建立一个新Trigger,用来记录用户点击Allow或者Deny按钮的行为。
接下来我们要捕捉GTM中许可变更的事件,这也要建一个Trigger。
这就问题来了,beautiful_cookie_consent_updated事件是如何变成gtm_consent_update事件的呢?我们先把问题放一放。因为接下来我们就要建一个标签了。
新建初始化许可和更新许可的标签
首先,每个页面载入的时候都会有一个早于所有事件发生的事件——Consent Initialization。在这个事件发生的时候其他标签还没被触发。此时我们便可以对许可进行初始化。
这里我们用到了Simo Ahava的第三方标签模板。我们可以在Community Template Gallery中找到。名为Consent Mode (Google tags)。载入后按下图设置:
这里用到了我们刚刚从Cookie中抓的变量Cookie Consent,其值为denied或granted。Command设为Default表示我们抓的是当前的默认值。
同样,我们再做一个Tag。
这一次我们Command设为Update。关联的触发器是Consent Updated,这是我们上面新建的。同时我们会把一个Event推送到dataLayer。这个Event的名字是gtm_consent_update。
更新GA4标签
现在,我们可以更新GA4标签来决定什么时候跟踪,什么时候不跟踪了。

我们这次启用了Consent Settings。在ad_storage和analytics_storage为granted的时候标签就会被触发。你可以发现我们还加了一个我们刚才新建的触发器GTM Consent Updated。此时页面不会重新加载,但如果用户是点击了Allow,那么GA4将会在此时加载。
到此为止,我们已经建立了所有我们需要的Tag,Trigger,Variable。你可以调试一下,看看是否起作用。成功后你可以把更多的标签添加许可并在Consent Overview中管理。
这个极诣的例子中,我们用到了一个插件,这其实是一个轻量级的CMP(Consent Management Platform)。当然市面上有更多更复杂的CMP,有的和GTM也有不错的整合,值得读者的探索。
Google Consent Mode
讲到这里,我们有必要再提醒一下各位读者。本篇我们举的例子是根据不同的用户许可来决定是否Fire GA4标签的。这是非常严格的做法,你会因为用户未授权丢失用户访问的统计。但事实上,我们可以对GA4标签不做处理。在Google Consent Mode下,它会根据不同许可改变谷歌系标签的行为。这些标签包括Google Ads,Google Analytics,Floodlight。也就是说上例中最后一步如果我们不做,GA4的Library会被加载,但是是否获取敏感信息是否使用Cookie依旧会看Consent状态。