ID5 Help Center

Passing Partner Data to ID5

What is Partner Data?

Partner Data represents any "hard signals" that a partner is able to pass to ID5 to help recognize the user, including hashed email, hashed phone number, publisher user id, and more.

How is Partner Data Used?

When “hard signals” are passed in the Universal ID request, they take priority for cross-domain linkage purposes. ID5 performs a real-time look-up for the value provided and returns the ID5 ID that was already associated with that value. If the value doesn’t exist in the ID5 database, a new ID5 Universal ID is created and provided in the response. ID5 requires sha256 hashing & URL-safe base64 encoding to ensure that personally-identifiable information isn’t transmitted in the Universal ID call. The hard signals passed into ID5 are used exclusively for linking other Universal IDs together. ID5 does not transmit the data to any other party or allow "reverse-lookups" from a Universal ID to any Partner Data.

Types of Partner Data Supported

Key
Description
0
other
1
sha256 hashed email
(see below for how to cleanse the email prior to hashing)
2
sha256 hashed phone number
(remove all characters besides numbers before hashing)
3
cross-partner user id value
(i.e. a user id that could be used across ID5 Partner IDs)
4
cross-partner user id source
(value provided by ID5)
5
partner-specific user id value
(i.e. a user id that is specific to a single ID5 Partner IDs)
6
Apple ID for Advertising (IDFA)
(lowercased)
7
Google Advertising ID (GAID)
(lowercased)

Deriving the Partner Data (pd) Value

Suppose you have an email address for a user, in this example it is myuser@domain.com, and want to share it with ID5 to strengthen the value of the UID we respond with. You also have your own user id for this user that you can share: möller&françois (note: we discourage the use of special characters in the IDs, this is just for illustration purposes). Except for values that are sha256-hashed, in general other values should be URL-encoded (according to RFC 3986) using UTF-8 charset. 

First, perform a sha256 hash of the email, resulting in a string:
b50ca08271795a8e7e4012813f23d505193d75c0f2e2bb99baa63aa822f66ed3
Next, create the raw pd string containing the keys 1 (for the hashed email) and 5 (for the URL-encoded user id), separated by &’s (the order doesn’t matter):
1=b50ca08271795a8e7e4012813f23d505193d75c0f2e2bb99baa63aa822f66ed3&5=m%C3%B6ller%26fran%C3%A7ois
Finally, URL-safe base64 (RFC 4648) the entire raw pd string, resulting in the final pd value:
MT1iNTBjYTA4MjcxNzk1YThlN2U0MDEyODEzZjIzZDUwNTE5M2Q3NWMwZjJlMmJiOTliYWE2M2FhODIyZjY2ZWQzJjU9bSVDMyVCNmxsZXIlMjZmcmFuJUMzJUE3b2lz
This string can be passed to ID5 in the pd field in any of our integrations.

Cleansing Emails Prior to Hashing

Prior to hashing an email address, you must cleanse the string by removing unnecessary characters:
  1. Remove leading and trailing spaces
  2. Convert all ASCII characters to lowercase
For email accounts ending in @gmail.com:
  1. Remove leading and trailing spaces.
  2. Convert all ASCII characters to lowercase.
  3. Remove . (ASCII code 46) from the username of the email address. lee.ann.smith@gmail.com normalizes to leeannsmith@gmail.com.
  4. Remove + (ASCII code 43) and all subsequent characters from the username of the email address. leeannsmith+school@gmail.com normalizes to leeannsmith@gmail.com.