Подтвердить что ты не робот

Можно ли поместить код Google Analytics во внешний JS файл?

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try 
{
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1");
    pageTracker._trackPageview();
}
catch(err) {}

Можно ли вызвать этот script из внешнего JS файла? Я хотел что-то вроде:

<script type="text/javascript" src="googleanalytics.js" ></script>

и поместите одну из них на каждую из моих HTML-страниц.
Код, который у меня выше, будет внутри googleanalytics.js
Инструкции Google заключались в том, чтобы поместить код на каждую страницу. Проблема заключается в том, что сложнее изменить код отслеживания. (Мы используем разные коды отслеживания для наших страниц DEV и PROD).
Я пробовал, и, похоже, он не работает.
Что-то не так с этим? Или есть что-то еще, вызывающее проблему?

Важно FYI Обратите внимание, что мы используем браузеры IE6 и 8 (да, я знаю, мне не нужно рассказывать)

4b9b3361

Ответ 1

Да, это возможно. Если он не работает, происходит что-то еще.

Просто мысль, Google Analytics, как правило, около дня в отчетности, поэтому, когда вы вносите изменения, потребуется некоторое время, прежде чем вы знаете, что он работает. То, что мне нравится делать, - это нажать страницу, которая не получает трафика очень часто, чтобы заверить меня, что я правильно настроил отслеживание.

Кроме того, вы можете попытаться сделать ссылку абсолютной ссылкой в ​​теге <script. Это может просто выглядеть неправильно в аналитическом коде.

Ответ 2

Не можете ли вы использовать свой серверный язык для вывода кода внизу каждой страницы? Имейте функцию, такую ​​как output_ga() и вызывайте это. Таким образом, вы можете изменить его в одном месте.

Ответ 3

Я столкнулся с этим сообщением, пытаясь решить подобную проблему. После дальнейшего поиска я наткнулся на другую должность, которая работала для меня:

Использование асинхронного кода Google Analytics из внешнего JS файла

Мне пришлось переместить var _gaq за пределы функции, в которой она была, чтобы она стала глобальной.

Надеюсь, это поможет!

Ответ 4

Это будет работать, если вы разделите script на 2 сценария так же, как Google Analytics разделил традиционный script на 2 script теги.

Ответ 5

у меня есть простой способ сделать это... Так как аналитический JS является асинхронным, это не доставит никаких проблем...

включите приведенный ниже код в любой файл js (обратите внимание: код, который я использовал, - это новый код аналитики, предоставленный Google Analytics)

var imported = document.createElement('script');
imported.src = 'https://www.googletagmanager.com/gtag/js?id=UA-12xxxxxxx-1';
document.head.appendChild(imported);


window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-12xxxxxxx-1');

Ответ 6

Оберните код google в функцию и выполните на каждой странице;)

Ответ 7

@Nikko

Одна из возможных причин заключается в том, что учетная запись GA была создана с использованием старой аналитики. Поэтому вы должны использовать традиционный аналитический код ga.js(_gaq.push). Я нашел несовместимость в использовании новой analytics.js с традиционной учетной записью GA на веб-сайте GA. Хиты не появятся, поэтому я был вынужден использовать традиционные ga.js.

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

//traditional way
_gaq.push(['_set', 'hitCallback', function() {
  console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl);
}]);

//new analytics way
ga('send', 'pageview', {
            'page': pageviewUrl,
            'hitCallback': function() {
                console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl);
            }
        });

где pageviewUrl = URL-адрес сайта

Надеюсь, что это поможет!

Ответ 8

Загрузить Google Analytics динамически:

function loadGoogleAnalytics(){
    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; 
    ga.async = true;
    ga.src = 'https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-XX';

    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
}

loadGoogleAnalytics(); //Create the script  

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-XXXXXX-XX');

Не забудьте заменить XXXXXX-XX на идентификатор вашей учетной записи.