canerdogan / laravel-mixpanel
Laravel 5.*的MixPanel包装器
Requires
- php: >=7.0.0
- illuminate/config: 5.1.* || 5.3.* || 5.4.*
- illuminate/events: 5.1.* || 5.3.* || 5.4.*
- illuminate/routing: 5.1.* || 5.3.* || 5.4.*
- illuminate/support: 5.1.* || 5.3.* || 5.4.*
- mixpanel/mixpanel-php: ~2.0
- nesbot/carbon: ^1.19
- sinergi/browser-detector: ~5.0
Requires (Dev)
- phpunit/phpunit: 4.*
- dev-master
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.6.0-RC
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.14
- 0.4.13
- 0.4.12
- 0.4.11
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.16
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.8b
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.0
This package is auto-updated.
Last update: 2024-08-29 04:31:20 UTC
README
功能
- 异步数据传输到Mixpanel的服务。这可以防止Mixpanel宕机或响应缓慢时对您应用程序的任何延迟。
- 直接安装和配置到您的Laravel应用中,开箱即用跟踪最常见的活动。
- 简单的Stripe集成,允许您跟踪用户级别的收入。
- 前端就绪的Mixpanel JS库,适用于Laravel Elixir包含或Blade模板使用。
要求和兼容性
- PHP 7
- Laravel 5.1 (LTS)
- Laravel 5.3
- Laravel 5.4 (当前)
旧版本
安装
composer require canerdogan/laravel-mixpanel
在config\app.php
中添加服务提供者条目
CanErdogan\LaravelMixpanel\Providers\LaravelMixpanelService::class,
验证您的认证配置文件config/auth.php
是否在auth.providers.users.model
中指定了用户模型(或对于L5.1,在auth.model
中)。如果该条目缺失,请添加它。
// Laravel 5.3 'providers' => [ 'users' => [ 'driver' => '...', 'model' => App\User::class, ], // Laravel 5.1 'model' => App\User::class,
最后,将您的Mixpanel API令牌添加到您的.env
文件
MIXPANEL_TOKEN=xxxxxxxxxxxxxxxxxxxxxx
配置
默认值
services.mixpanel.token
:从您的.env
文件中提取'MIXPANEL_TOKEN'值。services.mixpanel.enable-default-tracking
:(默认:true) 启用或禁用Laravel用户事件跟踪。services.mixpanel.consumer
:(默认:socket) 设置您想要使用的Guzzle适配器。services.mixpanel.connect-timeout
:(默认:2) 设置连接超时的秒数。services.mixpanel.timeout
:(默认:2) 设置事件跟踪超时的秒数。
升级说明
页面视图
- 已移除页面视图跟踪,以支持Mixpanel内建的Autotrack功能,该功能跟踪所有页面视图。要启用它,请访问您的Mixpanel仪表板,点击应用程序 > Autotrack > Web > 等。并启用Autotracking。
使用方法
###跟踪
event( new MixpanelEvent( 'Dashboard' ) );
或者
event( new MixpanelEvent( 'Welcome Modal', Auth::user() ) );
或者带参数
event( new MixpanelEvent( 'Send Invitation', ['Status' => 'Done'] ) );
###增加
event( new MixpanelEvent( 'increment', ['Login Count', 1] ) );
PHP事件
Stripe Web-Hook
如果您想利用Stripe Web-Hook并跟踪每个用户的收入,您应该安装Cashier
完成后,在/app/Http/Middleware/VerifyCsrfToken.php
中排除Web-Hook端点进行CSRF验证。
protected $except = [ 'canerdogan/laravel-mixpanel/stripe', ];
剩余的步骤是将Web-Hook注册到Stripe:登录您的Stripe帐户:https://dashboard.stripe.com/dashboard,并打开您的帐户设置的Webhook选项卡
输入您的MixPanel Webhook URL,类似于以下内容:http://<your server.com>/canerdogan/laravel-mixpanel/stripe
:
如果您正在运行实时版本,请务必选择“Live”(否则将其置于测试模式并在上线时更新)。此外,选择“发送我所有事件”以确保Laravel Mixpanel可以充分利用Stripe数据。
JavaScript事件和Auto-Track
Laravel Elixir
将以下行添加到您的/resources/js/app.js
(或等效文件),并不要忘记将YOUR_MIXPANEL_TOKEN
替换为您的实际令牌
require('./../../../public/canerdogan-laravel-mixpanel/js/mixpanel.js'); mixpanel.init("YOUR_MIXPANEL_TOKEN");
Blade模板
首先发布必要的资源
php artisan mixpanel:publish --assets
然后将以下内容添加到布局模板的head部分
@include ('canerdogan-laravel-mixpanel::partials.mixpanel')
使用方法
MixPanel作为单例加载到IoC中。这意味着您不需要手动调用$mixPanel::getInstance()(如MixPanel文档中所述)。这已经在ServiceProvider中为您完成了。
常见用户事件会自动记录
- 用户注册
- 用户删除
- 用户登录
- 用户登录失败
- 用户注销
- 收银员已订阅
- 收银员提交支付信息
- 收银员订阅计划已更改
- 收银员已取消订阅
要创建自定义事件,只需使用依赖注入(DI)从IoC中获取MixPanel即可
use CanErdogan\LaravelMixPanel\LaravelMixPanel; class MyClass { protected $mixPanel; public function __construct(LaravelMixPanel $mixPanel) { $this->mixPanel = $mixPanel; } }
如果在某些情况下DI不可行,您也可以手动从IoC中检索它
$mixPanel = app('mixpanel');
之后,您可以像往常一样调用MixPanel API
-
$mixPanel->identify($user->id);
-
$mixPanel->track('用户刚刚付款!');
-
$mixPanel->people->trackCharge($user->id, '9.99');
-
$mixPanel->people->set($user->id, [$data]);
以此类推...
Laravel集成
默认情况下,它将记录任何人都想跟踪的常见事件。另外,如果使用Laravel自带的默认$user->name
字段,它将把名字分成两部分,将最后一个词作为姓氏,其余部分作为名字。否则,它将在用户表中查找first_name
和last_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
Stripe集成(需要测试)
许多L5网站都在使用Cashier来管理他们的订阅。此包创建了一个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>