簡體   English   中英

如何在用戶單擊鏈接時記錄MixPanel事件?

[英]How do I log a MixPanel event when a user clicks a link?

當用戶單擊某種類型的鏈接時,我正在嘗試在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> 

它現在重定向到正確的鏈接,但仍然不記錄事件。

Mixpanel最近添加了一個方法mixpanel.track_links來完成這項工作。

mpq.track函數的第三個參數是回調。 一旦跟蹤完成,該代碼就會被執行,並且是將用戶發送到另一頁的可靠方式。

$("#more-posts").on("click", function(event) {
        event.preventDefault();
        mpq.track("More Posts", null, function() {
            go_to_link($("#more-posts").attr("href"))
        });
});

我相信這是MixPanel支持的候選人:support@mixpanel.com。 該錯誤不在於您的jQuery代碼。 這是一個工作的jsFiddle ,演示了基本功能。

正如我所提到的,我已經看到了與Kissmetrics的_kmq.push類似的問題。 他們的JS可能沒有時間注冊該事件。 如果你嘗試更長的超時,它可能會工作,但這是糟糕的用戶體驗

如果/當您聯系MixPanel時,請在此處更新。

而不是使用setTimeout,請考慮使用mpq.track的回調參數。

或者,跟蹤鏈接所在位置的頁面加載。

最簡單的方法是使用mixpanel.track中的函數回調函數,該函數在成功記錄事件后觸發。

代碼看起來像這樣。

mixpanel.track("Great Success!", {}, function(){
  window.location.href = "www.whatever.com";
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM