mixpanel track_links没有正确跟踪

时间:2012-04-18 22:42:08

标签: jquery mixpanel

我正在使用mixpanel的javascript api:

之类的代码
$(function() {
mixpanel.track_links("a[href~='/posts/more']", "Show more posts.",
      { "topic_id": "<%= @topic.id.to_guid %>" });
});

它似乎不起作用。我试过没有单引号的变种无济于事。

$(function() {
    mixpanel.track_links("a[href~=/posts/more]", "Show more posts.",
          { "topic_id": "<%= @topic.id.to_guid %>" });
});

以上代码有问题吗?

页面上显示以下链接:

<a href="/posts/more?i=20&id=0a5cb302-859e-11e1-8851-24c603d12b60&type=Topic" data-remote="true">Show More...</a>

当我点击它时,不会触发任何事件。

3 个答案:

答案 0 :(得分:5)

我认为您可能遇到的原因是mixpanel轻量级选择器引擎不支持更丰富的选择器,例如a[href~=/posts/more]

从一些快速测试中我认为只有类,id和元素可以工作。

我已经通过电子邮件向他们发送过关于此的信息,例如我真的需要能够将jQuery对象作为选择器传递,但是现在根本不可能。 (以前显然有支持,也许它会回来)。

如果您在临时修复之后添加一个类,然后将其传递给track_links函数,但我知道,这远非理想。

答案 1 :(得分:2)

Matt Vagni是正确的,Mixpanel JS库包含了自己的基本CSS选择器引擎的实现,这个引擎非常有限。

您可能无法进行属性选择,或者至少不能进行子串匹配属性选择,而且我从调试自己的问题中知道了子选择器和类(例如&#34; p a.foo&#34;)不起作用。

更好的方法是使用jQuery(或者您已经在页面上拥有的任何内容,Rails将为您提供jqlite)来监视您感兴趣的点击并手动跟踪Mixpanel事件。 / p>

$('body').on('click', 'a[href~=/posts/more]', function() { 
    mixpanel.track("Show more posts.", { "topic_id": "<%= @topic.id.to_guid %>" });
});

答案 2 :(得分:0)

Mixpanel(和Google Analytics)使用AJAX调用将事件发送到他们的服务器,您不仅可以在AJAX调用正在进行时重定向页面,也可以取消它。信息根本不会到达他们的服务器,并且不会跟踪事件。

Mixpanel建议您在重定向之前添加一个小超时,以便完成AJAX调用。

我找到了一种使用Cookie但没有添加超时的解决方法,但它不能实时工作。您可以在以下链接http://tech.matchfwd.com/tag/mixpanel/中查看。

更新:我刚在Mixpanel官方文档中发现方法track_links将为您完成此操作。它会在执行重定向之前等待300毫秒。

https://mixpanel.com/docs/integration-libraries/javascript-full-api#track_links