根据单个用户的决定禁用Google跟踪代码管理器(退出)

Gam*_*mby 4 javascript cookies jsp server-side google-tag-manager

在某些国家/地区(例如意大利),法律要求网站必须提供disable/ enable 分析Cookie

例如:对于Google跟踪代码管理器。

我读了这篇文章,涵盖了这个“ opt-in/ opt-outAnalytics(分析)主题”


但是我仍然有一个问题:

为什么我不能简单地读取包含用户首选项的cookie 服务器端,并且如果找到给定值(即“禁用”),则设置一个属性以使其能够有条件地在我的JSP中包含(或不包含)GTM脚本页?

Eik*_*rff 6

只需指出,GTM既不是跟踪工具,也不是它自己设置任何cookie。

与更多的编程相关,GTM代码无法基于cookie禁用自身,因为需要加载GTM以检查cookie是否存在。

Cookie作为http请求的一部分仅发送到设置服务器的域;GTM驻留在Google服务器上,该服务器无法访问您域中设置的Cookie。因此,如果您的域上设置了退出Cookie,则GTM服务器将不知道该Cookie。

Cookies主要是一种客户端技术。GTM通过向页面中注入JavaScript使其与Cookie交互,从而使其在您的域中运行,然后让脚本评估您Cookie的内容(如果您设置了Cookie变量或自定义脚本)。此时,GTM代码已经加载。

这就是为什么您不能使用Cookie阻止GTM加载的原因;但是,您可以使用Cookie禁用GTM中的所有标签。如果那还不够好,那么您必须编写自己的逻辑来有条件地禁用GTM(您甚至可以在CMS中编写一个不基于Cookie呈现GTM代码的例程-毕竟这是您自己的域,因此发送了Cookie数据根据请求;您只是不能期望Google为您做到这一点)。

GTM无法自行设置Cookie(除非您使用设置cookie的脚本编写自定义HTML标记,这与通过内联代码进行设置没有什么不同),所以我以一个示例为例,您已经有一个名为“ opt-出来”。那个cookie中存储什么值都没有关系,我们只会检查它是否在那里。

转到GTM,转到“变量”部分,单击“新建”,然后选择“第一方Cookie”。将其命名为“选择退出Cookie”,并将名称字段设置为“选择退出”。保存。现在,您有了一个变量来检查选择退出的cookie,如果设置了该变量,则返回一个值,如果cookie不存在,则返回“ undefined”。

现在转到触发器部分,并创建一个类型为页面视图的新触发器。称之为“选择退出触发器”。在“启动”部分中,在第一个字段中选择“选择退出Cookie”变量,将“不等于”设置为条件,将“未定义”设置为值(因此设置cookie时触发器评估为true)。

现在浏览您的标签,并在设置cookie时将“选择退出触发器”添加到要禁用的标签中。保存,发布。

唯一的警告是,网页浏览触发器可能会在网页浏览,DOM准备就绪或网页加载时触发。在网页浏览器上触发的异常触发器不会阻止触发设置为DOM ready或pageload的标记,因此您可能需要多个异常,加载过程的每个阶段都需要一个异常。