Можно ли поместить код 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 (да, я знаю, мне не нужно рассказывать)
Ответы
Ответ 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 на идентификатор вашей учетной записи.