Skip to content

Commit 98106d8

Browse files
authored
misc user ID file fixes (prebid#2358)
1 parent 61c1e87 commit 98106d8

File tree

2 files changed

+89
-83
lines changed

2 files changed

+89
-83
lines changed

dev-docs/modules/userId.md

Lines changed: 73 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,7 @@ sidebarType : 1
1717

1818
## Overview
1919

20-
The User ID module supports multiple ways of establishing pseudonymous IDs for users, which is an important way of increasing the value of header bidding. Instead of having several exchanges sync IDs with dozens of demand sources, a publisher can choose to integrate with one of these ID schemes:
21-
22-
* **BritePool ID** - Britepool Identity Resolution userId submodule. Universal Identity resolution which does not depend on 3rd party cookies.
23-
* **Criteo ID for Exchanges** – specific id for Criteo and its partners that enables optimal take rate on all web browsers.
24-
* **ID+** - a universal identity solution that aims to empower the marketing ecosystem with a privacy-compliant mechanism to overcome identity resolution challenges arising from ID fragmentation, cookie restrictions, and increasingly stringent privacy and security regulation. Powered by zeotap and built upon the extensive marketing identity graph, ID+ offers a solution for the future of marketing.
25-
* **ID5 Universal ID** - a neutral identifier for digital advertising that can be used by publishers, brands and ad tech platforms (SSPs, DSPs, DMPs, Data Providers, etc.) to eliminate the need for cookie matching.
26-
* **Identity Link** – provided by LiveRamp, this module calls out to the ATS (Authenticated Traffic Solution) library or a URL to obtain the user’s IdentityLink envelope.
27-
* **IntentIQ ID** – An identity resolution pioneer, Intent IQ enables its partners to confidently identify clients and prospects who interact with their sites, apps and their brick and mortar establishments, whether across their various screens or in person.
28-
* **LiveIntent ID** – a user identifier tied to an active, encrypted email in our graph and functions in cookie-challenged environments and browsers.
29-
* **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.
30-
* **Merkle Merkury ID** - Merkury enables marketers, media owners, and publishers to own, build, and control a cookie-less Private Identity Graph. Merkury uses an organization’s first-party CRM data and valuable interactions such as logins, outbound email campaigns and media reach to create and grow a universe of person-based IDs for cross-channel targeting, personalization, measurement and more.
31-
* **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.
32-
* **PubCommon ID** – an ID is generated on the user’s browser and stored for later use on this publisher’s domain.
33-
* **Quantcast ID** - an ID independent of third-party cookies for publishers with Quantcast Measure tag.
34-
* **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).
35-
* **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.
20+
The User ID module supports multiple ways of establishing pseudonymous IDs for users, which is an important way of increasing the value of header bidding. Instead of having several exchanges sync IDs with dozens of demand sources, a publisher can choose to integrate with any of a number of ID schemes.
3621

3722
## How It Works
3823

@@ -73,7 +58,7 @@ of sub-objects. The table below has the options that are common across ID system
7358
{: .table .table-bordered .table-striped }
7459
| Param under userSync.userIds[] | Scope | Type | Description | Example |
7560
| --- | --- | --- | --- | --- |
76-
| name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"id5id"`, `identityLink`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"parrableId"`, `"quantcastId"`, `"netId"`, `"pubCommonId"`, `"unifiedId"`, `"zeotapIdPlus"` | `"unifiedId"` |
61+
| name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"haloId"`, `"id5id"`, `identityLink`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"sharedId"`, `"unifiedId"`, `"zeotapIdPlus"` | `"unifiedId"` |
7762
| params | Based on User ID sub-module | Object | | |
7863
| 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 | |
7964
| storage.type | Required | String | Must be either `"cookie"` or `"html5"`. This is where the results of the user ID will be stored. | `"cookie"` |
@@ -168,6 +153,40 @@ pbjs.setConfig({
168153
});
169154
{% endhighlight %}
170155

156+
### Halo ID from Audigent
157+
158+
Audigent is a next-generation data management platform and a first-of-a-kind "data agency" containing some of the most exclusive content-consuming audiences across desktop, mobile and social platforms. Our HaloId module allows for user id resolution and Audigent user data segmentation to be retrieved for users across the web. For assistance setting up your module please contact us at [[email protected]]([email protected]).
159+
160+
#### HaloId Configuration
161+
Add the Halo ID system to your Prebid.js package with:
162+
163+
{: .alert.alert-info :}
164+
gulp build --modules=userId,haloIdSystem
165+
166+
Add HaloId to the userSync configuration.
167+
168+
```
169+
pbjs.setConfig({
170+
userSync: {
171+
userIds: [{
172+
name: 'haloId',
173+
storage: {
174+
name: 'haloId',
175+
type: 'html5'
176+
}
177+
}]
178+
}
179+
});
180+
```
181+
182+
The `request.userId.haloId` will contain the Audigent HaloId and associated segments:
183+
```
184+
{
185+
"haloId": "user-halo-id",
186+
"auSeg": ["segment1", "segment2"]
187+
}
188+
```
189+
171190
### ID+
172191

173192
ID+, powered by zeotap, enables the marketing ecosystem to overcome challenges posed by the demise of identifiers and a fast-changing regulatory landscape. ID+ is an open invitation to the entire industry to build the future of identity together.
@@ -541,29 +560,6 @@ pbjs.setConfig({
541560
})
542561
```
543562

544-
### netID
545-
546-
The [European netID Foundation (EnID)](https://developerzone.netid.de/index.html) aims to establish with the netID an independent European alternative in the digital market for Demand and Supply side. With the netID Single-Sign-On, the EnID established an open standard for consumer logins for services of Buyers and Brands, that also includes user-centric consent management capabilities that results in a standardized, EU-GDPR compliant, IAB TCF aware, cross-device enabled Advertising Identifier, which can be leveraged by publishers and advertisers (and vendors supporting them) to efficiently deliver targeted advertising through programmatic systems to already more than 38 million Europeans on mobile and desktop devices.
547-
548-
The EnID is a non-profit organization which is open to any contributing party on both, the demand and supply side to make identity work for consumers as well as the advertising ecosystem.
549-
550-
#### netID Examples
551-
552-
1) Publisher stores netID via his own logic
553-
554-
{% highlight javascript %}
555-
pbjs.setConfig({
556-
userSync: {
557-
userIds: [{
558-
name: "netId",
559-
value: {
560-
"netId":"fH5A3n2O8_CZZyPoJVD-eabc6ECb7jhxCicsds7qSg"
561-
}
562-
}]
563-
}
564-
});
565-
{% endhighlight %}
566-
567563
### Lotame Panorama ID
568564

569565
Lotame Panorama is a suite of data-enrichment solutions for digital advertising that empowers marketers, agencies, publishers and media companies to transform consumer personas into addressable audiences. At the heart of Lotame Panorama is the Panorama ID, a people-based identifier powered by deterministic and probabilistic data, available across the cookie-challenged web and all browsers.
@@ -621,6 +617,29 @@ pbjs.setConfig({
621617
});
622618
{% endhighlight %}
623619

620+
### netID
621+
622+
The [European netID Foundation (EnID)](https://developerzone.netid.de/index.html) aims to establish with the netID an independent European alternative in the digital market for Demand and Supply side. With the netID Single-Sign-On, the EnID established an open standard for consumer logins for services of Buyers and Brands, that also includes user-centric consent management capabilities that results in a standardized, EU-GDPR compliant, IAB TCF aware, cross-device enabled Advertising Identifier, which can be leveraged by publishers and advertisers (and vendors supporting them) to efficiently deliver targeted advertising through programmatic systems to already more than 38 million Europeans on mobile and desktop devices.
623+
624+
The EnID is a non-profit organization which is open to any contributing party on both, the demand and supply side to make identity work for consumers as well as the advertising ecosystem.
625+
626+
#### netID Examples
627+
628+
1) Publisher stores netID via his own logic
629+
630+
{% highlight javascript %}
631+
pbjs.setConfig({
632+
userSync: {
633+
userIds: [{
634+
name: "netId",
635+
value: {
636+
"netId":"fH5A3n2O8_CZZyPoJVD-eabc6ECb7jhxCicsds7qSg"
637+
}
638+
}]
639+
}
640+
});
641+
{% endhighlight %}
642+
624643

625644
### Parrable ID
626645

@@ -782,7 +801,7 @@ pbjs.setConfig({
782801

783802
### Shared ID User ID Submodule
784803

785-
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.
804+
The Shared ID User Module generates a UUID that can be utilized to improve user matching. This module enables timely synchronization and handles opt-out via sharedId.org. This module does not require any registration.
786805

787806
#### Building Prebid with Shared Id Support
788807
Your Prebid build must include the modules for both **userId** and **sharedId** submodule.
@@ -914,40 +933,6 @@ pbjs.setConfig({
914933
});
915934
{% endhighlight %}
916935

917-
### Audigent HaloId
918-
919-
Audigent is a next-generation data management platform and a first-of-a-kind "data agency" containing some of the most exclusive content-consuming audiences across desktop, mobile and social platforms. Our HaloId module allows for user id resolution and Audigent user data segmentation to be retrieved for users across the web. For assistance setting up your module please contact us at [[email protected]]([email protected]).
920-
921-
#### HaloId Configuration
922-
Add the Halo ID system to your Prebid.js package with:
923-
924-
{: .alert.alert-info :}
925-
gulp build --modules=userId,haloIdSystem
926-
927-
Add HaloId to the userSync configuration.
928-
929-
```
930-
pbjs.setConfig({
931-
userSync: {
932-
userIds: [{
933-
name: 'haloId',
934-
storage: {
935-
name: 'haloId',
936-
type: 'html5'
937-
}
938-
}]
939-
}
940-
});
941-
```
942-
943-
The `request.userId.haloId` will contain the Audigent HaloId and associated segments:
944-
```
945-
{
946-
"haloId": "user-halo-id",
947-
"auSeg": ["segment1", "segment2"]
948-
}
949-
```
950-
951936
## Adapters Supporting the User ID Sub-Modules
952937

953938
{% assign bidder_pages = site.pages | where: "layout", "bidder" %}
@@ -972,17 +957,20 @@ Bidders that want to support the User ID module in Prebid.js, need to update the
972957
| --- | --- | --- | --- | --- | --- |
973958
| BritePool ID | BritePool | bidRequest.userId.britepoolid | `"1111"` |
974959
| CriteoID | Criteo | bidRequest.userId.criteoId | `"1111"` |
960+
| Halo ID | Audigent | bidRequest.userId.haloId | `{"haloId":"user-halo-id", "auSeg":["segment1","segment2"]}` |
975961
| ID+ | Zeotap | bidRequest.userId.IDP | `"1111"` |
976962
| ID5 ID | ID5 | bidRequest.userId.id5id | `"1111"` |
977963
| IdentityLink | Trade Desk | bidRequest.userId.idl_env | `"1111"` |
978-
| LiveIntent ID | Live Intent | bidRequest.userId.lipb.lipbid | `"1111"` |
979964
| IntentIQ ID | IntentIQ | bidRequest.userId.intentiqid | `"1111"` |
965+
| LiveIntent ID | Live Intent | bidRequest.userId.lipb.lipbid | `"1111"` |
980966
| Lotame Panorama ID | Lotame | bidRequest.userId.lotamePanoramaId | `"e4b96a3d9a8e8761cef5656fb05f16d53938069f1684df4b2257e276e8b89a0e"` |
967+
| merkleID | Merkle | bidRequest.userId.merkleId | `"1111"` |
968+
| netID | netID | bidRequest.userId.netId | `"fH5A3n2O8_CZZyPoJVD-eabc6ECb7jhxCicsds7qSg"` |
981969
| Parrable ID | Parrable | bidRequest.userId.parrableId | `{"eid":"01.1594654046.cd0972d861e98ff3723a368a6efa69287a0df3f1cac9142afc2e7aed1caa8dd1b7fc0590b3baf67525f53e1228024c2805b6041206c7a23e34bb823b0659547d7d1d0dac2a11938e867f"}` |
982970
| PubCommon ID | n/a | bidRequest.userId.pubcid | `"1111"` |
983-
| Unified ID | Trade Desk | bidRequest.userId.tdid | `"1111"` |
984-
| netID | netID | bidRequest.userId.netId | `"fH5A3n2O8_CZZyPoJVD-eabc6ECb7jhxCicsds7qSg"` |
971+
| Quantcast ID | n/a | bidRequest.userId.quantcastId | `"1111"` |
985972
| Shared ID | SharedId | bidRequest.userId.sharedid | `{"id":"01EAJWWNEPN3CYMM5N8M5VXY22","third":"01EAJWWNEPN3CYMM5N8M5VXY22"}` |
973+
| Unified ID | Trade Desk | bidRequest.userId.tdid | `"1111"` |
986974

987975
For example, the adapter code might do something like:
988976

@@ -1025,13 +1013,19 @@ Bidders that want to support the User ID module in Prebid Server, need to update
10251013
uids: [{
10261014
id: "01.1594654046.cd0972d861e98ff3723a368a6efa69287a0df3f1cac9142afc2e7aed1caa8dd1b7fc0590b3baf67525f53e1228024c2805b6041206c7a23e34bb823b0659547d7d1d0dac2a11938e867f"
10271015
}]
1016+
},{
1017+
"source": "audigent.com",
1018+
"atype": 1,
1019+
"uids": [{
1020+
"id": "11111111"
1021+
}]
10281022
},{
10291023
"source": "identityLink",
10301024
"uids": [{
10311025
"id": "11111111"
10321026
}]
10331027
},{
1034-
"source": "criteo",
1028+
"source": "criteo.com",
10351029
"uids": [{
10361030
"id": "11111111"
10371031
}]

download.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -517,13 +517,13 @@ Prebid.js is open source software that is offered for free as a convenience. Whi
517517
<label><input type="checkbox" moduleCode="britepoolIdSystem" class="bidder-check-box"> User ID: BritePool ID</label>
518518
</div></div>
519519
<div class="col-md-4"><div class="checkbox">
520-
<label><input type="checkbox" moduleCode="digiTrustIdSystem" class="bidder-check-box"> User ID: DigiTrust ID</label>
520+
<label><input type="checkbox" moduleCode="criteoIdSystem" class="bidder-check-box"> User ID: Criteo ID</label>
521521
</div></div>
522522
<div class="col-md-4"><div class="checkbox">
523-
<label><input type="checkbox" moduleCode="id5IdSystem" class="bidder-check-box"> User ID: ID5 ID</label>
523+
<label><input type="checkbox" moduleCode="haloIdSystem" class="bidder-check-box"> User ID: Halo ID</label>
524524
</div></div>
525525
<div class="col-md-4"><div class="checkbox">
526-
<label><input type="checkbox" moduleCode="criteoIdSystem" class="bidder-check-box"> User ID: Criteo ID</label>
526+
<label><input type="checkbox" moduleCode="id5IdSystem" class="bidder-check-box"> User ID: ID5 ID</label>
527527
</div></div>
528528
<div class="col-md-4"><div class="checkbox">
529529
<label><input type="checkbox" moduleCode="identityLinkIdSystem" class="bidder-check-box"> User ID: IdentityLink ID</label>
@@ -535,19 +535,31 @@ Prebid.js is open source software that is offered for free as a convenience. Whi
535535
<label><input type="checkbox" moduleCode="liveIntentIdSystem" class="bidder-check-box"> User ID: LiveIntent ID</label>
536536
</div></div>
537537
<div class="col-md-4"><div class="checkbox">
538+
<label><input type="checkbox" moduleCode="lotamePanoramaId" class="bidder-check-box"> User ID: Lotame ID</label>
539+
</div></div>
540+
<div class="col-md-4"><div class="checkbox">
541+
<label><input type="checkbox" moduleCode="merkleIdSystem" class="bidder-check-box"> User ID: Merkle ID</label>
542+
</div></div>
543+
<div class="col-md-4"><div class="checkbox">
544+
<label><input type="checkbox" moduleCode="netIdSystem" class="bidder-check-box"> User ID: netID</label>
545+
</div></div>
546+
<div class="col-md-4"><div class="checkbox">
538547
<label><input type="checkbox" moduleCode="parrableIdSystem" class="bidder-check-box"> User ID: Parrable ID</label>
539548
</div></div>
540549
<div class="col-md-4"><div class="checkbox">
541550
<label><input type="checkbox" moduleCode="pubCommonIdSystem" class="bidder-check-box"> User ID: PubCommon ID</label>
542551
</div></div>
543552
<div class="col-md-4"><div class="checkbox">
553+
<label><input type="checkbox" moduleCode="quantcastId" class="bidder-check-box"> User ID: Quantcast ID</label>
554+
</div></div>
555+
<div class="col-md-4"><div class="checkbox">
544556
<label><input type="checkbox" moduleCode="sharedIdSystem" class="bidder-check-box"> User ID: Shared ID</label>
545557
</div></div>
546558
<div class="col-md-4"><div class="checkbox">
547559
<label><input type="checkbox" moduleCode="unifiedIdSystem" class="bidder-check-box"> User ID: Unified ID</label>
548560
</div></div>
549561
<div class="col-md-4"><div class="checkbox">
550-
<label><input type="checkbox" moduleCode="netIdSystem" class="bidder-check-box"> User ID: netID</label>
562+
<label><input type="checkbox" moduleCode="zeotapIdPlusIdSystem" class="bidder-check-box"> User ID: Zeotap ID+</label>
551563
</div></div>
552564
</div>
553565

0 commit comments

Comments
 (0)