Я вызываю страницу на моем веб-сайте, используя AJAX, но по какой-то причине Google Analytics не регистрирует посещение страницы. Нужно ли что-то делать, чтобы заставить его регистрировать страницы, запускаемые AJAX?
Я использую последний универсальный код аналитики следующим образом:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-1', 'mywebsite.ext');
ga('send', 'pageview');
</script>
Я использую JQuery AJAX-вызов к странице, содержащей приведенный выше фрагмент, следующим образом:
<script>
//<![CDATA[
$(document).ready(function(){
$.ajax({
url : "http://www.mywebsite.ext",
type: "GET",
async: false,
data : { fromajax : "y" },
success: function(data, textStatus, jqXHR)
{
// alert("success - Data: " + data + "\ntextStatus: " + textStatus);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert("error \ntextStatus: " + textStatus + "\nerrorThrown: " + errorThrown + "\njqXHR: " + jqXHR);
}
});
});
//]]>
Я уверен, что страница вызывается, так как у меня есть некоторые записи в журнале записи в базу данных. Я также знаю, что код Google Analytics работает, так как я тестирую его, используя обзор в реальном времени.
Итак, подведем итог: у меня есть страница, которая вызывает http://www.mywebsite.ext с использованием AJAX, а страница назначения (http://www.mywebsite.ext) содержит код Universal Analytics, который не отображается для отслеживания страницы. Если вы посещаете страницу в обычном режиме из вашего браузера, страница отслеживается нормально.
С тех пор из потока я обнаружил, что могу вызывать функцию "ga" с виртуальной папкой. Поэтому я покончил с вызовом AJAX и вместо этого изменил Universal Analytics следующим образом:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-1', 'mywebsite.ext');
ga('send', 'pageview', '/localfolder/page');
ga('send', 'pageview');
</script>
У меня сейчас проблема в том, что он вызывает ga ('send', 'pageview', '/localfolder/page'); но не ga ("отправить", "просмотр страницы");
Но я понимаю, что между событиями существует минимальный интервал: отслеживание событий в Google Analytics - минимальный интервал между событиями
Поэтому я добавил setTimeout (function() {}, 2000); между событиями и последним событием до сих пор не вызывается. Я даже пошел до 9 секунд.