Мне нужна помощь с Google Analytics, скриптами gtag и gtm
Вот как я создаю фрагмент partytown в веб-пакете ->
const snippetText = partytownSnippet({
debug: config.env !== 'production',
forward: [
'dataLayer.push',
'GoogleAnalyticsObject',
'ga',
'gtag'
],
resolveUrl: (url, _location, type) => {
const proxyScriptHosts = [
'www.google-analytics.com',
'www.googletagmanager.com',
];
if (type === 'script' && !!url && proxyScriptHosts.find((proxyScriptHost) => url.host.includes(proxyScriptHost))) {
const proxyUrl = new URL('https://my-proxy.com/api/proxy');
proxyUrl.searchParams.append('url', url.href);
return proxyUrl;
}
return url;
}
});
Затем я вставляю этот фрагмент в свой файл index.html следующим образом:
<script type = "text/javascript">{snippetText}</script>
Теперь мне нужно загрузить 3 скрипта для моего приложения, здесь мне нужна помощь, чтобы понять, что я делаю неправильно -
<script type = "text/partytown">
window.dataLayer = window.dataLayer || [];
window.gtag = function () {
window.dataLayer.push(arguments);
}
window.GoogleAnalyticsObject = 'ga';
window.ga = function () {
window.ga.q = window.ga.q || [];
window.ga.q.push(arguments);
};
window.ga.l = 1 * new Date();
</script>
<script type = "text/partytown" async defer fetchpriority = "low" src = "https://www.google-analytics.com/analytics.js"></script>
в одном из моих реагирующих компонентов я инициализирую Google Analytics следующим образом ->
window.gtag('js', new Date());
window.gtag('config', gaId, options);
Это отлично работает, я вижу, что запросы Google Analytics UA4 на вкладке сети работают, как и ожидалось! 2. Вот как я загружаю скрипт gtag -
<script type = "text/partytown" async defer fetchpriority = "low" src = "https://www.googletagmanager.com/gtag/js?id=${gtagId}"></script>
<script type = "text/partytown" async defer fetchpriority = "low" src = "https://www.googletagmanager.com/gtm.js?id=${gtmId}"></script>
<script type = "text/partytown">
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
</script>
Скрипты Gtag и GTM не работают, для них не отправляется ни одно из событий, помогите, пожалуйста, разобраться. Мне нужны ga, gtag и gtm, все 3 в моем случае работают вместе Пожалуйста, помогите мне с этим, я застрял на этом довольно долгое время, нужно понять, как правильно это сделать.
Я искал в официальных документах partytown и читал различные блоги в Интернете, это все, что я получил.
oo очень интересно, вот мой совет: чтобы gtag и GTM заработали, вам нужно убедиться в следующем:
'<'script type="text/partytown" async defer fetchpriority="low" src="https://www.googletagmanager.com/gtag/js?id=${gtagId}"></script'>'
<script type = "text/partytown" async defer fetchpriority = "low" src = "https://www.googletagmanager.com/gtm.js?id=${gtmId}"></script>
<script type = "text/partytown"> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); </script>
Если вы выполнили все вышеперечисленные шаги правильно, но события по-прежнему не отправляются, попробуйте проверить вкладку сети в инструментах разработчика браузера, чтобы увидеть, не возвращаются ли какие-либо ошибки для запросов gtag или GTM. Если есть ошибки, исправьте их и повторите попытку.
моя конфигурация partytown выглядит нормально? есть ли какая-то переменная уровня окна, которую я пропустил при добавлении в прямой массив?
Я уже проверил все 4 пункта, упомянутых выше. Если я попробую это без partytown, все будет работать как положено. Ошибок консоли и ошибок во вкладке сети тоже нет.