在Mixpanel中的PHP库和JS库之间工作

时间:2016-02-11 08:56:06

标签: javascript php mixpanel

我是Mixpanel的新手,目前想知道我如何在Mixpanel的JS库和PHP库之间工作。

假设我有以下(简单)JS脚本:

// Placed on homepage
<script type="text/javascript">
  mixpanel.track("viewed homepage");
</script>

// Placed on category page
<script type="text/javascript">
  mixpanel.track("viewed category page");
</script>

// Placed on product page
<script type="text/javascript">
  mixpanel.track("viewed product page");
</script>

所以当John Doe(jdoe@example.com)访问我的网站http://example.com时,他首先登陆主页,然后导航到类别页面并浏览一些产品(john可能会来回浏览)类别页面和产品页面。)

据我所知,John将从Mixpanel(例如123123)获得一些随机ID(不同的ID)。

我也有这个PHP代码:

$mp->identify("jdoe@example.com");

$mp->people->set(XYZ, array(
    '$first_name'       => "John",
    '$last_name'        => "Doe",
    '$email'            => "john.doe@example.com",
    '$phone'            => "5555555555"
));

$mp->people->increment(XYZ, "login count", 1);

根据此处的Mixpanel文档https://mixpanel.com/help/reference/php

“XYZ”应该是Mixpanel的不同ID,在这种情况下我们的John Doe设置为123123。

所以问题是,我怎么知道Mixpanel使用PHP库为John Doe设置的指定的不同id,知道他之前已被分配了一个不同的id(通过JS库)?

我还注意到,在使用Mixpanel的PHP库时,与使用JS库相比,它不会自动分配随机生成的不同ID(参见图片了解详情):

Mixpanel

编辑1

所以我在文档上找到了这段代码:

// set distinct_id after the mixpanel library has loaded
mixpanel.init("YOUR PROJECT TOKEN", {
    loaded: function() {
        distinct_id = mixpanel.get_distinct_id();
    }
});

基本上可以检索Mixpanel设置的distinct_id,并想知道是否可以通过PHP检索distinct_id(可能是distinct_id存储在cookie中)。

2 个答案:

答案 0 :(得分:1)

如果您只在用户配置文件中设置名称,姓氏,电子邮件和其他“简单”信息,则可以在JavaScript中执行此操作,从PHP导入数据,而无需混合使用PHP和JS Mixpanel Apis。 您还应该为用户设置一个ID,该ID与数据库中的ID相同,以确保您可以在任何会话/设备中识别用户。

类似的东西:

        mixpanel.identify("41");
        mixpanel.people.set({
            "$first_name": "Name",
            "$last_name": "Surname",
            "$email": "Mail@gmail.com",
            "$last_login": "2016-02-11 09:00:08",
        });

答案 1 :(得分:0)

只需对两个库使用相同的会话ID

正如docs所说:

  

如果您不选择自己管理distinct_id,则每次用户在新浏览器中,新计算机上显示或清除其Cookie时,它们都会显示为新的唯一身份用户。

它与会话结构类似,所以我决定重用它,使用Laravel我为JS库编写了以下内容:

mixpanel.identify("{{ session()->getId() }}");
mixpanel.track('Some event');

这适用于PHP库:

$mp->identify(session()->getId());
$mp->track('Another event');

这对我来说非常好。