我有一个事件跟踪器(位于main.js而不是内联点击处理程序),当用户点击具有特定类的项目时,该事件跟踪器应该触发。但是,我的客户报告说这些事件跟踪器从未触发,或者至少他从未看到过它们的响应。但是,整个网站上的其他GA事件跟踪器正在运行。任何人都可以看到下面我的代码有任何问题可能导致此问题吗?
main.js中处理此问题的js函数如下所示:
$('.vote.complete').click(function()
{
whence = "toCompleted";
vote_id = $(this).data('vote_id');
cid = $(this).data('campaign_id');
c_title = $('#outfitPair'+cid).data('campaign_title');
u_id = $('#outfitPair'+cid).data('other_id');
_gaq = window._gaq;
if(_gaq != undefined){
_gaq.push(['_trackEvent', 'ViewPreviousVote', c_title, u_id]);
}
$('#outfitPair'+cid).find('.button.vote').removeClass('to-vote');
$(this).addClass('to-vote');
$.get('/campaigns/new_pair?whence='+whence+'&vote_id='+vote_id)
return false;
});
点击内容的html如下所示:
<a href="#" class="button vote complete" data-vote_id="9490" data-campaign_id="5">
<span>01</span>
</a>
我的布局标题中的脚本:
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_setDomainName', 'mywebsite.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);
})();
window._gaq = _gaq;
</script>
GA调试器在加载网页时在我的js控制台中返回此内容,但是当我尝试触发事件跟踪器时没有出现任何新内容:
Registered new plugin: "linker" analytics_debug.js:5
Creating new tracker: t0 analytics_debug.js:5
Sent beacon:
v=1&_v=j11d&a=XXXXXXXXX&t=pageview&_s=1&dl=http%3A%2F%2Fapp.website.com%2Fcampaigns%2Fvote&dr=&ul=en-us&de=UTF-8&dt=Website&sd=32-bit&sr=1366x768&vp=1349x667&je=1&fl=11.8%20r800&_u=MAC~&cid=XX.XX&tid=UA-XXXXXXX-X&z=812880404
analytics_debug.js:5
adSenseId (&a): XXXXXXXXXX analytics_debug.js:5
apiVersion (&v): 1 analytics_debug.js:5
clientId (&cid): XXX.XXX analytics_debug.js:5
encoding (&de): UTF-8 analytics_debug.js:5
flashVersion (&fl): 11.8 r800 analytics_debug.js:5
hitType (&t): pageview analytics_debug.js:5
javaEnabled (&je): 1 analytics_debug.js:5
language (&ul): en-us analytics_debug.js:5
location (&dl): http://app.website.com analytics_debug.js:5
referrer (&dr): analytics_debug.js:5
screenColors (&sd): 32-bit analytics_debug.js:5
screenResolution (&sr): 1366x768 analytics_debug.js:5
title (&dt): Website analytics_debug.js:5
trackingId (&tid): UA-XXXXXXXX-X analytics_debug.js:5
viewportSize (&vp): 1349x667 analytics_debug.js:5
答案 0 :(得分:0)
other_id
分配给u_id
的数字是多少? jQuery .data()
将尝试转换为Javascript值,如果_trackEvent
参数是整数,opt_label
可能会无提示失败。
您可以使用.attr()
获取属性值而无需转换。尝试:
u_id = $('#outfitPair'+cid).attr('data-other_id');
答案 1 :(得分:0)
我知道这是一个老问题,但根据您的调试器输出,看起来有些东西需要新的“Universal Analytics”跟踪代码。我可以告诉,因为调试器输出显示“analytics_debug.js”而不是“ga_debug.js”。
您在标头中提供的脚本使用的是旧的异步语法。也许您在Google Analytics中创建了一个属性,并选择了Universal Analytics而不是Classic。如果是这样,您应该尝试升级到新代码:
<!-- Google 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-XXXX-Y');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
https://developers.google.com/analytics/devguides/collection/analyticsjs/
然后您的活动代码为ga('send', 'event', category, action, label, value);