通过AJAX加载时,Google Analytics pageTracker功能无效

时间:2009-10-24 23:05:25

标签: javascript ajax google-analytics

我刚刚发布了这篇文章,并且已经做了更多研究并提出了问题,但我仍然没有解决方案......

我有一个网站(www.seatgeek.com),其中有很多链接通过AJAX加载。当用户点击其中一个链接时,我想将其视为目标,因此我尝试将pageTracker._trackPageview()附加到链接的onClick属性。但GA没有记录这些点击,我不知道为什么。以下是其中一个链接的代码:

<a href="<?php echo $tickets[$x][3] ?>" target = "_blank" class="buyTicketsLink" onClick="pageTracker._trackPageview('/outgoing/event4.php');">BUY TICKETS</a>

我已经在没有通过AJAX加载链接的情况下尝试了上面的代码并且它工作正常,所以它肯定是AJAX特有的问题。此外,在我尝试解决此问题时,我还尝试以编程方式添加onclick事件,例如:

<script>
function attach_goal_tracking() {
var links = document.getElementsByClassName("buyTicketsLink");
for(var i=0; i<links.length; i++) {
links[i].onclick = record_goal;
}
}

function record_goal() {
pageTracker._trackPageview('/event/outgoing');
}
</script>

这也不起作用。但是当我向record_goal()函数添加一个测试警告框时,很明显该函数正在运行。例如,如果我将函数更改为:

function record_goal() {
alert('Hello');
pageTracker._trackPageview('/event/outgoing');
}

然后单击链接时会显示“Hello”警告框。但是,“/ event / outgoing”的综合浏览量仍未记录。

我对可能造成这种情况的原因感到困惑。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您使用的是Prototype等JavaScript库吗? document.getElementsByClassName不是标准的JavaScript DOM方法。

您是否收到任何JavaScript错误?例如。打开Firebug或Firefox错误控制台。

在Firebug中,如果您在控制台中输入pageTracker;,它是否会告诉您pageTracker绝对是一个功能,而不是undefined

答案 1 :(得分:1)

尝试在trackPageView()调用后添加“return false”,所以......

onClick="pageTracker._trackPageview('/outgoing/event4.php'); return false">

我们的分析代表向我推荐了它,它就像一个魅力。 “返回虚假”通常会说,“嘿,不要注意href”(我想,无论如何),但我的实现工作得很好。

希望这有帮助!

答案 2 :(得分:1)

如果您仍在使用加载Google Analytics的异步方法,则以下代码段将完成相同的任务:

_gaq.push(['_trackPageview', '/anything']);

或(@Lauren代码)

onClick="_gaq.push(['_trackPageview', '/outgoing/event4.php']); return false">