Анонимирование IP посетителей в GTM в соответствии с cookie пользователя для GDPR
Поэтому я настроил GTM для анонимизации IP-адреса пользователя при просмотре страницы - скриншот GTM
То, что я пытаюсь достичь, это:
- Если пользователь нажимает кнопку Да, разрешить использование файлов cookie на баннере файлов cookie. Сохраните cookie и отключите анонимность IP в PageView.
- Если пользователь нажимает на кнопку "cookie", на баннере cookie нет файлов cookie. Удалите куки и сохраните анонимность IP на странице просмотра.
Я смог сделать это с помощью gtag, но мне нужно, чтобы это работало для GTM. Должен ли я что-то выдвинуть к датайеру просмотра страниц? Если да, то как мне это сделать, но у меня нет большого опыта использования DataLayer в GTM. Приведенный ниже код является моей реализацией для gtag, это необходимо изменить для работы с GTM.
'use strict';
class CookieBanner {
constructor() {
this.yesOption = $('[am-cookie-button~="yes"]');
this.noOption = $('[am-cookie-button~="no"]');
this.cookieBanner = $('[am-cookie]');
}
init() {
this.storeCookies();
this.destroyCookies();
this.checkCookies();
}
setCookie(name,value,days) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
getCookie(name) {
let nameEQ = name + "=";
let ca = document.cookie.split(';');
for(let i=0;i < ca.length;i++) {
let 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;
}
eraseCookie(name) {
document.cookie = name+'=; Max-Age=-99999999;';
}
checkCookies() {
let cookiesEnabled = this.getCookie('Cookies Enabled');
let cookiesDisabled = this.getCookie('Cookies Disabled');
if (cookiesEnabled == null && cookiesDisabled == null) {
this.cookieBanner.addClass('active');
}
}
storeCookies() {
let _parent = this;
this.yesOption.on('click', function(el){
// Allow IP
// Below needs replacing with GTM Page View datalayer
gtag('config', 'UA-118146882-1', { 'anonymize_ip': false });
_parent.setCookie('Cookies Enabled','GDPR',365);
_parent.eraseCookie('Cookies Disabled');
_parent.cookieBanner.removeClass('active');
});
}
destroyCookies() {
let _parent = this;
this.noOption.on('click', function(el){
// Set IP to anon in GA
// Below needs replacing with GTM Page View datalayer
gtag('config', 'UA-118146882-1', { 'anonymize_ip': true });
_parent.setCookie('Cookies Disabled','GDPR',365);
_parent.eraseCookie('Cookies Enabled');
_parent.cookieBanner.removeClass('active');
});
}
}
export default CookieBanner;
Реализация кода GTM ниже:
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5CKLHM');
</script>
Спасибо, был бы очень признателен, если бы кто-то смог показать мне, как это работает