我的一些谷歌分析事件在24小时后没有反映出来

时间:2012-09-21 10:40:52

标签: javascript jquery google-analytics

这是我的代码:

HTML部分:

<div class="subscribe">
  <a href="#' title="library_membership">Subscribe for a Month</a>
  <a href="#' title="library_membership">Subscribe for a Year</a>
</div>

Javascript:

$js('div.subscribe a').live('click', function(e) {
    var This =  $(this);
    e.preventDefault();
    if(This.html().indexOf("Month") != -1)
        _gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", This.attr( "title" )]);
    else 
        _gaq.push(["_trackEvent", "Subscriptions", "Clicked Year", This.attr( "title" )]);

});

我尝试了ga_debug.js来确认我的活动是否被推送到谷歌分析,他们确实出现在Chrome控制台上。

然而,即使在24小时之后,我点击“订阅一年”也没有出现在谷歌分析上。我点击“订阅一个月”已经出现了。任何人都可以帮助我为什么我没有得到谷歌分析的准确数据。

1 个答案:

答案 0 :(得分:2)

清理你的javascript / jquery,它应该有效:

$('div.subscribe a').live('click', function(e) {
    e.preventDefault();
    if ($(this).html().indexOf("Month") != -1) {
        alert("month");
    } else {
        alert("year");
    }

});​

当然,请将alerts替换为您的GA代码。

http://jsfiddle.net/8EJMK/

而且,自live is deprecated以来,您可以使用on

  
    

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。

  

取决于您使用的jquery版本:

$('div.subscribe a').on('click', function(e) {
    e.preventDefault();
    if ($(this).html().indexOf("Month") != -1) {
        alert("month");
    } else {
        alert("year");
    }

});​

http://jsfiddle.net/8EJMK/1/

您可能还想更改此内容:

_gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", This.attr( "title" )]);

对此:

_gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", $(this).attr( "title" )]);

This无效。应该是$(this)