7

当用户单击某种类型的链接时,我试图在 MixPanel 中记录一个事件。我正在使用 JQuery 不显眼地做到这一点,据我所知,我需要添加一个回调函数,以便在记录事件后将用户带到 URL。

这是我正在使用的代码:

<script type="text/javascript">
    $("#more-posts").click(function() {
        event.preventDefault();
            mpq.track("More Posts", function(){
                window.location = $(this).attr("href");
            });
    });
</script> 

不幸的是,这既不会将用户带到页面也不会记录事件,但我在 Chrome 的 Javascript 控制台中没有看到任何错误。

任何想法可能是什么问题?

更新:还根据评论中的建议尝试了此代码:

<script type="text/javascript">
    function go_to_link(link) {
        window.location = link;
    } 
    $("#more-posts").on("click", function(event) {
            event.preventDefault();
            mpq.track("More Posts");
            setTimeout("go_to_link($("#more-posts").attr("href"))", 2000);
    });

</script> 

它现在重定向到正确的链接,但仍然不记录事件。

4

5 回答 5

11

Mixpanel 最近添加了一个方法mixpanel.track_links来完成这项工作。

于 2012-04-05T12:42:26.767 回答
3

mpq.track 函数的第三个参数是回调。一旦跟踪完成,此代码就会被执行,并且是一种将用户发送到其他页面的可靠方式。

$("#more-posts").on("click", function(event) {
        event.preventDefault();
        mpq.track("More Posts", null, function() {
            go_to_link($("#more-posts").attr("href"))
        });
});
于 2012-01-12T19:58:05.613 回答
2

我相信这是 MixPanel 支持的候选人:support@mixpanel.com。该错误不在于您的 jQuery 代码。这是一个演示基本功能的工作 jsFiddle

正如我所提到的,我在_kmq.pushKissmetrics 中看到过类似的问题。他们的 JS 可能根本没有时间注册事件。如果您尝试更长的超时时间,它可能会起作用,但这是糟糕的 UX

如果/当您联系 MixPanel 时,请在此处更新。

于 2011-12-28T16:33:37.360 回答
1

考虑使用mpq.track的回调参数,而不是使用 setTimeout 。

或者,在链接到达的位置跟踪页面加载。

于 2011-12-29T22:40:32.183 回答
0

最简单的方法是使用 mixpanel.track 中的函数回调,它会在事件成功记录后触发。

代码看起来像这样。

mixpanel.track("Great Success!", {}, function(){
  window.location.href = "www.whatever.com";
});
于 2013-07-04T22:05:18.413 回答