use*_*927 17 ajax jquery google-analytics
我使用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>
Run Code Online (Sandbox Code Playgroud)
我正在对包含上述代码段的页面使用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);
}
});
});
//]]>
Run Code Online (Sandbox Code Playgroud)
我确定正在调用页面,因为我有一些日志语句写入数据库.我也知道Google Analytics代码正在运行,因为我正在使用实时概述进行测试.
总而言之,我有一个页面使用AJAX 调用http://www.mywebsite.ext,目标页面(http://www.mywebsite.ext)包含一些看起来不跟踪页面的通用分析代码.如果您通常从浏览器访问该页面,则可以很好地跟踪该页面.
我从线程中发现我可以用虚拟文件夹调用"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>
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是它调用ga('send','pageview','/ localfolder/page'); 但不是ga('send','pageview');
但我了解事件之间的最小间隔时间: Google Analytics事件跟踪 - 事件之间的最小间隔
因此我添加了一个setTimeout(function(){},2000); 事件和最后一个事件之间仍未调用.我甚至跑了9秒钟.
Gla*_*ulz 20
加载Google Analytics 的旧标准是异步方法:
var _gaq=[["_setAccount","UA-#######-#"],["_trackPageview"]];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";
s.parentNode.insertBefore(g,s)}(document,"script"));
Run Code Online (Sandbox Code Playgroud)
该位跟踪初始页面加载但不跟踪后续的AJAX调用.每当您想要跟踪页面加载时,请添加以下代码段:
// "_trackEvent" is the pageview event,
_gaq.push(['_trackPageview', '/some-page']);
Run Code Online (Sandbox Code Playgroud)
再次使用_trackPageview,但这次我们提供了加载的AJAX地址的URL.使用上面的小型JavaScript代码段,您可以像重新加载整个页面一样跟踪浏览量.我建议将此代码段与MooTools的历史插件一起使用.
结合Ajax,您的代码应该与此类似:
jQuery(document).ajaxComplete(function(e, xhr, settings){
var d = document.location.pathname + document.location.search + document.location.hash;
_gaq.push(['_trackPageview', d]);
});
Run Code Online (Sandbox Code Playgroud)
如果要使用Universal Analytics Code,则虚拟页面加载的语法会有所不同.
这是在UA中跟踪虚拟网页浏览的语法:
ga(‘send’, ‘pageview’, ‘path to your virtual page’);
Run Code Online (Sandbox Code Playgroud)
例子:
<a href=”http://www.example.com/gu/dw/seo-beginners-guide.pdf” onClick=”ga(‘send’, ‘pageview’, ‘/virtual/guides/download/seo-beginners-guide.pdf’);”> Download SEO Beginners Guide</a>
Run Code Online (Sandbox Code Playgroud)
因此,当用户点击"下载SEO初学者指南"链接时,UA将生成一个名为"/virtual/guides/download/seo-beginners-guide.pdf"的虚拟网页浏览.
资料来源:
http ://davidwalsh.name/ajax-analytics
/sf/answers/543379161/
http://www.optimizesmart.com/event-tracking-guide-google-analytics-simplified-version/
| 归档时间: |
|
| 查看次数: |
23896 次 |
| 最近记录: |