GTM переименовать dataLayer не работает - PullRequest
0 голосов
/ 27 апреля 2018

Я использую следующую документацию для переименования моего 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», но я не понимаю почему, потому что я выполнил шаги из документации.

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

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2018

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

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