与用户行为分析平台mixpanel和crm的自以为是的金字塔集成。

pyramid-mixpanel的Python项目详细描述


将您的应用程序与mixpanel集成,以了解您的用户是谁以及他们如何使用您的应用程序。

Circleci for Pyramid\u MixPanel(Master Branch)测试覆盖率(主分支)测试覆盖率(主分支)PYPI上的金字塔混合面板的最新版本支持的python版本license:mit由这些伟大的人建造!在自由节点IRC上的金字塔中与我们交谈

固执己见的混合面板集成

这个包存在的原因是在与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 trackingdistinct_id否则,您需要使用request.mixpanel.distinct_id='foo'手动设置它

开始

  1. 将"金字塔"mixpanel声明为金字塔项目中的依赖项。

  2. 包括以下行:

    config.include("pyramid_mixpanel")
  3. 告诉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
  4. < > >

    对于处理请求的视图代码,预配置request.mixpanel 可用。

    设计防御

    《金字塔》openapi3的作者认为,虽然mixpanel允许发送模式较少的数据,但随着项目需求的变化,这些数据可能会发生变化,因此最好精确地说明您发送的"事件"以及这些事件的属性将被调用。与"配置文件"相同。以下是使用mixpanel超过5年的原因

    a)事件名称和属性名称会出现拼写错误。它们会弄乱您的混音面板仪表板并使您减速。

    b)对于从代码库的不同部分发送的类似操作,将有不同名称的事件。然后在您的mixpanel仪表板中,您将有用户单击的按钮按钮单击的事件您将不确定要使用哪个,以及它们之间的区别。

    c)您的事件和属性的名称将不一致,因为它们将由不同的作者从代码库的不同部分发送。您的mixpanel仪表板会感觉有些"损坏",因为有些事件将使用过去时(用户登录)、有些事件将使用大写字母(生成的发票)、有些事件只使用动作动词(单击)等等。

    使用此包可以缓解上述所有问题,因为所有事件和属性名称都定义为数据类,以一种单一的真理来源的方式。一旦完成了最初的规格说明,就不可能出现打字错误。您可以立即识别错误的命名模式,因为所有事件和属性名称都在一个文件中。

    命名最佳实践

    为了H如果事件和属性的名称很好且一致,则此软件包的作者建议在提出名称时使用以下指导原则:

    • 使用过去时的<;item>;<;action>;格式,即单击的按钮查看的页面下载的文件
    • 使用标题大小写
    • 前端只发送两个mixpanel事件:单击的按钮/链接查看的页面。然后,我们根据按钮名称、URL等在MixPanel仪表板内部构造自定义事件,如单击的密码重置按钮或查看的定价页。自定义事件可以追溯修改,常规事件不能。
    • 当这些操作成功完成时,后端将发送"操作"事件,例如站点部署生成的pdf备份已完成

    运行测试

    您需要在计算机上安装pipenv和python 3.7。然后您可以运行:

    $ make tests
    

    相关套餐

    这些软件包位于相同的问题空间:

    在野外使用

    在生产中使用金字塔混合面板的几个项目:

    更改日志

    0.6.0(2019-08-26)

    • 添加了对配置自定义使用者的支持。 [ZUPO]

    0.5.0(2019-08-25)

    • 要求所有使用者实现一个flush()方法。 [ZUPO]

    0.4.3(2019-08-24)

    • 包里包括打印出来的,第三次是魅力吗? [ZUPO]

    0.4.2(2019-08-24)

    • 在包中包括py.type,现在是真的。 [ZUPO]

    0.4.1(2019-08-24)

    • 在包中包括py.typed。 [ZUPO]

    0.4.0(2019-08-19)

    • 准备重新编写的pypi版本。 [ZUPO]

    • 小型性能优化。 [ZUPO]

    0.3.0(2019-08-09)

    • 添加确保发送到mixpaneltrack的参数有效的保护。 [ZUPO]

    • 不要用"mixpanel configured"消息淹没日志。 [ZUPO]

    • 支持people\u append方法。 [suryasr007]

    • 大量清除遗留假设:

      • 配置文件同步方法已删除
      • request.user不再需要
      • mixpaneltrack init现在接受distinct\u id而不是user
      • 状态不再需要profileproperty [ZUPO]

    0.2.1(2019-07-28)

    • 并非所有使用者都有.flush()方法。 [ZUPO]

    0.2.0(2019-07-27)

    • 5年重写在Niteo的生产中使用混合面板。 [@zupo,@vanclevstik,@dz0ny,@karantan,@am on,@rockcarl]

    0.1.14-0.1.65(2012-2014年)

    • 由@hadrien开发的传统版本。

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java对称二维随机数数组   java Spring 3基于使用另一个数据源查询的连接字符串设置web应用程序数据源   java如何将类型保存为变量并在cast中使用   使用Struts的Jsp页面中出现java重复前缀错误   如何在SpringJava中自定义排序?   java如何高效地从自定义对象实现JList?   java如何在我的Android应用程序中调用外部库项目   java如何合并JTable的两列   java如何从字符串中提取括号数据   java Click recyclerView新建活动错误尝试调用虚拟方法   如何用Java表示字符串列表和列表?   swing java。awt。机器人按键事件为继续按下   java安全地忽略包含所有其他对象的JSON属性   java合并自定义双链表