GTM переименовать dataLayer не работает

Я использую следующую документацию для переименования моего уровня данных: https://developers.google.com/tag-manager/devguide#renaming

Мой код выглядит так:

fsData = [{ 'pageName' : 'test' }]

<noscript><iframe src = "//www.googletagmanager.com/ns.html?id=GTM-NV9MP5D" height = "0" width = "0" style = "display:none;visibility:hidden"></iframe></noscript><script>
  (function(w,d,s,l,i){
  w[l]=w[l]||[];
  w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
  var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&amp;l='+l:'';
  j.async=true;
  j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;
  f.parentNode.insertBefore(j,f);
  })(window,document,'script','fsData','GTM-NV9MP5D');
</script>

Затем я перехожу в GTM, добавляю новую переменную dataLayer и настраиваю ее так, чтобы она содержала значение pageInfo. Я создаю простой тег, который выводит эту переменную, и в качестве триггера выбираю значение по умолчанию «Все страницы», которое настроено на запуск, как только GTM получает событие gtm.js из приведенного выше фрагмента кода.

Проблема в том, что мой тег никогда не срабатывает, и когда я использую отладчик, я замечаю, что мой объект fsData содержит мои данные, событие gtm.js, но отладчик GTM показывает, что GTM отправляет все свои объекты и события в «dataLayer», не "fsData".

Теперь у меня есть:

window.dataLayer
0: {event: "gtm.dom", gtm.uniqueEventId: 0}
1: {event: "gtm.load", gtm.uniqueEventId: 4}

window.fsData
0: {pageInfo: test}
1: {gtm.start: 1524823378118, event: "gtm.js"}

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

Кто-нибудь знает, что мне не хватает?

Спасибо

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
3
0
491
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема с кодировкой в ​​вашем фрагменте, расширение амперсанда перед параметром l: &amp;l= приведет к удалению параметра переименования в загружаемом сценарии gtm. Это помещает все после того, как сценарий gtm берет на себя ответственность в уровне данных по умолчанию, оставляя только уже отправленные данные в строках самого фрагмента в переименованном слое.

Другие вопросы по теме