2010-05-01 1 views
1

Я реализовал вызов XMLHttpRequest() на автономной странице html, в которой есть только тег тела html, title &, который содержит код отслеживания Google Analytics.Отслеживание XMLHttpRequest() и Google Analytics

Я хочу отслеживать, когда кто-то делает запрос на отображение информации (то есть номер телефона), чтобы попытаться понять, какая часть людей смотрит на мой каталог, а не на получение номера телефона для совершения звонка.

Это очень простой код:

var xhReq = new XMLHttpRequest(); 
xhReq.open("GET", "/registerPhoneClick.htm?id=" + id, false); 
xhReq.send(null); 
var serverResponse = xhReq.responseText 

Но я не могу видеть «хит» в Analytics ... Кто-нибудь имел этот вопрос? Все отслеживающий код делает вызов:

<script type="text/javascript"> 
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")); 
</script> 
<script type="text/javascript"> 
try { 
var pageTracker = _gat._getTracker("UA-XXXXXXX"); 
pageTracker._trackPageview(); 
} catch(err) {}</script> 

Так реалистичен, мой XMLHttpRequest() вызывает файл HTM, в течение которого скрипт выполнить, чтобы сделать исходящий вызов Google Analytics.

Есть ли причина, по которой XmlHTTPRequest() не выполнил бы это?

Выполняет ли XmlHTTPRequest() код перед клиентом перед его выполнением?

Помощь Пожалуйста

ответ

3

Для тех, у кого есть аналогичные проблемы, очевидно, аналитика не будет отслеживать XMLHttpRequest(), чтобы обойти его, я нашел этот пост: Tracking API: Basic Configuration, в котором объясняется, как просто регистрировать просмотр страницы с помощью javascript.

Я просто добавил следующий код на JavaScrip:

var pageTracker = _gat._getTracker("UA-XXXXX-XXX"); 
pageTracker._trackPageview("/home/landingPage"); 

Гораздо чище, легче и проще, чем я первоначально пытался сделать ...

3

запрашивающая файл не означает, что он автоматически выполняется. Вы просто возвращаете содержимое файла в виде строки.

Для кода, который должен быть выполнен, его необходимо будет загрузить как страницу в браузере. Вы можете, например, использовать iframe для его загрузки.

+0

Так вы говорите, что XMLHttpRequest не выполнить код? – sjw

+0

@sjw: Точно. Кроме того, если это произойдет, запрос на этот код не будет работать. Вы можете использовать document.write только во время загрузки страницы или вместо нее вместо нее будет заменена текущая страница. – Guffa