ID5 Help Center

SSPs

Universal ID Overview

The ID5 Universal ID is a shared, neutral identifier that publishers and ad tech platforms can use to recognise users even in environments where 3rd party cookies are not available or blocked. ID5 enables publishers to create and distribute a shared 1st party identifier to the entire ecosystem. Ad tech platforms that connect with ID5 can decrypt the Universal ID and improve their user recognition capabilities. The ID5 Universal ID is designed to respect users' privacy choices throughout the advertising value chain.

Solution Overview

RTB Process


  1. The Publisher first loads its CMP and captures the user’s consent preferences. This is essential before any IDs or ads are requested or delivered
  2. The Publisher calls ID5 (via the ID5 API, a header bidding identity module, or server-to-server) to request the ID5 ID, which can then be placed in cache (in the user’s browser or the publisher’s server) to avoid unnecessary http requests on future page views. 
  3. Via the publisher’s header bidding wrapper, or through a direct integration, SSPs receive the ID5 ID in the ad request to their servers
  4. SSPs pass the ID5 ID into the OpenRTB bid request that they send to their DSP partners
  5. (Optional) Outside of the RTB process, SSPs may choose to receive keys from ID5 so they can decrypt the value they receive from publishers (only necessary if the SSP is selling audience segments against ID5 IDs). SSPs who integrate this way will also receive merge instructions from ID5 to link publisher-specific IDs together.

Data Integrations


  1. Publisher first loads its CMP and captures the user’s consent preferences. This is essential before any IDs or ads are requested or delivered
  2. The Publisher calls ID5 (via the ID5 API or server-to-server) to request the ID5 ID, which can then be placed in cache (in the user’s browser or the publisher’s server) to avoid unnecessary http requests on future page views. 
  3. The data platform’s tag on the publisher’s page retrieves the ID5 ID and passes it, along with any other data signals they normally use, to their servers for processing
  4. The data platform pushes the data to the SSP and includes the ID5 ID in addition to, or instead of, the normal user IDs they pass
  5. Outside of the data ingestion process, SSPs receive keys from ID5 so they can properly decrypt the value they receive in bid requests. SSPs will also receive merge instructions from ID5 to link publisher-specific IDs together.

ID5 Integration Overview

Integration Phases


Phase 1: Read & Share

  1. Read the ID5 ID from ad requests (Prebid.js, tags, server-to-server, etc.)
  2. Share the ID5 ID as-received in bid requests to demand partners

Phase 2: Enrich & Use

  1. Enrich all bid requests with an ID5 ID (via server-to-server integration with ID5)
  2. Ingest data with an ID5 ID for use with publisher audience building and selling
  3. Support PMP creation with segments derived from ID5 IDs

ID5 Integration Details

Reading the ID5 ID

From Prebid.js Bid Adapter

If the ID5 Universal ID is available, the bidRequest object, which is available in the bid adapter module, will contain both a userId object and a userIdAsEids. The bidder adapter code should listen to this object and pass it along to its server in the ad call. 

We strongly recommend adapters leverage the bidRequest.userIdAsEids, rather than retrieving from bidRequest.userId, as it contains a pre-formatted version of the eids array needed to pass on to DSPs.
NOTE: ID5 provides extra data about the user id in the extension object which is important to send to DSPs.
An example implementation in the bid adapter using bidRequest.userIdAsEids​ might look like this:
const SUPPORTED_EIDS = [ 'id5-sync.com' ];
if (bidRequest.userIdAsEids) {
    adCallData.eids = bidRequest.userIdAsEids.filter(eid => {
        return SUPPORTED_EIDS.indexOf(eid.source) !== -1;
    });
}
An example implementation in the bid adapter using bidRequest.userId​ might look like this:
if (bidRequest.userId && bidRequest.userId.id5id && bidRequest.userId.id5id.uid) {
    adCallData.id5Id = bidRequest.userId.id5id.uid;
    adCallData.id5IdExt = bidRequest.userId.id5id.ext || {};
}
Additional information about retrieving the ID5 Universal ID can be found in the Prebid documentation.

From the ID5 API

If the publisher has integrated the ID5 API, the SSP can retrieve the ID5 Universal ID directly. This can be used by the SSP in other header bidding integrations or where the SSP has tags directly on page.
adCallData.id5Id = id5Status.getUserId();
adCallData.id5IdLinkType = id5Status.getLinkType();
For more details about the ID5 API or how to retrieve the Universal ID, take a look at our documentation on Github.

Sending the ID5 ID to DSPs

In OpenRTB Bid Requests

SSPs may pass the ID5 ID within the OpenRTB bid request to DSPs. While OpenRTB still hasn’t standardized the location for the ID5 ID (or other identity provider IDs), the user.ext.eids array is recommended (but should be agreed upon with your DSP partners):
{ "user": {
      "id": "SSP_UID",       // remains unchanged
      "buyeruid": "DSP_UID", // remains unchanged
      "ext": {
          "eids": [{
              "source": "id5-sync.com",
              "uids": [{
                  "id": "ID5-abc123", // the ID5 Universal ID
                  "ext": {
                      "linkType": 2 // 0 = unlinked; 1 = probabilistic; 2 = deterministic
                  }
              }]
          }]
      }
}}
NOTE: ID5 provides extra data about the user id in the extension object which is important to send to DSPs.

ID5 Partner Creation

Before getting started with the using Universal ID (Integration Phase 2), we need to make sure you have an ID5 Partner account. If you are not already integrated with ID5, reach out to contact@id5.io and we’ll get you set up right away.

Universal ID Decryption

ID5 encrypts the Universal ID in order to enforce the privacy preferences of the consumer and the publisher. To learn how to decrypt the Universal ID, please visit Decrypting the Universal ID (login required).

Privacy & Regulations

Privacy-by-Design

ID5 has built a privacy-by-design shared ID service for publishers and ad tech vendors. Our service leverages the IAB’s Transparency and Consent Framework (TCF) and US Privacy Framework to capture the user’s privacy preferences.

As a shared ID provider, ID5 acts as a Controller of the Universal ID, and thus, we must receive a valid legal basis to process requests. When we receive a request for the ID5 ID, we check that we have a legal basis to store our user ID in a cookie before proceeding; if we don’t have one, we do not read our cookie or write to it as part of the HTTP response.

When ID5 returns an ID to the page, the value is encrypted in such a way that only platforms that have authorization to process data (based on the consumer’s and publisher’s privacy preferences) are able to decrypt the string back to a stable ID. By doing so, ID5 enforces privacy preferences and regulations, ensuring that no downstream party can understand the ID without the proper legal basis to do so. When the ID is non-decryptable, the request is truly anonymized, preventing any personal data from being retrieved or processed.

Privacy Policy

For our Platform Privacy Policy, please visit https://id5.io/platform-privacy-policy.