genealabs/mixpanel

此包已被 放弃 并不再维护。作者建议使用 genealabs/laravel-mixpanel 包代替。

MixPanel 的 Laravel 5 包装器。

0.3.16 2015-08-24 18:32 UTC

README

MixPanel for Laravel 5

注意事项

  1. 此包在 mixpanel/webhooks/* 下添加了多个路由。请确保这些路由与您的现有路由不冲突。

安装

  1. 使用 composer 安装 MixPanel

    composer require genealabs\mixpanel:~0.1
  2. config\app.php 中添加服务提供者条目

            'GeneaLabs\MixPanel\MixPanelServiceProvider',

配置

  1. 将您的 MixPanel 令牌更新到 .env 文件中

    MIXPANEL_TOKEN=xxxxxxxxxxxxxxxxxxxxxx
    
  2. 在服务配置(config\services.php)中加载令牌

        'mixpanel' => [
            'token' => env('MIXPANEL_TOKEN'),
        ],
  3. 我们需要禁用 Stripe webhook 端点的 CSRF 检查。为此,打开 app/HTTP/Middleware/VerifyCsrfToken.php 并在返回语句上方添加以下内容

            if ($request->is('mixpanel/webhooks/*')) {
                return $next($request);
            }
  4. 配置 Stripe webhook(如果您使用 Stripe):登录您的 Stripe 账户:https://dashboard.stripe.com/dashboard,然后打开账户设置的 webhook 选项卡

    输入您的 MixPanel webhook URL,类似于以下内容:http://<your server.com>/mixpanel/webhooks/stripe/transactionscreen shot 2015-05-31 at 1 35 01 pm

    如果您确实正在运行实时环境,请确保选择“实时”(否则请将其置于测试模式并在上线时更新)。此外,选择“发送所有事件”以确保 MixPanel 端点可以充分利用 Stripe 数据。

用法

MixPanel 作为单例加载到 IoC 中。这意味着您无需像 MixPanel 文档中描述的那样手动调用 $mixPanel::getInstance()。这已在 ServiceProvider 中为您完成。

常见的用户事件会自动记录

  • 用户注册
  • 用户删除
  • 用户登录
  • 用户登录失败
  • 用户注销
  • Cashier 订阅
  • Cashier 提交支付信息
  • Cashier 订阅计划更改
  • Cashier 取消订阅

要创建自定义事件,请简单地从 IoC 中获取 MixPanel 使用 DI

use GeneaLabs\MixPanel\MixPanel;

class MyClass
{
    protected $mixPanel;

    public function __construct(MixPanel $mixPanel)
    {
        $this->mixPanel = $mixPanel;
    }
}

如果在某些情况下 DI 不适用,您也可以手动从 IoC 中检索它

$mixPanel = App::make('GeneaLabs\MixPanel\MixPanel');

之后,您可以像通常那样调用 MixPanel API

  • $mixPanel->identify($user->id);
  • $mixPanel->track('User just paid!');
  • $mixPanel->people->trackCharge($user->id, '9.99');
  • $mixPanel->people->set($user->id, [$data]);

    等等...

Laravel 集成

默认情况下,它将记录每个人都会希望跟踪的常见事件。此外,如果使用 Laravel 带来的默认 $user->name 字段,它将拆分姓名,使用最后一个单词作为姓氏,而之前的一切都将作为名字。否则,它将在用户表中查找 first_namelast_name 字段。

  • 用户注册

    Track:
      User:
        - Status: Registered
    People:
      - $first_name: <user's first name>
      - $last_name: <user's last name>
      - $email: <user's email address>
      - $created: <date user registered>
    
  • 用户更新

    People:
      - $first_name: <user's first name>
      - $last_name: <user's last name>
      - $email: <user's email address>
      - $created: <date user registered>
    
  • 用户删除

    Track:
      User:
        - Status: Deactivated
    
  • 用户还原(从软删除中)

    Track:
      User:
        - Status: Reactivated
    
  • 用户登录

    Track:
      Session:
        - Status: Logged In
    People:
      - $first_name: <user's first name>
      - $last_name: <user's last name>
      - $email: <user's email address>
      - $created: <date user registered>
    
  • 用户登录失败

    Track:
      Session:
        - Status: Login Failed
    People:
      - $first_name: <user's first name>
      - $last_name: <user's last name>
      - $email: <user's email address>
      - $created: <date user registered>
    
  • 用户注销

    Track:
      Session:
        - Status: Logged Out
    
  • 视图加载

    Track:
      Page View:
        - Url: <page URL>
        - Route: <route name>
        - Referrer: <referring URL>
    

Stripe 集成

许多L5网站正在使用收银系统来管理他们的订阅。此包创建了一个API webhook端点,用于在MixPanel中记录关键的支付分析,以帮助识别客户流失。

默认情况下,它将为您在MixPanel中记录以下Stripe事件

收费

  • 已授权的收费(仅在授权将来收费日期的支付时)

    Track:
      Payment:
        - Status: Authorized
        - Amount: <amount authorized>
    
  • 已捕获的收费(在完成之前已授权的收费时)

    Track:
      Payment:
        - Status: Captured
        - Amount: <amount of payment>
    People TrackCharge: <amount of intended payment>
    
  • 完成的收费

    Track:
      Payment:
        - Status: Successful
        - Amount: <amount of payment>
    People TrackCharge: <amount of payment>
    
  • 已退还的收费

    Track:
      Payment:
        - Status: Refunded
        - Amount: <amount of refund>
    People TrackCharge: -<amount of refund>
    
  • 失败的收费

    Track:
      Payment:
        - Status: Failed
        - Amount: <amount of intended payment>
    

订阅

  • 客户已订阅

    Track:
      Subscription:
        - Status: Created
    People:
      - Subscription: <plan name>
    
  • 客户已取消订阅

    Track:
      Subscription:
        - Status: Canceled
        - Upgraded: false
      Churn! :(
    People:
      - Subscription: None
      - Churned: <date canceled>
      - Plan When Churned: <subscribed plan when canceled>
      - Paid Lifetime: <number of days from subscription to cancelation> days
    
  • 客户开始试用

    Track:
      Subscription:
        - Status: Trial
    People:
      - Subscription: Trial
    
  • 客户升级了计划

    Track:
      Subscription:
        - Upgraded: true
      Unchurn! :-)
    People:
      - Subscription: <new plan name>
    
  • 客户降级了计划(基于与之前计划的美元价值比较)

    Track:
      Subscription:
        - Upgraded: false
      Churn! :-(
    People:
      - Subscription: <new plan name>
      - Churned: <date plan was downgraded>
      - Plan When Churned: <plan name prior to downgrading>