【发布时间】:2014-06-13 06:30:51
【问题描述】:
我正在使用 AJAX 调用我网站上的一个页面,但由于某种原因 Google Analytics 没有记录该页面访问。我必须做些什么来强制它注册 AJAX 触发的页面吗?
我正在使用最新的 Universal anaytics 代码如下:
<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>
我正在对包含上述 sn-p 的页面使用 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);
}
});
});
//]]>
我确定正在调用该页面,因为我有一些日志记录语句正在写入数据库。我也知道 Analytics 代码正在运行,因为我正在使用实时概览对其进行测试。
总而言之,我有一个使用 AJAX 调用 http://www.mywebsite.ext 的页面,并且目标页面 (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('send', 'pageview');
但我知道事件之间有一个最小间隔: Google Analytics Event Tracking - Minimal Interval between the events
因此我添加了一个 setTimeout(function(){},2000);在事件和最后一个事件之间仍然没有被调用。我什至达到了 9 秒。
【问题讨论】:
-
据我记得,您需要在 GA 中创建一个自定义事件,然后在您的 ajax 调用中将该事件推送到 GA 的消息队列中。
标签: jquery ajax google-analytics