Использование атрибутов событий с пользовательскими событиями и GTM

У меня проблема с отправкой пользовательских событий в GA4 с помощью GTM. Проблема в том, что атрибуты событий динамически передаются с помощью dataLayer. Кажется, я не могу найти способ надежно пересылать атрибуты в GA4.

Итак, у нас есть небольшой код javascript, который запускается gtag('event', 'make_noise', {instrument: 'gituar'}).

Затем у нас есть тег GTM "Google Analytics: GA4 Event", который запускается пользовательским событием make_noise, указанным выше. Теперь это работает - мы видим, что событие make_noise перенаправляется в наше свойство GA4.

Я не могу понять, как передать атрибут «инструмент» из настраиваемого события в GA4. Я не могу просто добавить атрибут инструмента: гитара в тег GTM, так как значение атрибута инструмента является динамическим. Его можно вызывать с широким спектром значений, поэтому я действительно могу использовать все, что отправлено через код javascript, и пересылать его в GA4.

Итак, я создал «Переменную уровня данных», которая читает «dataModel.instrument», и я использовал эту переменную в своем теге события GA4. Это сработало (динамический атрибут «инструмент» пересылается, как и ожидалось), но когда я отправляю два события за короткий промежуток времени, например:

      gtag('event', 'make_noise', {instrument: 'gituar'});
gtag('event', 'do_stuff', {foo: 'bar'});

событие "make_noise" на стороне GA4 больше не имеет атрибута "инструмент". Это не определено. Предположительно потому, что переменная считывает последнее состояние dataModel (где определено только "foo").

Как мне решить эту проблему?

4 ответа

Подумайте о своей проблеме, как будто клиент использует событие поиска и имеет динамический параметр search_term в событии:

  • У вас есть свой dataLayer

  • Ваш GTM настроен:

    • Переменная: переменная dataLayer -> DataLayerVariableName: 'instrument'
    • Триггер: customEvent -> eventName: 'make_noise'
    • Тег: Событие GA4 -> eventName: 'make_noise', параметры: {{инструмент из DLV}}
  • Настройте Аналитику под пользовательские события (вы должны добавить make_noise) и пользовательское определение (вы должны добавить инструмент)

Так и должно быть ...


Редактировать:

Думаю, все, что вам нужно сделать, это заключить ключи объекта в [customKey]

Я читал ваш вопрос и внезапно понял, что эта проблема не связана конкретно с Google Analytics. Конечно, речь идет о Google Analytics, но задается вопрос: «Как установить динамические ключи в объектах?». Для этого нужно заключить динамический ключ в квадратные скобки. Код ниже работает.

      gtag('event', 'make_noise', {instrument: 'gituar'})

Допустим, вы хотели отправить нестандартный инструмент:

      let sender = prompt('Give me an instrument'); //=> Drums
gtag('event', 'make_noise', {instrument: sender})
/*
This becomes:
gtag('event', 'make_noise', {instrument: 'Drums'})
*/

TL;DR Но отправка специального ключа будет происходить так:

      let customKey = prompt('Give me a key value'); //=> Fruit
gtag('event', 'make_noise', {[customKey]: 'Drums'})
/*
This becomes:
gtag('event', 'make_noise', {Fruit: 'Drums'})
*/

Вам нужно определить "instrument" или "foo" как пользовательские параметры в GA4. Или придерживайтесь одного из предопределенных событий и их параметров. https://www.optimizesmart.com/understanding-event-parameters-in-google-analytics-4-ga4/

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