squ*_*ime 31 jquery events google-analytics analytics.js
我有一个网站,我正在使用新的Universal Analytics(analytics.js)进行跟踪.使用以下代码片段设置和工作(网页浏览,推介等):
<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-39570713-1', 'site.com');
ga('send', 'pageview');
</script>
Run Code Online (Sandbox Code Playgroud)
它位于</head>标签之前.
我正在使用JQuery来发起一个事件.我用一条警告消息测试了JQuery并且它被调用了,所以这不是问题所在.以下是单击按钮时触发的代码段:
$('#submitButton').on('click', function() {
ga('send', 'event', 'button', 'click', 'contact form');
});
Run Code Online (Sandbox Code Playgroud)
Google Analytics的"事件"部分中没有任何内容.我一直点击按钮,即使是从不同的计算机,只是为了确保它不排除我的IP地址.由于Google提供的Google Analytics(分析)文档并未提供大量解释,因此我不知所措.
San*_*mja 109
如果您使用的是Google跟踪代码管理器,并且还想通过代码触发某些事件,ga('send'...)那么这似乎还不够.您需要先获取适当的分析对象:
if ("ga" in window) {
tracker = ga.getAll()[0];
if (tracker)
tracker.send("event", "Test", "Test GA");
}
Run Code Online (Sandbox Code Playgroud)
请注意,这假设您在网站上仅使用一个Google Analytics跟踪代码.如果您碰巧使用多个,则可能需要按名称或索引获取适当的一个.
小智 8
对于这一刻的 GA ......在 SPA 中发送一个新页面对我来说最终看起来像这样:
if (window.ga){
window.ga.getAll()[0].set('page', location);
window.ga.getAll()[0].send('pageview')
}
Run Code Online (Sandbox Code Playgroud)
这准确地显示了 GA 报告中想要的内容,例如点击了新页面,标题和所有内容都是正确的。
小智 7
出于测试目的,您还可以使用hitCallback方法:
ga('send', {
'hitType': 'event',
'eventCategory': 'button',
'eventAction': 'click',
'eventLabel': 'contact form',
'hitCallback' : function () {
alert("Event received");
}
});
Run Code Online (Sandbox Code Playgroud)
更新:逗号丢失.
小智 5
新版本的分析具有新的语法。替换下面的行;
ga('send', 'event', 'button', 'click', 'contact form');
Run Code Online (Sandbox Code Playgroud)
有了这个;
gtag('event', 'click', {'event_category' : 'button',
'event_label' : 'contact form'});
Run Code Online (Sandbox Code Playgroud)
参考; https://developers.google.com/analytics/devguides/collection/gtagjs/events
squ*_*ime -2
我解决问题的唯一方法是回滚到以前版本的 Analytics(非测试版):
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-39570713-2']);
_gaq.push(['_setDomainName', 'optimino.com']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Run Code Online (Sandbox Code Playgroud)