As part of our synchronization process, we will need to make requests to your system that will return back to ID5 with your UID. There are several methods supported for this process that are explained in more detail.
You must always redirect users to the callback URL provided by ID5, even if the user is unknown to your system. If the user is unknown, you should create an identity for this new user and return their new UID to ID5 in the callback, or pass a
0
as the UID.
ID5 will check that you have consent before performing cookie synchronizations, in addition to checking that ID5 has consent before processing. Within the pixel URL that you provide us during integration setup, you may specify parameters for ID5 to pass you a GDPR flag and an IAB TCF consent string. Typically, the two querystring fields are gdpr
(with a value of 0
or 1
) and gdpr_consent
, respectively, but if you have a different setup, please let us know.
If GDPR applies to a particular request, we have a consent string, and you do not have consent, ID5 will not call your pixel. However, if we do call you and you then determine that you do not have proper consent for you to process data, you should still redirect back to ID5 like normal, and pass an empty string as the value for your UID.
We support three methods for callback URLs that you must supply us (step 2 in the diagram above). In all cases, we only support making calls to HTTPS endpoints.
In these scenarios, ID5 will dynamically generate a callback URL to our system, providing a mechanism for you to include your UID back to us to complete the sync. We will pass this callback URL in the querystring of the pixel call to your system.
There are three types of callback URLs we can provide:
In this scenario, ID5 will call your pixel, passing an encoded URL with a macro into a parameter you define. Your endpoint is expected to decode the URL, replace the macro within the ID5 URL with your UID, and then redirect the browser with a 302 HTTP response to the URL.
Parameter | Type | Description |
---|---|---|
ENCODEDURL | String | A dynamically generated encoded URL that ID5 will populate in real time during the cascade process |
{{UID}} | String | UID macro to be replaced with the encoded user identifier from your system. This will be placed inside the {ENCODEDURL} value by ID5. The macro text (i.e. {{UID}} ) can be any string of text that you will replace with your own ID; this will need to be communicated to ID5 during the pixel set up phase. |
TCF_CONSENT_STRING | String | (required in EEA) A valid IAB TCF consent string. |
GDPR_FLAG | Integer | (optional) Whether or not GDPR applies to this request. We will send either 0 or 1. |
GPP_CONSENT_STRING | String | (optional) A valid IAB Global Privacy Platform consent string. |
GPP_APPLICABLE_SECTIONS | String | (optional) The GPP section ID(s) (integers) in force for the current transaction. In most cases, this field should have a single section ID. In rare occasions where such a single section ID can not be determined, the field may contain up to 2 values, separated by a comma. More information in GPP documentation |
{{UID}}
with your UID for the user (in this example, ABCDE-12345), then redirect the user to:In this scenario, ID5 will call your pixel, appending an unencoded url with a macro onto your endpoint. Your endpoint is expected to replace the macro within the ID5 URL with your UID and then redirect the browser with a 302 HTTP response to the URL.
Parameter | Type | Description |
---|---|---|
UNENCODEDURL | String | A dynamically generated unencoded URL that ID5 will populate in real time during the cascade process |
{{UID}} | String | UID macro to be replaced with the encoded user identifier from your system. This will be placed inside the {ENCODEDURL} value by ID5. The macro text (i.e. {{UID}} ) can be any string of text that you will replace with your own ID; this will need to be communicated to ID5 during the pixel set up phase. |
TCF_CONSENT_STRING | String | (required in EEA) A valid IAB TCF consent string. |
GDPR_FLAG | Integer | (optional) Whether or not GDPR applies to this request. We will send either 0 or 1. |
GPP_CONSENT_STRING | String | (optional) A valid IAB Global Privacy Platform consent string. |
GPP_APPLICABLE_SECTIONS | String | (optional) The GPP section ID(s) (integers) in force for the current transaction. In most cases, this field should have a single section ID. In rare occasions where such a single section ID can not be determined, the field may contain up to 2 values, separated by a comma. More information in GPP documentation |
{{UID}}
with your UID for the user (in this example, ABCDE-12345), then redirect the user to:In this scenario, ID5 will call your pixel, appending an encoded url without a macro onto your endpoint. Your endpoint is expected to decode the callback URL, append the ID5 URL with your UID, and then redirect the browser with a 302 HTTP response to the URL.
Parameter | Type | Description |
---|---|---|
TCF_CONSENT_STRING | String | (required in EEA) A valid IAB TCF consent string. |
GDPR_FLAG | Integer | (optional) Whether or not GDPR applies to this request. We will send either 0 or 1. |
ENCODEDURL | String | A dynamically generated unencoded URL that ID5 will populate in real time during the cascade process |
GPP_CONSENT_STRING | String | (optional) A valid IAB Global Privacy Platform consent string. |
GPP_APPLICABLE_SECTIONS | String | (optional) The GPP section ID(s) (integers) in force for the current transaction. In most cases, this field should have a single section ID. In rare occasions where such a single section ID can not be determined, the field may contain up to 2 values, separated by a comma. More information in GPP documentation |
In these scenarios, you will hardcode a portion or the entire URL to call back to ID5 after receiving a cookie sync request from us.
There are two types of static callback URLs we support:
In this scenario, your pixel endpoint will be expected to redirect the browser with a 302 HTTP response to a hardcoded URL that we provide below, while appending any querystring parameters we provided on the call to your servers.
This method is preferred over the normal static callback integration, as it doesn't rely on cookies to store the cascade state.
https://id5-sync.com/k/[id5AccountNum].gif?puid=[encodedPlatformUid]&[allQsParamsFromInitialCall]
Parameter | Type | Description |
---|---|---|
id5AccountNum | Integer | Your ID account number, provided by ID5 |
encodedPlatformUid | String | Your UID for the user, encoded as a url parameter |
allQsParamsFromInitialCall | String | One or more querystring parameters that were originally passed to your platform on the request to you. These should not be modified |
https://id5-sync.com/k/113.gif?puid=ABCDE-12345&p=123&c=2&ca=8
In this scenario, your pixel endpoint will be expected to redirect the browser with a 302 HTTP response to a hardcoded URL that we provide below.
https://id5-sync.com/k/[id5AccountNum].gif?puid=[encodedPlatformUid]
Parameter | Type | Description |
---|---|---|
id5AccountNum | Integer | Your ID account number, provided by ID5 |
encodedPlatformUid | String | Your UID for the user, encoded as a url parameter |
Note: With this integration method it's not possible to directly call your pixel for testing the full redirect, as it requires us to set cookies to continue the cascade. If you have questions, reach out to support@id5.io.
To test the cascade process by yourself, you can emulate the cascade by using the following values as the ID5 redirect URL, placing your UID macro at the end in place of uidValueHere
:
[UNENCODEDURL] = https://id5-sync.com/tcb/t?puid=uidValueHere
[ENCODEDURL] = https%3A%2F%2Fid5-sync.com%2Ftcb%2Ft%3Fpuid%3DuidValueHere
The browser should reply with your own user ID. This will allow automated test on both side.
Load your pixel endpoint in a browser, substituting the [ENCODEDURL]
or [UNENCODEDURL]
macros from above, making sure to include your UID at the end of our test callback URL.
If you would like to receive the ID5 ID when we cascade to your platform, you will need to provide us with a parameter in your pixel URL that we can pass it into. Simply inform ID5 where we should place the ID5 ID in the querystring and we’ll make the necessary updates on our end.
If you would like to retrieve the ID5 ID, please let your ID5 representative know so we can configure your account accordingly. There may be a commercial impact to turning this on.
If you are using an Encoded URL with a macro from above, to receive the ID5 ID your url may look like this instead (adding an external_id
parameter to the url):