Предотвратить событие менеджера тегов Google на основе переменной dataLayer - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть тег диспетчера тегов Google, настроенный для запуска всех просмотров страниц. Однако на некоторых страницах мне может потребоваться отключить тег на основе внутренних данных. Для меня это звучит как работа для dataLayer.

Сначала я задумался о создании переменной dataLayer с именем disableGTMTag и присвоении ей значения для проверки. Тогда GTM сможет оценить это значение и предпринять соответствующие действия.

Итак, в dataLayer я создал переменную disableGTMTag и жестко запрограммировал ее, чтобы она всегда имела значение «google» (для целей тестирования). Запустив страницу в режиме отладки GTM, я могу подтвердить, что в dataLayer присутствует переменная disableGTMTag со значением «google».

Чтобы настроить тег, я обновил триггер тега, чтобы он срабатывал только тогда, когда disableGTMTag не содержит «google». Но тег все-таки выстрелил. Затем я попытался установить срабатывание триггера на всех страницах, но добавил исключение, когда disableGTMTag содержит «google». Тег все еще срабатывает.

Насколько я понимаю, исключение триггера должно быть того же типа, что и запуск триггера. Но я пошел дальше и создал вторичное исключение для пользовательского события, которое соответствует регулярному выражению ". *", Которое посмотрело на значение disableGTMTag. Тем не менее тег срабатывает при загрузке страницы.

Это кажется простым делом: всегда запускайте этот тег, если только эта переменная dataLayer не скажет вам не делать этого. Но это просто не работает для меня.

Есть ли другой подход для ограничения просмотра страниц? Как предотвратить запуск тегов на основе просмотра страницы с помощью переменной dataLayer?

1 Ответ

0 голосов
/ 29 апреля 2019

Я нашел решение.Рекомендуемый способ ссылки на dataLayer:

window.dataLayer = window.dataLayer || []

Но я обнаружил, что когда я использовал это соглашение, сначала запускалось мое событие просмотра страницы, а затем все мои сообщения данных происходили после того, как значения dataLayer были недоступны.Изменение его на:

window.dataLayer = []

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

...