跟踪页面访问作为别名

时间:2011-08-16 21:00:47

标签: javascript google-analytics analytics

我一直在努力为此寻找解决方案,但没有看到任何有用的谷歌周围。问题可能在于我使用的术语具有其他含义。

我的网站对访客和会员使用了相同的网址。为了正确跟踪访问次数和目标,我需要一种方法来判断访问者是登录用户还是访客。

我能想到的最简单的方法是,如果我只是在我的网址前加上类似的东西 /构件/

我想也许我可以通过添加以下内容在Google跟踪代码中执行此操作:

_gaq.push(['_trackPageview'], '/member' + window.location.pathname);

完整的代码是:

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'xxxxxxxxxx']);
    _gaq.push(['_trackPageview'], '/member' + window.location.pathname);

    (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);
    })();
</script>

然而,这不起作用,也在阅读谷歌分析文档,这似乎是一种添加“额外”页面视图的方法。

我可以更新服务器代码,使用/ member /作为url的前缀,然后在处理控制器的路径之前将其删除,但我宁愿不冒险破坏即将上线的稳定系统。

有人知道在跟踪普通网址之前如何在JS中完成此操作吗?

谢谢, 丹

2 个答案:

答案 0 :(得分:3)

您的_trackPageview来电时出现轻微的语法错误。

应该是这样的:

_gaq.push(['_trackPageview', '/member' + window.location.pathname]);

请注意,/member+部分现在位于数组内,而不在数组之外。

您正在做的是传递_trackPageview函数名而不使用第二个参数作为其参数(默认情况下,它将页面视图跟踪为location.pathname+location.search,然后传递字符串/成员+窗口.location.pathname到数组,什么也没做。

将自定义URL作为数组中的第2项传递将使其正常工作。

答案 1 :(得分:1)

除了您可能不应在Google Analytics中使用相同的网址结构进行目标跟踪之外,我还可以提出几种方法来解决问题。请注意,这并未解决您提出的别名跟踪问题,但提供了一些替代方法。

<强> 1。将查询字符串参数附加到成员或来宾的目标页面

有点破解,但如果您的用户没有登录,那么添加?guest=true参数应该是微不足道的。这将是一个小的改动,不应该影响您的业务逻辑或网站操作。

然后,您可以在GA中设置不同的目标,以查找包含或不包含URL参数的成功页面。

<强> 2。在Google Analytics中为成员和访客设置自定义变量

这是更正确的解决方案。

  

使用会话级自定义变量来区分不同会话的访问者体验。   例如,如果您的网站为用户提供登录功能,则可以使用作用于会话级别的自定义变量来获取用户登录状态。通过这种方式,您可以对登录成员与匿名访问者的访问进行细分。

然后,您可以使用高级细分细分您的目标开始和完成情况,细分用户登录状态: