Можно ли определить dataLayer над сценарием gtm, а затем данные перенести в dataLayer под сценарием gtm? - PullRequest
0 голосов
/ 30 апреля 2019

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

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

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

1 Ответ

2 голосов
/ 30 апреля 2019

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

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

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

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

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

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

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

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

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