Чтение куки или отправка информации в Google Tag Manager - PullRequest
0 голосов
/ 04 марта 2019

Как правильно отправить данные в мой Диспетчер тегов Google?

Я получил уведомление о файлах cookie, которое дает пользователю возможность принимать определенные файлы cookie (производительность, маркетинг и аналитика).До сих пор я получил этот скрипт для чтения выбора пользователя:

...
if (e.detail.performance) {
    setCookie('cookie_performance', e.detail.performance, 365);
}
if (e.detail.analytics) {
    setCookie('cookie_analytics', e.detail.analytics, 365);
}
if (e.detail.marketing) {
    setCookie('cookie_marketing', e.detail.marketing, 365);
}
...

Однако, это только устанавливает cookie в браузере пользователя.Мне нравится знать в моем контейнере Google Tag Manager, принял ли пользователь cookie.

Я прочитал материал об использовании dataLayer, но я застрял в настройке триггеров или тегов внутри моего контейнера.

Можно ли отправить событие в мой контейнер, когда пользователь принимает определенный файл cookie?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Как упоминалось ранее, есть встроенные переменные cookie для использования в GTM, таким образом вы можете ссылаться на них в операторе if, используя {{cookieVar_Name}} в коде GTM.

Однако, чтобы ответить на ваш вопрос о подсказкев 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 возвращающихся клиентов, вы можете использовать тег customHTML с функцией чтения файлов cookie:

//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 во встроенной переменной cookie GTM и написать оператор if:

if({{cookie_marketing}} == true){
// fire code here
}

Надеюсь, это поможет вам встать на правильный путь.

0 голосов
/ 05 марта 2019

Конечно.Если вы перейдете в раздел переменных и нажмете «new», один из вариантов для типа переменной, который у вас есть, - «First Part Cookie».

В качестве отступления, если «365» в вашем коде относится ко времени жизниваш cookie в днях (я полагаю, что так и есть, поскольку 365 дней - это год), имейте в виду, что срок службы Cookie в Safari и iOs будет ограничен семью днями из-за новой версии их Intelligent Tracking Prevention ".

Несмотря на то, что использование файлов cookie отлично подходит для GTM, обычно рекомендуется использовать механизм передачи данных (файлы cookie имеют несколько предостережений - браузер может их не разрешать, их размер ограничен, их количество на домен ограничено и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...