From efa8d581cc903d37fe37d870b7ef605133fc2525 Mon Sep 17 00:00:00 2001 From: jdwieland8282 Date: Fri, 18 Dec 2020 12:02:09 -0700 Subject: [PATCH 1/4] Update userId.md adding description of the new user id permission schema. --- dev-docs/modules/userId.md | 55 +++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index affb408a41..e663b8ecd1 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -35,7 +35,7 @@ Also note that not all bidder adapters support all forms of user ID. See the tab As of Prebid 4.0, this module will attempt storage in the main domain of the publisher's website instead of a subdomain, unless this behavior is overriden by a submodule. -## User ID, GDPR, and Opt-Out +## User ID, GDPR, Permissions, and Opt-Out When paired with the [Consent Management](/dev-docs/modules/consentManagement.html) module, privacy rules are enforced: @@ -67,8 +67,61 @@ of sub-objects. The table below has the options that are common across ID system | storage.refreshInSeconds | Optional | Integer | The amount of time (in seconds) the user ID should be cached in storage before calling the provider again to retrieve a potentially updated value for their user ID. If set, this value should equate to a time period less than the number of days defined in `storage.expires`. By default the ID will not be refreshed until it expires. | value | Optional | Object | Used only if the page has a separate mechanism for storing a User ID. The value is an object containing the values to be sent to the adapters. | `{"tdid": "1111", "pubcid": {2222}, "IDP": "IDP-2233", "id5id": {"uid": "ID5-12345"}}` | + ## User ID Sub-Modules +## Permissions +Publishers can control which user ids are shared with the bid adapters they choose to work with by using the bidders array. The bidders array is part of the User id module config, publisher may choose to send an id to some bidders but not all, the default behavior is that each user id go to all bid adapters the publisher is working with. + +In this example the SharedId sub adapter is only allowed to be sent to the Rubicon. +``` +userIds: [ + { + name: "sharedId", + bidders: [ + 'rubicon' + ], + params: { + syncTime: 60//inseconds, + defaultis24hours + }, + storage: { + type: "cookie", + name: "sharedid", + expires: 28 + } + } +] +``` +The Rubicon bid adapter would then receive +``` +{ + "bidder": "rubicon", + ... + "userId": { + "sharedid": { + "id": "01*******", + "third": "01E*******" + } + }, + "userIdAsEids": [ + { + "source": "sharedid.org", + "uids": [ + { + "id": "01**********", + "atype": 1, + "ext": { + "third": "01***********" + } + } + ] + } + ], + ... +} +``` + ### BritePool BritePool ID, provided by [BritePool](https://britepool.com) is a Universal Identity resolution which does not depend on 3rd party cookies. From 15f55e264ce41a07f7219d3c6019cf377de5cd37 Mon Sep 17 00:00:00 2001 From: jdwieland8282 Date: Fri, 18 Dec 2020 12:28:22 -0700 Subject: [PATCH 2/4] Update userId.md updating "bidders" to "pbjs_bidders" --- dev-docs/modules/userId.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index e663b8ecd1..3f21cd1a30 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -78,7 +78,7 @@ In this example the SharedId sub adapter is only allowed to be sent to the Rubic userIds: [ { name: "sharedId", - bidders: [ + pbjs_bidders: [ 'rubicon' ], params: { From f9f782e38b3a691ed52aee0c1e1096454705231e Mon Sep 17 00:00:00 2001 From: bretg Date: Thu, 7 Jan 2021 17:44:42 -0500 Subject: [PATCH 3/4] wordsmithing added new option to the params table, some wordsmithing --- dev-docs/modules/userId.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index 3f21cd1a30..ce92ffd4ac 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -60,6 +60,7 @@ of sub-objects. The table below has the options that are common across ID system | --- | --- | --- | --- | --- | | name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"pubProvidedId"`, `"sharedId"`, `"unifiedId"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` | | params | Based on User ID sub-module | Object | | | +| pbjs_bidders | Optional | Array of Strings | An array of bidder codes to which this user ID may be sent. | `['bidderA', 'bidderB']` | | storage | Optional | Object | The publisher can specify some kind of local storage in which to store the results of the call to get the user ID. This can be either cookie or HTML5 storage. This is not needed when `value` is specified or the ID system is managing its own storage | | | storage.type | Required | String | Must be either `"cookie"` or `"html5"`. This is where the results of the user ID will be stored. | `"cookie"` | | storage.name | Required | String | The name of the cookie or html5 local storage where the user ID will be stored. | `"_unifiedId"` | @@ -73,7 +74,9 @@ of sub-objects. The table below has the options that are common across ID system ## Permissions Publishers can control which user ids are shared with the bid adapters they choose to work with by using the bidders array. The bidders array is part of the User id module config, publisher may choose to send an id to some bidders but not all, the default behavior is that each user id go to all bid adapters the publisher is working with. -In this example the SharedId sub adapter is only allowed to be sent to the Rubicon. +Use the optional `pbjs_bidders` parameter to define an array of bidder codes to which this user ID may be sent. + +In this example the SharedId sub adapter is only allowed to be sent to the Rubicon adapter. ``` userIds: [ { @@ -82,13 +85,13 @@ userIds: [ 'rubicon' ], params: { - syncTime: 60//inseconds, + syncTime: 60, // in seconds defaultis24hours }, storage: { type: "cookie", name: "sharedid", - expires: 28 + expires: 28 // in days } } ] From 4aedc6587187443a223ed9634e40c7f61771a646 Mon Sep 17 00:00:00 2001 From: jdwieland8282 Date: Thu, 7 Jan 2021 16:02:36 -0700 Subject: [PATCH 4/4] Update userId.md changing `pbjs_bidders` to `bidders` --- dev-docs/modules/userId.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index ce92ffd4ac..86c1a6b98f 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -60,7 +60,7 @@ of sub-objects. The table below has the options that are common across ID system | --- | --- | --- | --- | --- | | name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"pubProvidedId"`, `"sharedId"`, `"unifiedId"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` | | params | Based on User ID sub-module | Object | | | -| pbjs_bidders | Optional | Array of Strings | An array of bidder codes to which this user ID may be sent. | `['bidderA', 'bidderB']` | +| bidders | Optional | Array of Strings | An array of bidder codes to which this user ID may be sent. | `['bidderA', 'bidderB']` | | storage | Optional | Object | The publisher can specify some kind of local storage in which to store the results of the call to get the user ID. This can be either cookie or HTML5 storage. This is not needed when `value` is specified or the ID system is managing its own storage | | | storage.type | Required | String | Must be either `"cookie"` or `"html5"`. This is where the results of the user ID will be stored. | `"cookie"` | | storage.name | Required | String | The name of the cookie or html5 local storage where the user ID will be stored. | `"_unifiedId"` | @@ -74,14 +74,14 @@ of sub-objects. The table below has the options that are common across ID system ## Permissions Publishers can control which user ids are shared with the bid adapters they choose to work with by using the bidders array. The bidders array is part of the User id module config, publisher may choose to send an id to some bidders but not all, the default behavior is that each user id go to all bid adapters the publisher is working with. -Use the optional `pbjs_bidders` parameter to define an array of bidder codes to which this user ID may be sent. +Use the optional `bidders` parameter to define an array of bidder codes to which this user ID may be sent. In this example the SharedId sub adapter is only allowed to be sent to the Rubicon adapter. ``` userIds: [ { name: "sharedId", - pbjs_bidders: [ + bidders: [ 'rubicon' ], params: {