Отправить идентификатор пользователя из Диспетчера тегов Google в Google Analytics 4

Я настроил диспетчер тегов Google с моим ресурсом GA4
(НЕ устаревшей версией Universal Analytics) в
соответствии с официальным руководством:
https://support.google.com/tagmanager/answer/6103696?hl=en&ref_topic=3441530#zippy=%2Cweb- страниц,

и я выяснил, как отправлять настраиваемые / рекомендуемые события в GA4 с помощью
объектов dataLayer.push({}), используя их поле «событие» в триггерах и тегах,
на основе руководства по Universal Analytics
( https://www.analyticsmania .com / post / track-logins-with-google-tag-manager / ),
потому что в официальном руководстве это кажется черной дырой:
https://support.google.com/tagmanager/answer/9442095
только описывает, Вкратце, GTM-сторона истории.

То же самое и с отправкой идентификатора пользователя: документы сообщают только
при создании тега конфигурации Google Analytics 4:

      To set a user ID, add a row to Fields to Set. 
Set the Field Name to user_id, and the Value to 
a Tag Manager Variable that returns the user ID.

и я использую только знания из внешних руководств UA,
чтобы использовать переменную уровня данных, которая считывает поле user_id из уровня данных,
а также создать соответствующее свойство пользователя user_id в Google Analytics, которое в Universal Analytics использовало
связанные настройки, которые не больше не существует ( https://www.analyticsmania.com/post/google-analytics-user-id-with-google-tag-manager/).

Итак, я развернул свои события GA4 с переменной уровня данных, указанной
в их конфигурации (и это видно на уровне данных в режиме отладки), создал соответствующее свойство пользователя в GA и включил создание отчетов по идентификатору пользователя.
Тем не менее, в моем представлении в реальном времени user_idполя всегда получают какое-то странное значение "gtm.js"
(как если бы значение моей переменной уровня данных было заменено именем события
из значения по умолчанию dataLayer.push ({event:"gtm.js",user_id:"ignored value")).
Чего вообще не хватает для распознавания моего поля user_id?

Спасибо!

4 ответа

Спасибо @bpstrngr! Некоторое время ходил по кругу, прежде чем нашел ответ.

Чтобы прояснить шаг за шагом, если кто-то еще столкнется с этим;

  1. При отправке userId в dataLayer добавить название события:
      window.dataLayer.push({
   'userId' : '{{ myUserId }}',
   'event': 'userIdSet',
})
  1. В GTM создайте Custom Event триггер, который прослушивает это событие (установите имя события, равное любому событию, которое вы написали на шаге 1):

  2. Добавьте это событие как триггер активации в свой тег:

Итак, в конце концов выяснилось, что, поскольку тег конфигурации был запущен событием просмотра страницы, это произошло до того, как я отправил user_id в dataLayer, поэтому вместо этого он заполнил несуществующее значение именем события.

Я дал событию user_id имя для создания настраиваемого триггера события, который повторно запускает тег конфигурации. Таким образом, наконец становятся видимыми user_id-s.

Возможно, это не лучший вариант, поскольку он не полностью соответствует рекомендациям Google, но работает отлично.

Итак, в вашем скрипте инициализации мы можем сначала установить идентификатор пользователя и только затем вызватьgtm.start/gtm.jsсобытия :

Опция 1

Дополнение к вышеупомянутому тегу конфигурации. Для одностраничных приложений я запускал дополнительный тег конфигурации GA4 с отключенным автоматическим отслеживанием просмотров страниц при каждом изменении свойств пользователя.

Очень важно!!!!Этот подход работает только в том случае, если вы переключите параметр в конфигурации потока GA4 с меткой:

Игнорировать повторяющиеся экземпляры конфигурации на странице (рекомендуется)

Это трудно найти в разделе:

Админ

  1. Веб-потоки
  2. Нажмите «Ваш веб-поток»
  3. Под тегом Google: Настройка вкладки.
  4. на вкладке «Администратор»: «Управление тегом Google».

Поскольку вы несколько раз запускаете вкладку конфигурации, ее необходимо отключить.

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

Вариант 2

Кажется, работает также установкав разделе «Свойства пользователя», хотя в документах GA4 оно помечено как зарезервированное имя свойства.

В моем случае веб-сайт, к счастью, отправилevent, чтобы я мог использовать это.

Такой подход, конечно, приведет к созданию нового мероприятия, которое не будет иметь большой бизнес-ценности, кроме установки реквизита.

Другие подходы, основанные на событиях: установите свойства пользователя для каждого запускаемого вами события (сложно поддерживать) или просто установите их для частого события page_view (в этом случае вам необходимо отключить автоматическое отслеживание просмотров страниц).

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