This library provides an API to track events and update profiles on Mixpanel. By default, events are written using ssl over a persistent socket connection. You can contribute your own persistence implementation by creating a Consumer.
Add mixpanel/mixpanel-php as a dependency and run composer update
"require": {
...
"mixpanel/mixpanel-php" : "2.*"
...
}
Now you can start tracking events and people:
<?php
// import dependencies
require 'vendor/autoload.php';
// get the Mixpanel class instance, replace with your project token
$mp = Mixpanel::getInstance("MIXPANEL_PROJECT_TOKEN");
// track an event
$mp->track("button clicked", array("label" => "sign-up"));
// create/update a profile for user id 12345
$mp->people->set(12345, array(
'$first_name' => "John",
'$last_name' => "Doe",
'$email' => "[email protected]",
'$phone' => "5555555555",
"Favorite Color" => "red"
));
- Download the Mixpanel PHP Library
- Extract the zip file to a directory called "mixpanel-php" in your project root
- Now you can start tracking events and people:
<?php
// import Mixpanel
require 'mixpanel-php/lib/Mixpanel.php';
// get the Mixpanel class instance, replace with your project token
$mp = Mixpanel::getInstance("MIXPANEL_PROJECT_TOKEN");
// track an event
$mp->track("button clicked", array("label" => "sign-up")); // track an event
// create/update a profile for user id 12345
$mp->people->set(12345, array(
'$first_name' => "John",
'$last_name' => "Doe",
'$email' => "[email protected]",
'$phone' => "5555555555",
"Favorite Color" => "red"
));
For further examples and options checkout out the "examples" folder
Version 2.4:
- Fixed a bug where passing the integer 0 for the
ip
parameter would be ignored
Version 2.1 - 2.3:
- Broken releases
Version 2.0:
- Changed the default consumer to be 'curl' (CurlConsumer)
- Changed the default setting of 'fork' to false in the Curl Consumer. This means that by default, events and profile updates are sent synchronously using the PHP cURL lib when using the Curl Consumer.
- 'createAlias' uses the CurlConsumer with 'fork' explicitly set to false (as we need this to be synchronous) instead of the SocketConsumer.
- Fixed bug where max_queue_size was never read