Как dataLayer.push с использованием пользовательских шаблонов GTM?

Как dataLayer.push использовать пользовательские шаблоны GTM?

У меня есть пользовательский HTML-тег GTM, который перехватывает dataLayer.push, вызываемый на странице, проверяет его на предмет электронной торговли и, если он обнаруживается, отправляет данные электронной торговли на пиксели ремаркетинга.

Сейчас я пытаюсь обернуть этот тег в пользовательский шаблон GTM. Для этого мне нужно создать dataLayer.push из моего пользовательского шаблона GTM.

Я изучил официальную документацию:
https://developers.google.com/tag-manager/templates/api#createqueue

Вот пример метода dataLayer.push с использованием GTM Sandbox JavaScript:

 const dataLayerPush = createQueue('dataLayer'); dataLayerPush({'event': 'test_push'}); 

Но если я запускаю код из примера, я получаю такой результат:

 dataLayer (6) [{…}, {…}, lj, {…}, {…}, {…}, push: ƒ] 0: {pageType: "main"} 1: {gtm.start: 1570440507302, event: "gtm.js", gtm.uniqueEventId: 2172} 2: lj fi: event: "test_push" gtm.uniqueEventId: 7689 __proto__: Object __proto__: Object 3: {event: "gtm.dom", gtm.uniqueEventId: 13084} 4: {event: "productImpression", ecommerce: {…}, gtm.uniqueEventId: 18479} 5: {event: "gtm.load", gtm.uniqueEventId: 24517} push: ƒ () length: 6 __proto__: Array(0) 

Как видите, dataLayer [2] — это не мой толчок.

Что такое «ЖЖ»?
Что такое «фи»?

Если я пытаюсь создать другой глобальный массив с другим именем (не «dataLayer»), все работает правильно:

 const newDataLayerPush = createQueue('newDataLayer'); newDataLayerPush ({'event': 'test_push'}); 

Выход:

 [{…}] 0: {event: "test_push"} length: 1 __proto__: Array(0) 

Как я могу отправить push в dataLayer с помощью пользовательских шаблонов GTM?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector