Существуют два способа решения в зависимости от ситуации.
Ситуация 1
Если у вас настроена расширенная электронная торговля (Enhanced E-commerce) в Universal Analytics (GA3), которая передается через Data Layer и настроена в GTM, и вы не хотите заново писать ТЗ программистам для отдельной передачи данных в DataLayer, то все, что вам нужно, — это сделать адаптацию параметров из Data Layer GA3 под структуру Google Analytics 4 (GA4).
Инструкций на эту тему довольно много, достаточно вбить в Google типичный запрос, и поисковик выдаст вам полезные статьи и видео.
Единственная рекомендация от нас. Так как GA4 содержит больше событий и параметров для электронной торговли (например, ивент по добавлению товаров в избранное add_to_wishlist), советуем их дополнительно изучить и отдельно добавить те, которых нет в GA3 (при необходимости).
Ситуация 2
- У вас настроена нерасширенная электронная торговля в Universal Analytics (GA3), которая передается через Data Layer и настроена в Google Tag Manager.
- У вас настроена расширенная электронная торговля в Universal Analytics (GA3), которая передается через Data Layer и настроена в GTM, но не полностью (допустим, не все параметры передаются).
- Вы хотите для GA4 настроить новый Datalayer и сделать все более корректно без костыльного метода через адаптацию параметров из Data Layer GA3 под структуру GA.
Проблема
При попытке настроить новые ивенты для GA4 через Datalayer у вас возникнет коллизия, так как ивенты для электронной торговли с GA3 и GA4 имеют одинаковые тайминги, но разную структуру. При попытке настроить все по документации с сайтов или Google у вас будут задваиваться ивенты, причем с неправильной структурой и для GA3, и для GA4.
Пример данной проблемы в документации Google:
https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm
Ивент в GA3:

Ивент в GA4:

Как мы видим, имена ивентов одинаковые, но структура DataLayer разная.
Решение
Решение довольно простое, но оно позволит корректно использовать DataLayer в нужной структуре для GA3 и для GA4.
1.Предполагается, что ивенты в новой структуре Datalayer будут настраиваться под GA4, так как GA3 уже настроено. Поэтому при создании DataLayer в конце нового ивента под GA4 описывать {eventname}_ga4. Это условие необходимо прописать по всем ивентам в ТЗ на настройку электронной торговли под GA4.
Пример: на ивенте Purchase
Вместо:
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "purchase",
ecommerce: {
…………..
Делаем:
dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
event: "purchase_ga4",
ecommerce: {
…………..
2.В триггере в GTM настраиваем новый кастом ивент на {eventname}_ga4. Ниже скрин на примере ивента purchase_ga4.

3.В настройках тега мы указываем наш триггер, а вот в имени ивента для GA4 уже пишем правильное название из документации (то есть eventname без _ga4).
Ниже скрин на примере ивента purchase_ga4.

4.Так делаем с каждым ивентом. В итоге у нас DataLayer для GA4 будет формироваться с правильной структурой и нашим eventname, который не будет попадать Universal Analytics. На уровне тега мы оставляем нужный нам ивент, вытянем из него необходимые переменные и уже дальше в GA4 передадим правильный eventname. Таким образом избегаем конфликта между Universal Analytics и GA4.
В завершение всем рекомендуем как можно быстрее переходить на электронную торговлю на Google Analytics 4, так как:
- Google до конца 2022 года Google перестанет поддерживать GA3, и вы потеряете аналитику и оптимизацию для рекламных кампаний.
- GA4 — кроссплатформенный счетчик Google следующего поколения, который имеет более оптимальный вариант отслеживания, расширенный функционал (хотя пока и не в привычных отчетах).
Если у вас возникнут вопросы — пишите, мы всегда поможем. Удачной настройки и высоких конверсий!
Web-аналитик GIX Вадим Смолкин