From 9023c4b9c2164ad0b728a8c5559a556690cd6809 Mon Sep 17 00:00:00 2001 From: Scott Menzer Date: Thu, 17 Sep 2020 15:24:58 +0200 Subject: [PATCH] update id5 userid docs with new links, updated object structure --- dev-docs/modules/userId.md | 64 +++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index 7505da1057..b9d92755c3 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -29,7 +29,7 @@ The User ID module supports multiple ways of establishing pseudonymous IDs for u * **Lotame Panorama ID** - a people-based identifier available across all browsers -- including when third-party cookies are not available -- to connect and activate first, second, and third party data for programmatic advertising. * **Parrable ID** - an encrypted pseudonymous ID that is consistent across all browsers and webviews on a device for every publisher the device visits. This module contacts Parrable to obtain the Parrable EID belonging to the specific device which can then be used by the bidder. * **PubCommon ID** – an ID is generated on the user’s browser and stored for later use on this publisher’s domain. -* **Quantcast ID** - an ID independent of third-party cookies for publishers with Quantcast Measure tag. +* **Quantcast ID** - an ID independent of third-party cookies for publishers with Quantcast Measure tag. * **Unified ID** – a simple cross-vendor approach – it calls out to a URL that responds with that user’s ID in one or more ID spaces (e.g. adsrvr.org). * **netID** – provides an open, standardized, EU-GDPR compliant, IAB TCF aware, cross-device enabled Advertising Identifier Framework, which can be leveraged by publishers and advertisers (and vendors supporting them) to efficiently deliver targeted advertising bought through programmatic systems. @@ -85,7 +85,7 @@ of sub-objects. The table below has the options that are common across ID system ### BritePool -BritePool ID, provided by [BritePool](https://britepool.com) is a Universal Identity resolution which does not depend on 3rd party cookies. +BritePool ID, provided by [BritePool](https://britepool.com) is a Universal Identity resolution which does not depend on 3rd party cookies. Add it to your Prebid.js package with: @@ -94,7 +94,7 @@ gulp build --modules=britepoolIdSystem #### BritePool Registration -Please reach out to [prebid@britepool.com](mailto:prebid@britepool.com) and request your `api_key`. +Please reach out to [prebid@britepool.com](mailto:prebid@britepool.com) and request your `api_key`. The BritePool privacy policy is at [https://britepool.com/services-privacy-notice/](https://britepool.com/services-privacy-notice/). @@ -201,7 +201,7 @@ pbjs.setConfig({ ### ID5 Universal ID -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. The ID5 Universal ID is designed to respect users' privacy choices and publishers’ preferences throughout the advertising value chain. For more information about the ID5 Universal ID and detailed integration docs, please visit [our documentation](https://console.id5.io/docs/public/prebid). We also recommend that you sign up for our [release notes](https://id5.io/universal-id/release-notes) to stay up-to-date with any changes to the implementation of the ID5 Universal ID in Prebid. +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. The ID5 Universal ID is designed to respect users' privacy choices and publishers’ preferences throughout the advertising value chain. For more information about the ID5 Universal ID and detailed integration docs, please visit [our documentation](https://wiki.id5.io/x/BIAZ). We also recommend that you sign up for our [release notes](https://id5.io/universal-id/release-notes) to stay up-to-date with any changes to the implementation of the ID5 Universal ID in Prebid. #### ID5 Universal ID Registration @@ -224,7 +224,7 @@ The following configuration parameters are available: | name | Required | String | The name of this module: `"id5Id"` | `"id5Id"` | | params | Required | Object | Details for the ID5 Universal ID. | | | params.partner | Required | Number | This is the ID5 Partner Number obtained from registering with ID5. | `173` | -| params.pd | Optional | String | Publisher-supplied data used for linking ID5 IDs across domains. See [our documentation](https://wiki.id5.io/display/PD/Prebid.js+UserId+Module) for details on generating the string. Omit the parameter or leave as an empty string if no data to supply | `"MT1iNTBjY..."` | +| params.pd | Optional | String | Publisher-supplied data used for linking ID5 IDs across domains. See [our documentation](https://wiki.id5.io/x/BIAZ) for details on generating the string. Omit the parameter or leave as an empty string if no data to supply | `"MT1iNTBjY..."` | {: .alert.alert-info :} **NOTE:** The ID5 Universal ID that is delivered to Prebid will be encrypted by ID5 with a rotating key to avoid unauthorized usage and to enforce privacy requirements. Therefore, we strongly recommend setting `storage.refreshInSeconds` to `8` hours (`8*3600` seconds) to ensure all demand partners receive an ID that has been encrypted with the latest key, has up-to-date privacy signals, and allows them to transact against it. @@ -261,7 +261,11 @@ pbjs.setConfig({ userSync: { userIds: [{ name: "id5Id", - value: { "id5id": "ID5-8ekgswyBTQqnkEKy0ErmeQ1GN5wV4pSmA-RE4eRedA" } + value: { + id5id: { + uid: "ID5-8ekgswyBTQqnkEKy0ErmeQ1GN5wV4pSmA-RE4eRedA" + } + } }] } }); @@ -429,11 +433,11 @@ The adapters can be implemented to use the lipibid as the identifier and segment Please register with us if you’re not a LiveIntent customer already: [https://www.liveintent.com/prebid-registration/](https://www.liveintent.com/prebid-registration/) -When adding LiveIntent’s ID to your Prebid.js package, you disclose or make available Personal Information to LiveIntent. This information made available to LiveIntent is used to (i) connect with and reference data that already exists in LiveIntent’s graph (the “LiveIntent Graph”), and (ii) authenticate and validate data in aggregate to improve the performance of the services LiveIntent provides. By activating LiveIntent’s module, you hereby confirm that with regard to all individuals to whom Personal Information relates, you have, at or before the point of collecting Personal Information or making Personal Information available to LiveIntent, provided any legally required notices, obtained any legally required consents, and provided individuals with an opportunity to opt-out of the sharing of Personal Information, if such an opt-out is required under applicable laws, such that LiveIntent can provide service to you as described here and in LiveIntent’s privacy policies for the services which can be found at [https://www.liveintent.com/services-privacy-policy/](https://www.liveintent.com/services-privacy-policy/) +When adding LiveIntent’s ID to your Prebid.js package, you disclose or make available Personal Information to LiveIntent. This information made available to LiveIntent is used to (i) connect with and reference data that already exists in LiveIntent’s graph (the “LiveIntent Graph”), and (ii) authenticate and validate data in aggregate to improve the performance of the services LiveIntent provides. By activating LiveIntent’s module, you hereby confirm that with regard to all individuals to whom Personal Information relates, you have, at or before the point of collecting Personal Information or making Personal Information available to LiveIntent, provided any legally required notices, obtained any legally required consents, and provided individuals with an opportunity to opt-out of the sharing of Personal Information, if such an opt-out is required under applicable laws, such that LiveIntent can provide service to you as described here and in LiveIntent’s privacy policies for the services which can be found at [https://www.liveintent.com/services-privacy-policy/](https://www.liveintent.com/services-privacy-policy/) #### How does LiveIntent ID work -The LiveIntent ID sub-module resolves the identity of audiences by connecting impression opportunities to a stable identifier (nonID). In order to provide resolution one or more first-party cookies are used to create a stable identifier. +The LiveIntent ID sub-module resolves the identity of audiences by connecting impression opportunities to a stable identifier (nonID). In order to provide resolution one or more first-party cookies are used to create a stable identifier. How does LiveIntent ID sub-module decide, which first-party cookies to use: 1. By default LiveIntent ID sub-module generates its own first-party identifier on the publisher’s domain. Publishers have the option to disable the cookie generation when configuring the LiveIntent ID sub-module. @@ -481,11 +485,11 @@ pbjs.setConfig({ params: { publisherId: "9896876" }, - storage: { - type: “cookie”, - name: “pbjs_li_nonid”, //create a cookie with this name - expires: 1 // cookie is stored for 1 day - } + storage: { + type: “cookie”, + name: “pbjs_li_nonid”, //create a cookie with this name + expires: 1 // cookie is stored for 1 day + } }] } }) @@ -501,11 +505,11 @@ pbjs.setConfig({ publisherId: "9896876", identifiersToResolve: ["my-own-cookie"] }, - storage: { - type: “cookie”, - name: “pbjs_li_nonid”, //create a cookie with this name - expires: 1 // cookie is stored for 1 day - } + storage: { + type: “cookie”, + name: “pbjs_li_nonid”, //create a cookie with this name + expires: 1 // cookie is stored for 1 day + } }] } }) @@ -530,11 +534,11 @@ pbjs.setConfig({ appId: "a-0012" } }, - storage: { - type: “cookie”, - name: “pbjs_li_nonid”, //create a cookie with this name - expires: 1 // cookie is stored for 1 day - } + storage: { + type: “cookie”, + name: “pbjs_li_nonid”, //create a cookie with this name + expires: 1 // cookie is stored for 1 day + } }] } }) @@ -753,17 +757,17 @@ pbjs.setConfig({ ### Shared ID User ID Submodule -Shared ID User ID Module generates a UUID that can be utilized to improve user matching.This module enables timely synchronization which handles sharedId.org optout. This module does not require any registration. +Shared ID User ID Module generates a UUID that can be utilized to improve user matching.This module enables timely synchronization which handles sharedId.org optout. This module does not require any registration. #### Building Prebid with Shared Id Support -Your Prebid build must include the modules for both **userId** and **sharedId** submodule. +Your Prebid build must include the modules for both **userId** and **sharedId** submodule. Add it to your Prebid.js package with: ex: $ gulp build --modules=userId,sharedIdSystem #### Prebid Params -Individual params may be set for the Shared ID User ID Submodule. +Individual params may be set for the Shared ID User ID Submodule. ``` pbjs.setConfig({ usersync: { @@ -909,8 +913,12 @@ Bidders that want to support the User ID module in Prebid.js, need to update the | --- | --- | --- | --- | --- | --- | | BritePool ID | BritePool | bidRequest.userId.britepoolid | `"1111"` | | CriteoID | Criteo | bidRequest.userId.criteoId | `"1111"` | +<<<<<<< HEAD | ID+ | Zeotap | bidRequest.userId.IDP | `"1111"` | | ID5 ID | ID5 | bidRequest.userId.id5id | `"1111"` | +======= +| ID5 ID | ID5 | bidRequest.userId.id5id | `{ uid: "1111", ext: { linkType: 2 } }` | +>>>>>>> 12ba25f7... update id5 userid docs with new links, updated object structure | IdentityLink | Trade Desk | bidRequest.userId.idl_env | `"1111"` | | LiveIntent ID | Live Intent | bidRequest.userId.lipb.lipbid | `"1111"` | | IntentIQ ID | IntentIQ | bidRequest.userId.intentiqid | `"1111"` | @@ -1028,7 +1036,7 @@ pbjs.getUserIds() // returns object like bidRequest.userId. e.g. {"pubcid":"1111 You can use `getUserIdsAsEids()` to get the user IDs stored by Prebid User ID module in ORTB Eids format. Refer [eids.md](https://github.com/prebid/Prebid.js/blob/master/modules/userId/eids.md) for output format. ``` -pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g. +pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g. [ { source: 'pubcid.org', @@ -1049,7 +1057,7 @@ pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g. }] } ] -``` +``` ## Passing UserIds to Google Ad Manager for targeting