Table of contents
User ID Collection
In order to enrich the bid request data with user IDs (1st Party user IDs, 3rd Party IDs or hashed emails), please use the forward the eids
array as described in the sections below.
It corresponds to an array of OpenRTB EID objects as input:
Field | Type | Description |
---|---|---|
source | String | Identifier source URL (publisher URL or vendor URL). |
uids[].id | String | User identifier |
uids[].atype | Integer | Identifier type. |
uids[].ext.stype | String | ID Source type. |
uids[].ext.persistence | String | (Optional, Criteo-specific) In case of |
User ID Collection - First Party IDs
Please make sure to follow the below specs (examples on the right):
source: the publisher's domain
id: the user identifier
atype: Must be
1
for cookie/device based ID, must be3
for person-based ID (eg: authenticated user ID, login ID, CRM/customer ID)ext.stype:
ppuid
ext.persistence:
js
orhttp
User ID Collection - Third Party IDs
Please make sure to follow the below specs (examples on the right):
source: the third party solution domain
id: the user identifier
(recommended) atype:
1
for cookie/device based ID,3
for person-based ID (eg: authenticated user ID, login ID, CRM/customer ID)(optional) ext.persistence:
js
orhttp
User ID Collection - Hashed Emails
Please make sure to follow the below specs (examples on the right):
(optional) source: the publisher's domain or the domain of the solution operating on their behalf
id: the user data
atype:
3
ext.stype: hashing algorithm used:
cleartextemail
,hemsha256
,hemmd5
,hemsha256md5
. Please refer to next section for details on hashing formats.
Hashing Formats
The hashing should be the users’ email address:
Encoded in UTF-8
Trimmed of any white space (eg: “test@criteo.com “ should become “test@criteo.com”)
Converted to lower case
Hashed with MD5/SHA256/SHA256(MD5) & output as ASCII text
Example:
Type: String
Original Email: john.doe@gmail.com
SHA256: 375320dd9ae7ed408002f3768e16cb5f28c861062fd50dff9a3bff62e9dce4ef
MD5: e13743a7f1db7f4246badd6fd6ff54ff
SHA256 of MD5: 000e3171a5110c35c69d060112bd0ba55d9631c7c2ec93f1840e4570095b263a
Helpful links : https://www.miraclesalad.com/webtools/md5.php and https://www.miraclesalad.com/webtools/sha256.php
User ID Collection - Phone Numbers
Please make sure to follow the below specs (example on the right):
(optional) source: your domain or the domain of the solution operating on your behalf.
id: the user data
atype:
3
ext.stype: hashing algorithm used. It can be either
pnclear
if the phone number is hashed, orpnsha256
if the phone number is in clear. Please refer to next section for details on hashing formats.
HASHED PHONE NUMBERS
Criteo uses SHA256 as a hashing method. The expected underlying phone numbers format is trimmed E.164 format, including the country code, without the leading "+" sign (so only 15 digits, at most): sha256(internationalPhoneNumber.replaceAll(/[^0-9]/g, "")).
Example:
1 (234) 567-8910 → sha256(12345678910) → 63640264849a87c90356129d99ea165e37aa5fabc1fea46906df1a7ca50db492
81-12-3456-7891 → sha256(811234567891) → d9825fb05347d3c910fc5202c0c20d07a87b791cc643c6f2d70402394a849540
02 1234 5678 → sha256(0212345678) → 826f54894e28f3f1795f3c5e3335cf98709c5d5b38b3f9c6d72467d491f032df
+33 1 40 40 22 90 → sha256(33140402290) → fda66831d0cb0eb4bffb21bc795308d69921c211c57be0ae15702071e3b9e988
CLEAR PHONE NUMBERS
Clear phone numbers are accepted to ease integration for some partners.
Any international formats are accepted (including the leading "+" sign). Normalization remove all non numeric characters
Validation checks:
Number starts with a + sign length is at most 15 digits there is no leading 0: many countries use 0 as national dial number Then backend map the clear phone numbers to SHA256 HPN so the two accepted formats are uniform.
Examples:
+1 (234) 567-8910
+81-12-3456-7891
+33 1 40 40 22 90
02 1234 5678 is rejected because of a leading 0 indicating that it is a national phone number