revoltify / pixelify
Laravel package for Facebook Conversion API integration
Requires
- php: ^8.2
- illuminate/http: ^11.0||^12.0||^13.0
- illuminate/support: ^11.0||^12.0||^13.0
Requires (Dev)
- driftingly/rector-laravel: ^2.1.9
- larastan/larastan: ^3.9.3
- laravel/pint: ^1.27.1
- orchestra/testbench: ^9.16
- pestphp/pest: ^3.8.5
README
A Laravel package for easy integration with Facebook Conversion API to track various events like ViewContent, PageView, AddToCart, InitiateCheckout, and Purchase.
Installation
For Laravel 11+
composer require revoltify/pixelify "^2.0"
For Laravel 9+
composer require revoltify/pixelify "^1.0"
Configuration
Publish the configuration file:
php artisan pixelify:setup
Add your Facebook Pixel credentials to your .env file:
FACEBOOK_PIXEL_ID=your_pixel_id FACEBOOK_CONVERSION_API_TOKEN=your_api_token FACEBOOK_TEST_EVENT_CODE=your_test_event_code (optional) FACEBOOK_PIXEL_DEBUG=false
Getting Your Facebook Pixel ID and Access Token
- Go to Facebook Events Manager
- Select your Pixel
- Go to the "Settings" tab
- Copy the Dataset ID (this is your Pixel ID)
- Scroll down to "Set up direct integration"
- Click "Generate access token"
- Copy the generated Pixel Access Token
Usage
Model Integration
Implement the interfaces in your models:
use Revoltify\Pixelify\Contracts\PixelifyUserInterface; use Revoltify\Pixelify\Traits\HasPixelifyUser; class User extends Model implements PixelifyUserInterface { use HasPixelifyUser; // overwrite methods if needed public function getPixelFirstName(): ?string { return $this->name; } } use Revoltify\Pixelify\Contracts\PixelifyProductInterface; use Revoltify\Pixelify\Traits\HasPixelifyProduct; class Product extends Model implements PixelifyProductInterface { use HasPixelifyProduct; // overwrite methods if needed public function getPixelProductCurrency(): string { return $this->product_currency; } }
Tracking Events
use App\Models\User; use App\Models\Product; use Revoltify\Pixelify\Facades\Pixelify; $user = User::first(); $product = Product::first(); // Track page view Pixelify::pageView($user); // Track view content Pixelify::viewContent($product, $user); // Track add to cart Pixelify::addToCart($product, $user); // Track initiate checkout Pixelify::initiateCheckout($product, $user); // Track purchase Pixelify::purchase($product, $user);
Using DTOs Directly
You can also create DTOs manually:
use Revoltify\Pixelify\DTO\UserData; use Revoltify\Pixelify\DTO\ProductData; use Revoltify\Pixelify\Facades\Pixelify; $userData = new UserData( firstName: 'John', lastName: 'Doe', email: 'user@example.com', phone: '+1234567890', ); $productData = new ProductData( productId: '123', price: 99.99, quantity: 1, currency: 'USD' ); Pixelify::purchase($productData, $userData);
Testing
composer test
Contributing
Thank you for considering contributing to the Pixelify package! We welcome all contributions, including bug reports, feature requests, and pull requests.
Please review existing issues and pull requests before submitting your own to avoid duplicates.
If you discover any security-related issues, please email info@revoltify.net directly instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.