与用户行为分析平台mixpanel和crm的自以为是的金字塔集成。
pyramid-mixpanel的Python项目详细描述
将您的应用程序与mixpanel集成,以了解您的用户是谁以及他们如何使用您的应用程序。
固执己见的混合面板集成
这个包存在的原因是在与mixpanel集成时提供了正常的默认值。您可以专注于学习对用户重要的内容,而不是跟踪事件名称的错误和调试跟踪不起作用的原因。
- 在mixpanel中,您永远不会键入重复的事件,因为每个事件名称都来自一个数据类,而不会来自一个可能因错误键入而丢失的字符串。
- 属性相同。与事件一样,属性也硬编码为数据类。
- 所有"特殊"和"保留"事件和属性都已提供,无需在各种mixpanel文档中查找。
- 如果mixpanel关闭,您的应用程序将永不停止工作,但您的日志中仍会出现错误,因此您知道发生了什么。 < Yo >u永远不要忘记在事件缓冲区上调用
- 在成功处理整个请求之前,您可以推迟发送事件,也就是说,如果在请求生命周期的稍后阶段将事件添加到数据库失败,则从不发送"用户添加了事件"之类的事件。
flush()
,因为金字塔混合面板
钩住请求生命周期,并在请求处理结束时调用flush()
。功能
- 构建在https://mixpanel.github.io/mixpanel python/之上
- 提供一个方便的
request.mixpanel.*
帮助程序,用于发送事件和设置配置文件属性。 - 确保在请求生命周期结束时调用
.flush()
。 - 为事件和属性提供数据类,以避免键入错误。
- 您可以滚动自己的
使用者
,例如,调度后台任务以发送事件,以提高请求处理速度,因为对mixpanel的http请求被卸载到后台任务。 - 提供一个mixpanel query帮助程序,使用jql查询mixpanel的数据。包括一些常见的查询,如通过电子邮件获取个人资料的查询。
- 在本地开发和单元测试中,所有消息都存储在
request.mixpanel.api.\u consumer.mocked\u消息中,这使得编写集成测试变得轻而易举。
- 如果存在请求用户,则自动设置mixpanel tracking
distinct_id
否则,您需要使用request.mixpanel.distinct_id='foo'
手动设置它
开始
将"金字塔"mixpanel声明为金字塔项目中的依赖项。
包括以下行:
config.include("pyramid_mixpanel")
告诉mixpanel_mixpanel您想如何使用它:
# for local development and unit testing# events will be stored in request.mixpanel.api._consumer.mocked_messagesmixpanel.token=false# minimal configurationmixpanel.token=<TOKEN># enable support for querying Mixpanel datamixpanel.api_secret=<SECRET># custom events and propertiesmixpanel.events=myapp.mixpanel.Eventsmixpanel.event_properties=myapp.mixpanel.EventPropertiesmixpanel.profile_properties=myapp.mixpanel.ProfileProperties# defer sending of Mixpanel messages to a background task queuemixpanel.consumer=myapp.mixpanel.QueuedConsumer
< > >- 使用过去时的
<;item>;<;action>;
格式,即单击的按钮
,查看的页面
,下载的文件
- 使用标题大小写
- 前端只发送两个mixpanel事件:
单击的按钮/链接
和查看的页面
。然后,我们根据按钮名称、URL等在MixPanel仪表板内部构造自定义事件,如单击的密码重置按钮或查看的
定价页。
自定义事件可以追溯修改,常规事件不能。 - 当这些操作成功完成时,后端将发送"操作"事件,例如
站点部署
,
生成的pdf
,备份已完成
- @hadrien的旧版本pyramid mixpanel有一些很好的想法,这个项目是建立在它之上的,即使它是一个完整的重写;
- 官方的mixpanel python是这个项目所依赖的低级库;
- 大多数情况下,不推荐使用用于查询数据的mixpanel api,而被jql替代。
- mixpanel jql提供了编写jql查询的pythonic接口。
- woocart-管理的woocommerce服务。
- easyblognetworks-pbn托管和自动驾驶仪维护。
- 卡夫卡-人工智能生成的内容。
- docsy-分面搜索私人项目和团队。
- 添加了对配置自定义使用者的支持。 [ZUPO]
- 要求所有使用者实现一个
flush()
方法。 [ZUPO] - 包里包括打印出来的,第三次是魅力吗? [ZUPO]
- 在包中包括py.type,现在是真的。 [ZUPO]
- 在包中包括py.typed。 [ZUPO]
准备重新编写的pypi版本。 [ZUPO]
小型性能优化。 [ZUPO]
添加确保发送到mixpaneltrack的参数有效的保护。 [ZUPO]
不要用"mixpanel configured"消息淹没日志。 [ZUPO]
支持
people\u append
方法。 [suryasr007]大量清除遗留假设:
配置文件同步
方法已删除- request.user不再需要
- mixpaneltrack init现在接受
distinct\u id
而不是user
状态
不再需要profileproperty [ZUPO]
- 并非所有使用者都有.flush()方法。 [ZUPO]
- 5年重写在Niteo的生产中使用混合面板。 [@zupo,@vanclevstik,@dz0ny,@karantan,@am on,@rockcarl]
- 由@hadrien开发的传统版本。
对于处理请求的视图代码,预配置request.mixpanel
可用。
设计防御
《金字塔》openapi3的作者认为,虽然mixpanel允许发送模式较少的数据,但随着项目需求的变化,这些数据可能会发生变化,因此最好精确地说明您发送的"事件"以及这些事件的属性将被调用。与"配置文件"相同。以下是使用mixpanel超过5年的原因
a)事件名称和属性名称会出现拼写错误。它们会弄乱您的混音面板仪表板并使您减速。
b)对于从代码库的不同部分发送的类似操作,将有不同名称的事件。然后在您的mixpanel仪表板中,您将有用户单击的按钮
和按钮单击的事件
您将不确定要使用哪个,以及它们之间的区别。
c)您的事件和属性的名称将不一致,因为它们将由不同的作者从代码库的不同部分发送。您的mixpanel仪表板会感觉有些"损坏",因为有些事件将使用过去时(用户登录
)、有些事件将使用大写字母(生成的发票
)、有些事件只使用动作动词(单击
)等等。
使用此包可以缓解上述所有问题,因为所有事件和属性名称都定义为数据类,以一种单一的真理来源的方式。一旦完成了最初的规格说明,就不可能出现打字错误。您可以立即识别错误的命名模式,因为所有事件和属性名称都在一个文件中。
命名最佳实践
为了H如果事件和属性的名称很好且一致,则此软件包的作者建议在提出名称时使用以下指导原则:
运行测试
您需要在计算机上安装pipenv和python 3.7。然后您可以运行:
$ make tests
相关套餐
这些软件包位于相同的问题空间:
在野外使用
在生产中使用金字塔混合面板的几个项目: