Python

API集成

Mixpanel Python库旨在用于脚本,或者在用户不直接与网络或移动设备上的应用程序进行交互的情况下。

Mixpanel还提供了强大且易于使用的客户端的JavaScript库,用于Web应用程序。该库提供了特定于平台的功能和便利性,可以使Mixpanel实现更加简单,并且可以自然地扩展到无限数量的客户端。客户端JavaScript库是将MixPanel添加到面向用户的Web应用程序中的首选方法。

安装库

您可以使用PIP获取库。

PIP安装Mixpanel

安装库后,请使用您的应用程序中的MixPanel库,请使用:

来自MixPanel Import MixPanel MP = MixPanel(“ your_token”)

欧盟数据居住

通过使用自定义将数据路由到Mixpanel的欧盟服务器消费者

import mixpanel mp_eu = mixpanel.mixpanel(“ your_token”,computer = mixpanel.consumer(api_host =“ api-eu.www.jy710.com”),),),),),),),),)

发送事件

MixPanel事件是使用MixPanel类的实例发送的。

您可以使用包含Mixpanel项目令牌的字符串实例化Mixpanel实例。您可以在Mixpanel Web应用程序的“设置对话框”中找到您的项目令牌。

一旦有了跟踪器的实例,您就可以通过向事件名称和属性提供跟踪事件来跟踪事件mixpanel.track()

从mixpanel导入mixpanel mp = mixpanel(project_token)#跟踪事件,“已发送消息”,#with dimption_id user_id mp.track(user_id,'send sead message')#您还可以包含属性来描述#事件MP的情况。。

MixPanel可以使用传入请求上的IP地址确定默认的地理位置数据($ CITY,$ region,MP_COUNTRY_CODE)。由于所有服务器端调用可能源于相同的IP(即服务器的IP),因此这可能会产生意想不到的效果,即设置所有用户的位置到数据中心的位置。阅读有关使用服务器端实现的地理位置的最佳实践

管理用户身份

MixPanel组事件以不同的不同_ids发送,将它们作为不同的用户事件流中的报告表示。您可以使用不同的不同_ids连接事件别名,识别或合并,最终将它们归因于一个用户。

ID合并

如果一个项目有ID合并启用, 这$识别事件可以连接预验证事件和后验证事件。如果未启用ID合并,则标识事件不会链接身份,但是可以使用别名来连接预注册事件。

别名

别名方法会创建一个别名,该别名将使用该别名将一个不同的_ID改造为另一个不同。多个别名可以指向相同的标识符。

ID合并

如果一个项目有ID合并已启用,只需在您知道用户将合并匿名并确定不同的dinters_ids时,请立即与您选择的标识符识别识别。不再需要调用别名。

争论

类型

描述

别名

细绳
必需的

您想用作此用户的标识符的唯一标识符。

独特的_id

细绳
可选的

当前的用户标识符。

以下是有效使用别名

mp.alias(new_id,onerional_anonymous_id)#create第二个别名mp.alias(new_second_id,onigral_anonymous_id)

别名也可以链接。你不能指向多个标识符。

❗️

ID合并

如果一个项目没有ID合并启用,最好的做法是致电别名一次,首先为用户创建唯一的ID(例如,当用户首先注册帐户时)。

笔记

直到别名请求登陆Mixpanel服务器之前,别名才生效。因此,如果您使用自定义消费者使用mixpanel.alias(),则需要特别注意,因此您可以确保在与新别名相关联的任何事件或更新之前,您的别名消息到达。

存储用户配置文件

除事件外,您还可以将用户配置文件更新发送到Mixpanel。Mixpanel可以维护每个用户的个人资料,并存储有关他们了解的信息。更新是一条更改用户配置文件属性的消息。

您可以使用个人资料来探索和细分用户,而不是他们所做的。您还可以使用个人资料发送消息,例如电子邮件,SMS或推送通知。

MixPanel使用传入请求上的IP地址确定默认地理位置数据($ CITY,$ region,MP_COUNTRY_CODE)。由于所有服务器端调用可能源于相同的IP(即服务器的IP),因此这可能会产生意想不到的效果,即设置所有用户的位置到数据中心的位置。阅读有关使用服务器端实现的地理位置的最佳实践

设置配置文件属性

Mixpanel的实例有一种发送配置文件更新的方法。

#创建或更新具有名称,姓氏,电子邮件地址,电话号码和喜欢的颜色的配置文件,而无需更新地理位置数据或$ last_seen mp.people_set('12345',{'$ first_name':'john'','$ last_name':'doe','$ email':'[电子邮件保护]','$ phone':'55555555555','最爱颜色':'red'},meta = {'$ ignore_time':true,'$ ip':0})

这个电话people_set()将更改用户12345配置文件上的属性值。如果已经在Mixpanel中没有具有独特的_ID 12345的配置文件,将创建一个新的配置文件。如果用户12345已经在其配置文件上设置了这些属性中的任何一个,则旧值将被新值覆盖。

笔记

明智地选择您的财产名称。一旦将它们发送到Mixpanel,就无法更改它们。可以随意使用大写和单词之间的空间。
有一些局限性:

  • 您的财产名称不应开始$或者MP_。这些属性保留给Mixpanel发送的特殊属性。
  • 您的属性名称不能以空间的形式开始或结束,因为它们会自动修剪。
  • 您的属性名称和值不能超过255个字符。实际上,它们应该比这短得多。属性名称被我们的用户界面以约20个字符的形式切断。

点击这里要查看Mixpanel保留的用户配置文件属性列表。

附加列出属性

利用people_append()将项目添加到现有的列表价值属性中。您发送附加的值将添加到每个命名属性的列表末尾。如果该属性不存在,它将以一个元素列表作为其值创建。

mp.people_append('12345',{'最喜欢的水果':'apples'})

其他类型的个人资料更新

还有一些其他类型的配置文件更新。您可以从MixPanel库API参考

小组分析

Mixpanel组分析允许选定组而不是单个用户进行行为数据分析。

通过标识符进行分组独特的_id使用MixPanel Analytics时,可以在公司或小组级别进行分析。读本文了解有关小组分析的更多信息。

一个小组由group_keygroup_id

  • group_key是将事件数据连接用于组分析的属性。
  • group_id是特定组的标识符。

如果选择“公司”进行小组分析,则“公司”是group_key,以及“ Mixpanel”,“ A Company A”和“ 13254”都是潜在的group_id值。

用户可以属于多个组。对组的所有更新都在group_keygroup_id

添加组键

要开始跟踪组数据,在项目设置中添加组键。如果您在项目设置中没有看到组键,请与Mixpanel销售团队购买小组分析。

创建组密钥

通过您的项目设置管理组钥匙。组键是事件属性。所有事件都需要在其上具有定义的组键,以归因于组。组密钥是特定于项目的,并且在发送组数据之前应设置组密钥。请注意,Mixpanel在实施组密钥之前不会回填历史数据。

要管理组钥匙,请导航到您的项目设置。点击+添加组密钥在下面组钥匙部分。

1846年1846年

输入事件属性以将组键归因于。您还可以输入组键的显示名称。点击节省

向事件发送小组标识符

要发送带有事件的小组标识符,请发送group_key作为属性密钥和group_id作为属性值。数据类型group_key属性是列表,因此您可以为单个用户添加多个值。也只能传递一个值。

Mixpanel可以通过group_id,类似于事件与独特的_id。一个group_id但是,是组级标识符,而不是像用户级标识符独特的_id

请注意,发送group_keygroup_id由于事件属性不会将用户添加到组配置文件或将组成员分配到用户配置文件中。仅有的事件与您选择的group_key属性集将用于小组级别的行为分析。请参阅“代码”示例之后的部分,以了解如何将用户添加到组配置文件或将组添加到用户配置文件中。

#跟踪一个名为“计划购买”的事件,#with the Distion_ID为user_id,#group_key = group_id = mixpanel mp.track(user_id,'plan Planing Puiloper',{'plan类型':'premium':'premium',''公司':'mixpanel'})

向单个用户添加组标识符

要将组信息连接到用户配置文件,请包括group_keygroup_id通过发送财产作为一部分people_set()称呼。

#创建或更新使用“名字”,“姓氏”,“ faster color”属性的用户配置文件,group_id = with group_key = mixpanel mp.people_set('12345',{'$ first_name'':'john','$ last_name':'doe','favesy color':'red','company':'mixpanel',},meta = {'$ ignore_time':true,true,'$ ip':0})

创建组配置文件

可以创建类似于用户配置文件的组配置文件。您必须调用类似的财产设定方法group_set()创建组配置文件。包括group_key,,,,group_id,至少一个属性,以使配置文件不是空的。

#使用group_key = company,#group_id = mixpanel,#创建一个组配置文件,并将带有价值“分析”#的属性“分配”#分配给配置文件mp.group_set('company','mixpanel',{'company type':'Analytics','$ NAME':'MIXPANEL'})

设置组属性

您可以通过向它们添加属性来添加详细信息。这些操作类似于用户配置文件属性更新的相应操作。

您可以设置属性$名称要填充组配置文件顶部的名称字段。

group_set()更新或将属性添加到组配置文件中。如果不存在,则创建该配置文件。

#使用group_key = company,#group_id = mixpanel,#创建一个组配置文件,并将带有价值“分析”#的属性“分配”#分配给配置文件mp.group_set('company','mixpanel',{'company type':'Analytics','$ NAME':'MIXPANEL'})

设置一次

group_set_once()仅当尚未设置属性时,将属性添加到组中。如果不存在,则创建该配置文件。

#使用group_key = company,#group_id = mixpanel#创建组配置文件,并将带有价值“ Analytics”#的属性“分配”#分配给配置文件,仅当尚未设置MP.Group_set_once('Company','MixPanel',{'Company Type':'Analytics'})

不设置

group_unset()在组配置文件上安排属性。

#永久删除组概况属性“公司类型” MP.Group_unset('Company','Mixpanel',['Company Type'])

联盟

group_union()将指定值添加到列表属性中,并确保这些值仅出现一次。如果不存在,则创建该配置文件。

#合并“ funnels”和“消息”值纳入现有“功能”列表mp.group_union('company','mixpanel',{'features':['Insights','funnels']})

消除

group_remove()在列表属性中删除特定值。

#在列表中将两个值添加到“公司类型”属性mp.group_set('Company','Mixpanel',{'Company Type':['Hardware','Analytics'],'$ NAME':'MIXPANEL'})#从“ MP.Group_remove('Company','MixPanel',{'Company Type':'Hardware'}的“ MP.Group_remove”('Company','Company','Company'})的值列表中

删除

group_delete()永久删除组配置文件。

#删除MixPanel组概况MP.Group_delete('Company','MixPanel')

更新

group_update()发送通用组配置文件更新。

呼叫者负责格式化更新消息,如MixPanel HTTP规范。如果您想使用非常新的或实验性的功能,此方法可能很有用,但是请使用其他功能团体_*可能的方法。

缩放服务器端跟踪

默认情况下,MixPanel类在每个跟踪消息或配置文件更新中立即向Mixpanel发送请求。这很方便快速入门,但是Mixpanel库的几乎所有服务器端的使用最终都将希望与跟踪在所跟踪的事件中的单独线程或进程中进行跟踪相关联。

Mixpanel库提供了消费者以更好地控制您的跟踪IO的课程。

除了您的令牌外,Mixpanel构造函数可选消费者争论。该参数(如果提供)应该是一个具有名称的方法的对象发送(),这需要三个论点:

争论

类型

描述

端点

细绳

旨在转到Mixpanel /Track端点的消息的字符串“事件”,用于Mixpanel /People端点的消息的字符串“ People”,或者进口对于发送到 /导入端点的事件数据。

JSON_MESSAGE

细绳

在字符串中编码的JSON消息,该消息可以在命名端点处使用。有意义的JSON消息的结构在Mixpanel HTTP API参考

api_key

细绳

默认为没有任何。如果端点需要一个键,例如“导入”或消费者被缓冲,请包括项目API密钥。

您可以使用发送()消费者将消息发送到单独过程,将其添加到队列或将其写入日志中的方法。

类LoggingConsumer(对象):def __init __(self):self.mp_log = open(“ mixpanel_log.txt”,“ w+”)def send(self,endpoint,json_message,api_key = none):0} :: {1} \ n“ .format(endpoint,json_message))#每当您使用logging_mp跟踪时,您的消息都会#写入mixpanel_log.txt,而不是发送#发送到mixpanel服务器logging_mp = mixpanel(your_token,your_token,your_token,your_token,your_token,your_token,your_token,your_token,your_token)LoggingConsumer())

当您将其与Mixpanel模块中的现有消费者结合使用时,使用自定义消费者最强大。

导入MixPanel#默认MIXPANEL消费者将采用#端点和消息,并将其发送到带有open(“ mixpanel_log.txt”,“ r+”)的mixpanel consumer = mixpanel consumer())= line.split('::',1)consumer.Send(端点,消息)

提供包装的消费者和您自己的自定义消费者的组合使使用Mixpanel库与排队系统变得易于使用。例如:

#在您的时间敏感过程中,eNqueueingConsumer(对象):def(self,endpoint,json_message,api_key = none):your_queue.set('mixpanel_queue',json.dumps([endpoint,json_message])mp = mixpanel。MixPanel(your_token,enqueueingConsumer())#跟踪就像在任何其他情况下一样track.track(user_id,'sested messages')mp.people_increment(user_id,user_id,'seads send':1}另一台计算机消费者= mixpanel.consumer()whre:job = your_queue.get('mixpanel_queue')computer.send(*json.loads(job))

对于整体负载很轻的应用,但是特定过程的延迟是一个问题,您也可以使用Mixpanel-Python-Async,在单独的线程中有效地跟踪请求的第三方消费者有效地跟踪请求。