Chrome和Safari中的Omniture链接跟踪

时间:2014-06-16 15:13:29

标签: javascript javascript-events adobe-analytics

我们最近升级到最新版本的Omniture代码AppMeasurement 1.2.3。我们尝试使用s.tl功能记录用户点击我们网站中不同链接的时间。不幸的是,我很难在Chrome上工作。

我们的链接有一个数据轨道属性,其中包含一个字符串,用于标识用户点击的链接类型:

<a href="latest-news.php" data-track="Latest News">Latest News</a>

然后我们有这个点击处理程序:

$('#pageBody')
    .off('click.omniture')
    .on('click.omniture', '[data-track]', function () {
        var track = this.getAttribute('data-track') || 'generic-link';
        OmnitureUtil.trackWidgetLink(track, this);
    });

调用这种处理Omniture调用的函数:

OmnitureUtil.trackWidgetLink : function(linkName, linkElement) {
    s = s_gi(s_account);
    s.tl(linkElement, 'e', linkName, null, 'navigate');
    return false;
},

&#39; trackWidgetLink&#39;在Chrome中调用,导航发生,但Charles代理客户端显示没有发出Omniture图像请求。因此,不会跟踪点击事件。这在Firefox中运行良好。我很清楚WebKit浏览器的问题,浏览器在JS有机会发送之前取消了图像请求。但那是supposedly fixed in H25,AFAIK我使用Omniture推荐的方法解决这个问题。

直接调用该方法在控制台中运行正常,它可以作为内联单击处理程序工作,例如

<a href="latest-news.php" data-track="Latest News" onclick="s.tl(this,'e','xxx',null,'navigate');return false">Latest News</a>

但我不愿意为我们所有的链接添加内联处理程序。有没有其他人在新的Omniture代码中遇到过这种问题?谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:0)

哎呀,我只需要从我的点击处理程序而不是trackWidgetLink返回false,所以:

   $('#pageBody')
    .off('click.omniture')
    .on('click.omniture', '[data-track]', function () {
        var track = this.getAttribute('data-track') || 'generic-link';
        OmnitureUtil.trackWidgetLink(track, this);
        return false;
    });

这允许代码在Chrome中运行。