如前所述,在 GTM 中使用了内置的 cookie 变量,这样您就可以在 GTM 代码中使用 {{cookieVar_Name}} 在 if 语句中引用这些变量。
但是,要回答有关在 GTM 中提示这些 cookie 的问题,一种方法可能是发送带有必要数据的 dataLayer.push 事件。
例如,您可以调整当前代码以在设置这些 cookie 时推送事件:
...
if (e.detail.performance) {
setCookie('cookie_performance', e.detail.performance, 365);
window.dataLayer.push({
event: 'performanceEvent',
cookie_performance: true
});
}
if (e.detail.analytics) {
setCookie('cookie_analytics', e.detail.analytics, 365);
window.dataLayer.push({
event: 'analyticsEvent',
cookie_analytics: true
});
}
if (e.detail.marketing) {
setCookie('cookie_marketing', e.detail.marketing, 365);
window.dataLayer.push({
event: 'marketingEvent',
cookie_marketing: true
});
}
...
此时,您可以创建一个名为 marketingEvent 的自定义事件触发器,然后您可以使用此触发器在执行/同意该 dataLayer.push 时触发标签。
关于读取回头客的 cookie,您可以使用带有 cookie 读取功能的 customHTML 标签:
//This function can be used to retrieve a cookie and its value by its key(name)
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
getCookie(cookie_marketing);
或者将 cookie 值存储在一个内置的 GTM cookie 变量中并编写一个 if 语句:
if({{cookie_marketing}} == true){
// fire code here
}
希望这有助于您走上正轨。