Stars: 134
Forks: 66
Pull Requests: 30
Issues: 43
Watchers: 87
Last Updated: 2023-06-02 18:52:31
License: Other
Languages: PHP
This library provides an API to track events and update profiles on Mixpanel.
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"
));<?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"));
// 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"
));By default, data is sent using ssl over cURL. This works fine when you're tracking a small number of events or aren't concerned with the potentially blocking nature of the PHP cURL calls. However, this isn't very efficient when you're sending hundreds of events (such as in batch processing). Our library comes packaged with an easy way to use a persistent socket connection for much more efficient writes. To enable the persistent socket, simply pass 'consumer' => 'socket' as an entry in the $options array when you instantiate the Mixpanel class. Additionally, you can contribute your own persistence implementation by creating a custom Consumer.
mixpanel-php uses phpunit as the testing framework. Please ensure that composer is up to date.
To run tests, execute composer run-script unit-tests on the root directory.
For further examples and options checkout out the "examples" folder
Version 2.11.0
Version 2.10.0
Version 2.9.0
Version 2.8.1
$anon_id regex in identify method to support all Mixpanel distinct IDsVersion 2.8.0
$anon_id parameter to identify method, and a track call when parameter exists and is in UUID v4 formatcreateAlias method to $distinct_id and $aliasVersion 2.7.0:
Version 2.6.2:
Version 2.6.1:
Version 2.6:
connect_timeout in SocketConsumer to be 5Version 2.5:
timeout option now refers to CURLOPT_TIMEOUT instead of CURLOPT_CONNECTTIMEOUT in non-forked cURL calls, it has been removed from the SocketConsumer in favor of a new connect_timeout option.connect_timeout option for CURLOPT_CONNECTTIMEOUT in non-forked cURL calls (CurlConsumer) and the socket timeout (SocketConsumer)_handle_error with the curl errno and messageVersion 2.4:
ip parameter would be ignoredVersion 2.1 - 2.3:
Version 2.0: