Google Tag Manager срабатывает слишком рано? - PullRequest
0 голосов
/ 30 октября 2018

Я использую react-gtm-module, чтобы написать динамический слой, сгенерированный динамически в ответ на пользовательский тег HTML. У меня есть проблема, когда иногда тег CustomHTML срабатывает успешно, и создается dataLayer, но элементу <script type='application/ld+json'> не хватает шаблонных переменных dataLayer.

Это происходит как в среде разработки, так и в рабочей среде, поэтому не может быть связано с веб-пакетом. Иногда отладчик gtm показывает тег с пустыми полями в случае сбоя, а иногда он отображает поля, заполненные тегом, даже если сам записанный элемент этого не делает.

Вот сценарий написания в теге CustomHTML:

var script = document.createElement('script');
  script.type = 'application/ld+json';
  script.innerHTML = JSON.stringify(data);
  document.getElementsByTagName('head')[0].appendChild(script);
})(document); 

Вот два примера, которые по существу эквивалентны:

https://iiif.cloud/view/afa9ee3c-a7ed-5875-a009-2de3940ebff3

тег записан в элемент application/ld+json.

и здесь:

https://iiif.cloud/view/7145e94f-6a10-5bb6-a360-6915ee9b0795

где это не так. Будем благодарны за любые предложения по отладке этого.

1 Ответ

0 голосов
/ 01 ноября 2018

Проблема в том, что триггеру нужно дождаться заполнения dataLayer. Существует опция триггера, чтобы задержать выполнение: «Установить минимальную продолжительность на экране». При установке значения 2000 мс тег теперь всегда создается с переменными dataLayer.

...