PHP
updated 2 years ago
In this article:
- Getting Started
- Installation
- Configuration
- Identifying users
- Update/add user attributes
- Track device token
- Tracking user events and actions
- Add a Customer to an Account
- Update Account role
- Remove Customer from Account
The Engage PHP SDK lets you capture customer attributes and events on your application. You can later use this on Engage to create customer segments for analytics, broadcast messages, and automation messages.
We recommend you read the Connecting customer data section to learn more about how to capture customer data and what to capture.
Getting Started
Create an Engage account to get your API key.
Installation
composer require "engageso/engage-php"
Configuration
Initialize the SDK with your public and private keys. Your keys are available on the settings page of your Engage dashboard.
$engage = new \Engage\EngageClient($_SERVER['pub_key'], $_SERVER['pri_key']);
Identifying users
You only need a unique identifier that represents the user on your platform to track their events and attributes on Engage. To correlate a proper profile to these tracked attributes and events, you can send the unique identifier and other properties to Engage. You only need to do this once per user, probably at user signup.
$engage->users->identify([
'id' => 'u13345',
'email' => '[email protected]',
'created_at' => '2020-05-30T09:30:10Z'
]);
id
represents the unique identifier for the user on your platform. It is the only required parameter. You can send any other attribute you want e.g. age
, plan
. Here are the standard ones we use internally on the user profile:
first_name
last_name
email
number
(with international dialing code without the +)is_account
(if the user is an account or customer)created_at
(represents when the user registered on your platform. If not added, Engage sets it to the current timestamp.)
To identify a user as an Account:
$engage->users->identify([
'id' => 'u13345',
'is_account' => true,
'email' => '[email protected]',
'created_at' => '2020-05-30T09:30:10Z'
]);
To convert a Customer to an Account:
$engage->users->convertToAccount('u13345');
To convert an Account to a Customer:
$engage->users->convertToCustomer('u15645');
Update/add user attributes
If you need to add new attributes or update an existing attribute, you can use the addAttribute
method.
$engage->users->addAttribute($userId, [
'first_name' => 'Dan',
'plan' => 'Premium'
]);
(You can also use identify
to update or add new attributes.)
Track device token
You can also use the addAttribute
to add a user’s device token to Engage. When you add a device token, you must also specify the device platform. Supported values for device_platform
are ios
and android
.
$engage->users->addAttribute($userId, [
'device_token' => 'APA91bFoi3lMMre9G3XzR1LrF4ZT82_...',
'device_platform' => 'android'
]);
Tracking user events and actions
You can track user events and actions in a couple of ways.
Tracking an event with no value:
$engage->users->track($userId, 'Delinquent');
Tracking an event with a value:
$engage->users->track($userId, [
'event' => 'New badge',
'value' => 'gold',
'timestamp' => '2020-05-30T09:30:10Z'
]);
event
is the event you want to track. value
is the value of the event. This can be a string, number, or boolean. There is an optional timestamp
parameter. If not included, Engage uses the current timestamp. The timestamp value must be a valid date-time string.
If you need to track more properties with the event, you can track it this way:
$engage->users->track($userId, [
'event' => 'Add to cart',
'properties' => [
'product' => 'T123',
'currency' => 'USD',
'amount' => 12.99
]
]);
Add a Customer to an Account
$engage->users->addToAccount($userId, $accountId, $role);
role
is optional.
Update Account role
$engage->users->changeAccountRole($userId, $accountId, $newRole);
Remove Customer from Account
$engage->users->removeFromAccount($userId, $accountId);
Was this article helpful?