User tracking in Mapp Intelligence enables you to identify visitors based on unique customer information rather than relying solely on cookies. This ensures consistent user recognition, even when cookies are deleted, browsers are switched, or users access your website from different devices.
Note on Data Privacy
Always transmit personal information in encrypted or hashed form.
Mapp recommends using SHA256 or MD5 hashing to ensure compliance with data-protection standards.
User data can be sent to Mapp Intelligence after a successful login, registration, or purchase.
Each user is identified through a Customer ID and can optionally be enriched with User Categories for segmentation and analysis.
Customer ID
The Customer ID serves as a unique identifier for a user.
It can be:
a customer number from your CRM or shop system, or
the user’s email address.
Note
If an email address is used, it must be encrypted or hashed before transmission to comply with data-protection requirements. Mapp recommends using SHA256 or MD5 hashing to ensure that the email address cannot be read directly.
User Categories
User Categories capture additional attributes about a user, for example loyalty level, subscription type, or login source. They allow you to enrich user profiles with contextual or behavioral data for deeper segmentation and analysis.
They must also be configured in Mapp Q3 before tracking. Find more information here.
When implementing, include the ID number and the value as a string.
Method | Description | Where to configure * | Where to analyze |
|---|---|---|---|
constructor | Initializes a user object and defines the unique Customer ID. | – | Visitors > User Relationship Management > Custom Visitor ID |
setId | Sets the Customer ID, a unique identifier from your CRM, shop system, or hashed email address. | – | Visitors > User Relationship Management > Custom Visitor ID |
setCustomIdentifier | Defines a secondary unique identifier for the user (optional). | – | Visitors > User Relationship Management > Custom Visitor ID |
setEmail | Transmits the user’s email address. Hash or encrypt the address before you pass it, the library does not hash it. | – | Visitors > User Relationship Management > [Name of User Category] |
setEmailRID | Transmits the user’s email receiver ID for linking marketing communications with behavior data. | – | Visitors > User Relationship Management > [Name of User Category] |
setEmailOptin | Tracks whether the user has granted email permission (opt-in status). | – | Visitors > User Relationship Management > [Name of User Category] |
setFirstName | Transmits the user’s first name. | – | Visitors > User Relationship Management > [Name of User Category] |
setLastName | Transmits the user’s last name. | – | Visitors > User Relationship Management > [Name of User Category] |
setTelephone | Transmits the user’s telephone number. | – | Visitors > User Relationship Management > [Name of User Category] |
setGender | Tracks the user’s gender (1 = male, 2 = female). | – | Visitors > User Relationship Management > [Name of User Category] |
setBirthday | Transmits the user’s date of birth (YYYYMMDD). | – | Visitors > User Relationship Management > [Name of User Category] |
setCountry | Transmits the user’s country. | – | Visitors > User Relationship Management > [Name of User Category] |
setCity | Transmits the user’s city. | – | Visitors > User Relationship Management > [Name of User Category] |
setPostalCode | Transmits the user’s postal code. | – | Visitors > User Relationship Management > [Name of User Category] |
setStreet | Transmits the user’s street. | – | Visitors > User Relationship Management > [Name of User Category] |
setStreetNumber | Transmits the user’s street number. | – | Visitors > User Relationship Management > [Name of User Category] |
setValidation | Enables validation for overwriting existing user category values. | – | Visitors > User Relationship Management > [Name of User Category] |
setCategory | Adds or updates a User Category to describe additional user attributes. User Categories must be created beforehand in Mapp Intelligence. | UC > New Category | Visitors > User Categories > [Name of Category] |
* Configuration Path Abbreviations:
UC = Mapp Q3 > Configuration > Categorization > URM Categories > …
Generated request parameters
Method | Request parameter | Constant |
|---|---|---|
constructor / setId |
|
|
setCustomIdentifier |
|
|
setEmail |
|
|
setEmailRID |
|
|
setEmailOptin |
|
|
setFirstName |
|
|
setLastName |
|
|
setTelephone |
|
|
setGender |
|
|
setBirthday |
|
|
setCountry |
|
|
setCity |
|
|
setPostalCode |
|
|
setStreet |
|
|
setStreetNumber |
|
|
setValidation |
|
|
setCategory |
|
|
Note
Values that are empty or exactly
0,0.0,falseor{}are not transmitted. For example,setEmailOptin(false)is not sent, so an opt-out cannot be transmitted this way, and neither is a category with the value0orfalse. To transmit such a value, send the request with a parameter map (see Request Parameters).
constructor
/**
* MappIntelligenceCustomer constructor.
* @param string $id
*/
$customerData = new MappIntelligenceCustomer($id);setId
/**
* @param string $id
* @return $this
*/
$customerData->setId($id);setCustomIdentifier
/**
* @param string $customIdentifier Use this to transmit a unique custom identifier of the user (ceid)
* @return $this
*/
$customerData->setCustomIdentifier($customIdentifier);setEmail
/**
* @param string $email
* @return $this
*/
$customerData->setEmail($email);The library does not hash or encrypt any value. Hash personal data such as the email address yourself (for example with SHA-256) before you pass it.
setEmailRID
/**
* @param string $emailRID
* @return $this
*/
$customerData->setEmailRID($emailRID);setEmailOptin
/**
* @param bool $emailOptin
* @return $this
*/
$customerData->setEmailOptin($emailOptin);setFirstName
/**
* @param string $firstName
* @return $this
*/
$customerData->setFirstName($firstName);setLastName
/**
* @param string $lastName
* @return $this
*/
$customerData->setLastName($lastName);setTelephone
/**
* @param string $telephone
* @return $this
*/
$customerData->setTelephone($telephone);setGender
/**
* @param int $gender
* @return $this
*/
$customerData->setGender($gender);setBirthday
/**
* @param string $birthday
* @return $this
*/
$customerData->setBirthday($birthday);setCountry
/**
* @param string $country
* @return $this
*/
$customerData->setCountry($country);setCity
/**
* @param string $city
* @return $this
*/
$customerData->setCity($city);setPostalCode
/**
* @param string $postalCode
* @return $this
*/
$customerData->setPostalCode($postalCode);setStreet
/**
* @param string $street
* @return $this
*/
$customerData->setStreet($street);setStreetNumber
/**
* @param string $streetNumber
* @return $this
*/
$customerData->setStreetNumber($streetNumber);setValidation
/**
* @param bool $validation
* @return $this
*/
$customerData->setValidation($validation);setCategory
/**
* @param int $id
* @param string $value
* @return $this
*/
$customerData->setCategory($id, $value);The IDs 700 to 713 are used by the predefined user fields (setEmail to setValidation). Do not use them with setCategory, otherwise one value overwrites the other.
$customerData = new MappIntelligenceCustomer();
$customerData
->setId('user5684798169')
->setEmailRID('')
->setEmailOptin(true)
->setGender(1)
->setValidation(true)
->setCategory(5, 'login');
$mappIntelligence = MappIntelligence::getInstance();
$mappIntelligence->track((new MappIntelligenceDataMap())->customer($customerData));