moirei / event-tracking
Send application events to analytics services and data-warehouse.
0.3.0
2023-06-07 23:05 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^7|^8|^9
- illuminate/support: ^7|^8|^9
- laravel/helpers: ^1.5
- sinergi/browser-detector: ^6.1
Requires (Dev)
- illuminate/contracts: ^7|^8|^9
- laravel/pint: ^1.2
- mixpanel/mixpanel-php: ^2.10
- orchestra/testbench: ^7.5
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.2
- phpunit/phpunit: ^9.5
- posthog/posthog-php: ^3.0
- spatie/invade: ^1.1
- theiconic/php-ga-measurement-protocol: ^2.9
- thled/pest-plugin-shorthands: ^1.1
Suggests
- mixpanel/mixpanel-php: Required to use in-built Mixpanel Channel
- theiconic/php-ga-measurement-protocol: Required to use in-built GA Channel
README
This package allows you to send application events to analytics services and any data-warehouse of your choice. Although inspired by Analytics.io and Segment, it should provide you more flexibility over your events and how they're manually or automatically handled.
Documentation
All documentation is available at the documentation site.
Features
- Send events to multiple analytics channels with ease
- Flexible event name and property mapping per channel per event
- Automatically capture and track local and vendor events
- Capture and track observable model events
- Use PHP Enums as event names
- Send events asynchronously with queues
Example
Track an event
Events::track('Purchase', $order); // or auto track app events // Somewhere in your app Events::listen(OrderPlacedEvent::class); // Elsewhere in your app OrderPlacedEvent::dispatch($order);
Identify and update a user profile
Events::identify($user->id, [ 'name' => $user->name, 'email' => $user->email, 'phone' => $user->phone, 'city' => $user->city, 'country' => $user->country, "Favorite Color" => $user->favoriteColor, ]);
Installation
composer require moirei/event-tracking
Publish the config
php artisan vendor:publish --tag="event-tracking"
Tests
composer test