Можно ли определить уровень данных над сценарием gtm, а затем передать данные в уровень данных ниже сценария gtm?

в документации Google для dataLayer говорится

Если вы поместите фрагмент контейнера Диспетчера тегов Google над массивом dataLayer, Диспетчер тегов Google может работать неправильно и не сможет читать переменные, определенные в массиве.

у меня вопрос: можно ли объявить переменную (dataLayer) над контейнером GTM, а затем передать в нее события (dataLayer) под GTM?


person geekymano    schedule 30.04.2019    source источник


Ответы (1)


да. Это не только возможно, но и то, что делает сам GTM (если у вас объявлена ​​переменная dataLayer, GTM отправляет свои события gtm.js, gtm.dom и gtm.load в существующий dataLayer (если он не определен, он объявляет саму переменную).

Вам нужно запомнить одну вещь: вам нужно отправить событие GTM - буквально пару ключ / значение, где ключом является «событие». Код GTM изменяет собственный метод push уровня данных для сканирования ключевого слова «событие», и, если ключевое слово найдено, он обновляет свои внутренние переменные (т.е. вы не можете получить доступ к новым переменным до того, как событие GTM было отправлено).

Например. если вы хотите иметь переменную dataLayer "foo" со значением "bar", вам нужно сделать

dataLayer.push({
"foo":"bar",
"event":"myCustomEvent"
});

Затем вы можете получить доступ к переменной foo и получить ее значение. Вы также можете создать триггер настраиваемого типа события, который срабатывает, как только событие "myCustomEvent" отправляется (вы не обязаны, однако, значение "bar" будет сохраняться до тех пор, пока страница не будет выгружена, вы вставляете другое значение в клавишу "foo" или сбросить уровень данных).

Некоторые типы триггеров, такие как щелчок, отправка и видимость, предоставляют свои собственные события.

Еще нужно помнить, что вы не должны объявлять переменную dataLayer второй раз после загрузки кода GTM, иначе вы удалите изменения, внесенные GTM в dataLayer, и разрывы GTM.

Но вкратце, да, это именно тот, кто должен работать, вы можете вставлять значения после кода GTM.

person Eike Pierstorff    schedule 30.04.2019