Как создать события GA для каждого члена массива в GTM - PullRequest
0 голосов
/ 28 мая 2020

На нашем уровне данных у нас есть массив надстроек для наших продуктов

Add-ons: [
{code: 'wheels', selection: 'alloy'),
{code: 'finish', selection: 'pearl'}
],

К сожалению, они не одинаковы для каждого продукта и не возвращаются в том же порядке.

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

Я создал переменную GTM, которая извлекает массив (это нормально работает), но теперь мне нужно запустить отслеживание событий. Я работал с forEach

<script>

  {{addon-list}}.forEach(function(arrayItem) {

dataLayer.push({
    'event': 'GAEvent',
    'eventCategory': 'AddOn',
    'eventAction': {{addon-list}}.code,
    'eventLabel': {{addon-list}}.selection,
    'nonInteraction': 1
})

});

</script>

Хотя он запускает одно событие, оно не определено для Action и Label. Любые идеи? Это похоже на удобную вещь, поэтому я уверен, что кто-то это сделал / делает.

1 Ответ

0 голосов
/ 20 июня 2020

Через множество итераций мне удалось прийти к решению.

Во-первых, переменная GTM, извлекающая массив, должна быть версии 1 из-за того, как обрабатываются данные.

Тогда сценарий:

<script>

  {{addon-list}}.forEach(createEvent);

  function createEvent (addon) {

dataLayer.push({
    'event': 'GAEvent',
    'eventCategory': 'AddOn',
    'eventAction': addon.code,
    'eventLabel': addon.selection,
    'nonInteraction': 1
})

};

</script>

Объявив значение addon и используя его в переменных для извлечения элементов массива, он сработал.

...