2

我一直在使用以下代码来识别 Mixpanel 的新用户:

    var mixpanelTries = 0;
    function handleMixpanelUser() {
        if ((window.mixpanel) && (window.mixpanel.alias)) {
            if ("@Auth.UserID" !== "0") {
                if ("@SessionWrapper.UserInitialized" === "False") {
                    try { mixpanel.alias("@Auth.UserID"); } catch (exception) {console.log("exception"); }
                    mixpanel.identify("@Auth.UserID");
                    mixpanel.people.set({
                        "$email": "@Auth.UserEmail",    // only special properties need the $
                        "$created": "@SessionWrapper.UserCreated",
                        "name": "@Auth.FullName"
                    }, function (resp) { });
                    var url = "http://" + "@Config.BaseUrl" + "/finalizeuser/" + "@Auth.UserID";
                    $.ajax({
                        type: 'POST',
                        url: url,
                        async: false
                    });
                }
                else {
                    mixpanel.identify("@Auth.UserID");
                }
            }
        }
        else {
            if (mixpanelTries < 5) {
                mixpanelTries++;
                setTimeout(handleMixpanelUser, 100);
            }
        }
    }

    $(function () {
        handleMixpanelUser();
    });

这段代码是在 2012 年 12 月编写的,运行良好。但是,自 1 月 1 日起,此代码不起作用,它不会崩溃,但不会在 Mixpanel 中创建新用户。代码没有变化。为什么我的代码在 2012 年很好,在 2013 年很糟糕?

我需要更改设置吗?

提前感谢您的帮助。

4

1 回答 1

2

我发现了问题:我的代码一直在工作,但我没有意识到,因为 Mixpanel UI 有一个很大的排序错误。如果我按创建时间降序对记录进行排序,则显示的第一个记录是在 12 月 31 日创建的。

但是,如果我按 Last Seen 对记录进行排序,它会显示几分钟前创建的用户。

这是一个排序错误。我相信当我们对日期进行排序时,Mixpanel 的日期排序会按字母顺序排序。

“2012 年 12 月 31 日”>“2013 年 1 月 7 日”

因此,2013 年 12 月 31 日的人比 2013 年 1 月 1 日的人“更新”。我将向 Mixpanel 发送电子邮件以通知他们该问题。

于 2013-01-07T09:15:06.043 回答