注入javascript时trackEvent不会登录

时间:2013-08-28 16:02:45

标签: javascript html google-analytics

我正在尝试在我的“轮播广告”中实施跟踪广告,但点击不会在Google Analytics中计算。

我正在使用javascript数组来存放我的链接,图片和trackevent标签。

我在div中调用脚本并在同一个DIV中插入我的锚点和图像。

这是我的剧本:

for (var i=0; i < imgArr.length; i++) {
 strCreateLink = "<a href='" + imgArr[position][1] + "' target='_blank' onclick='_gaq.push(['_trackEvent', 'AdClick', 'Click', '"+ imgArr[position][2] + "']);return false;'><img src='" + imgArr[position][0] + "' /></a>";}
 document.getElementById(ele).innerHTML = strCreateLink;

当我静态地将元素放在页面上时,它可以正常工作。我也试过将onclick放在IMG上。

为什么Google没有计算这些点击次数的任何想法?

谢谢!

3 个答案:

答案 0 :(得分:1)

在这种情况下,您只需要使用引号修复语法错误:

 onclick='_gaq.push([\"_trackEvent\", \"AdClick\", \"Click\", \""+ imgArr[position][2] + "\"]);return false;'

答案 1 :(得分:0)

这适用于新的Google Analytics配置文件吗?如果是,您使用的是Universal Analytics(analytics.js)还是旧版ga.js?

如果您使用的是Universal Analytics,请确保使用正确的功能,因为它相对较新。网上的大多数GA文档都适用于ga.js.

答案 2 :(得分:0)

我之前遇到过这个挑战。您需要确保分析有机会在链接上的单击的默认功能将浏览器带到新页面之前发送信标。我解决它的方法是创建一个函数来处理发送事件信标的出站链接,并延迟前进到点击的href 100ms。您可能希望将其重命名为更适合您的用例。

function trackOutboundLink(link, category, action, label) {
    try {
        _gaq.push(['_trackEvent', category , action, label]);
    } catch(err){}

    setTimeout(function() {
        document.location.href = link.href;
    }, 100);
}

要调用此方法onclick,您必须记住返回false。这是一个例子:

<a href="http://www.google.com/"
   onclick="trackOutboundLink(this,
   'Outbound Links', 'google.com',
   'Google Outbound'); return false;">outbound link</a>

如果没有return false;,浏览器会立即关注href。或者,您可以使用onclick捕获事件对象以调用event.preventDefault(),这将产生相同的效果(并且可能更优雅......)。