Я управляю веб-сайтом, который был создан и размещен на Shoptet, и столкнулся с проблемой: когда я «просматриваю» теги в Google Tag Assistant, событие покупки запускается 3 раза вместо 1, и никогда больше. ни в коем случае, и все они имеют уникальные идентификаторы, и, наконец, все 3 покупки отправляются как в GA4, так и в GAd, и это проблема. Событие срабатывает, когда через DataLayer происходит событие «покупка».
Между событиями покупки всегда происходят два одних и тех же события. После первого события покупки происходит «Set»; Вызов API: gtag("set", {currency: "CZK"}) происходит событие. После второго события покупки происходит «fbloaded»; Вызов API: dataLayer.push({fbpixel: "loaded", event: "fbloaded", gtm.uniqueEventId: 11}) происходит событие, последовательность событий можно увидеть на картинке: запущенные события.
Насколько я понимаю, событие «fbloaded» как-то связано с пикселем Facebook, и с веб-сайтом связана учетная запись Facebook для измерения конверсий. Я попытался отключить Facebook, но событие все равно произошло.
Существует также возможность связать учетную запись GA4 с веб-сайтом через страницу администратора — так же, как в Wordpress или на других платформах, и у меня есть ссылка. Я попытался отключить это, но взамен никаких событий не отслеживалось.
Я также несколько раз проверял, нет ли у меня «удвоенных» тегов или каких-либо исключений, которые могли бы привести к такому поведению.
Я также проверил полный код DataLayer. В первом случае покупки код имеет наибольшее количество строк, во втором — меньше и, наконец, в последнем — наименьшее количество строк кода. Я пришел к выводу, что в последнем не так много строк из-за Facebook и что ему не нужно так много информации, но я не знаю, правильно это или нет.
Я хотел бы знать, есть ли способ объединить эти 3 события вместе, избавиться от них или сделать что-то, чтобы отслеживалось и отправлялось в GA4 и GAds только одно событие?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Мне кажется, вы правильно выполнили всю отладку на стороне аналитики. Вы видите три события, потому что объект dataLayer имеет три события. Так что с вашей настройкой аналитики все в порядке. Похоже, ошибка на стороне CMS.
Что не так, так это то, как вы помещаете события в dataLayer. Следует отправлять только первое событие покупки. Остальное — ошибки. Ваш вывод о размере объектов dataLayer неверен. Вам не нужно несколько объектов DL для запуска нескольких тегов. Facebook прекрасно справится с тем же событием покупки DL, что и GA, и, возможно, двадцатью другими пикселями.
Похоже, еще одной причиной такого поведения может быть неправильное использование gtag вместо GTM. Вы должны использовать любой из них. GTM абстрагирует от вас использование gtag. Если вы делаете и то, и другое, вы мешаете работе GTM. Меня также беспокоит то, как вы даете своей CMS идентификатор аналитики, одновременно используя GTM. Если вы используете GTM, вам следует отключить любую другую аналитику в вашей CMS и выполнять все отслеживание в GTM, полагаясь на dataLayer.
Я отвязал аналитику от CMS, но это само по себе не решило мои проблемы. Мне также пришлось настроить настройки тегов, и теперь все работает отлично.