[英]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.