Диспетчер тегов Google включает как устаревшие сценарии Analytics (GA), так и сценарии Universal Analytics (UA) - PullRequest
0 голосов
/ 29 мая 2018

Я улучшаю производительность и время загрузки нашего интернет-магазина, и мы используем Google Tag Manager на нем.Но скрипт, который включает в себя менеджер тегов Google, также загружает Google Analytics (устаревшие ga.js) и Universal Google Analytics (analytics.js) по умолчанию.Мне они оба не нужны, но если это необходимо, мне нужен только Universal Google Analytics.

Так почему же менеджер тегов Google включает оба сценария?

В качестве резюме кодирования это включение менеджера тегов:

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>

-

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

Google Tag Manager automatic inclusion

-

Если я проанализирую скрипт Google Tag Manager (gtm.js), я увижу следующее:

else if (!a) {
    var N = c["60"] ? ".google-analytics.com/u/ga_debug.js" : ".google-analytics.com/ga.js";
    a = !0;
    u(x("https://ssl", "http://www", N, r), O, c["66"])
}

И это:

if (!a) {
    var M = b["60"] ? "u/analytics_debug.js" : "analytics.js";
    b[""] && !b["60"] && (M = "internal/" + M);
    a = !0;
    bb(x("https:", "http:", "//www.google-analytics.com/" + M, d && d.forceSSL), function() {
        var a = $a();
        a && a.loaded ||
            b["66"]();
    }, b["66"])
}

-

Так что менеджер тегов Google включает в себя оба сценария.Я могу принять Universal Google Analytics, но устаревший ga.js сценарий, почему ??

Можно ли избежать включения обоих или только устаревших ga.js сценариев?

Спасибо.

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

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

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Насколько я проверял, моя лучшая гипотеза заключается в том, что он будет загружать ga.js только в том случае, если он нужен вашему контейнеру.

Единственный случай, который мне удалось найти, - это когда вы используете тег " Google Analytics classic " (самая старая версия) вместо " Universal Analytics " тег.

Я также пытался создать и использовать переменные dataLayer v1, но, похоже, для этого не требуется ga.js.

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

0 голосов
/ 03 июня 2018

GTM автоматически загружает ни один из этих сценариев.

Теги, которые вы определили в опубликованном контейнере, загружают соответствующий сценарий для запуска, если предыдущий запуск тега не загрузил его.

ДляНапример, первый тег загружает классический GA только при его запуске, а последний тег загружает UA при его запуске и при каждой загрузке страницы: enter image description here

Вы можете определить, какойиз ваших тегов фактически запускается, переводя ваш клиент в режим отладки предварительного просмотра, и если сценарий все еще озадачивает, вы можете экспортировать свой контейнер и просмотреть его определения (или пользовательский JS), чтобы найти теги, которые относятся к сценариям:

enter image description here

            "tagId": "7",
            "name": "classic track event",
            "type": "ga",

            "tagId": "1",
            "name": "page track",
            "type": "ua",
...