Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add UserId Submodule AdmixerId #2666

Merged
merged 14 commits into from
Apr 7, 2021
51 changes: 50 additions & 1 deletion dev-docs/modules/userId.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ of sub-objects. The table below has the options that are common across ID system
{: .table .table-bordered .table-striped }
| Param under userSync.userIds[] | Scope | Type | Description | Example |
| --- | --- | --- | --- | --- |
| name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"pubProvidedId"`, `"sharedId"`, `"tapadId"`, `"unifiedId"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` |
| name | Required | String | May be: `"admixerId"`, `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"pubProvidedId"`, `"sharedId"`, `"tapadId"`, `"unifiedId"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` |
| params | Based on User ID sub-module | Object | | |
| 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"` |
Expand All @@ -69,6 +69,54 @@ of sub-objects. The table below has the options that are common across ID system

## User ID Sub-Modules

### AdmixerID

Admixer ID, provided by [Admixer](https://admixer.com/), is a universal ID solution that doesn’t rely on 3rd party cookies and gives publishers access to a wide range of Admixer’s demand sources, amplifying audience segmentation, targeting and measurement.
This sub-module enables the Admixer ID to be available in the bid request.
jdwieland8282 marked this conversation as resolved.
Show resolved Hide resolved

The Admixer privacy policy is at https://admixer.com/privacy/

Add Admixer ID module to your Prebid.js package with:

{: .alert.alert-info :}
gulp build --modules=admixerIdSystem

#### AdmixerID Configuration

{: .table .table-bordered .table-striped }
| Param under userSync.userIds[] | Scope | Type | Description | Example |
| --- | --- | --- | --- | --- |
| name | Required | String | `"admixerId"` | `"admixerId"` |
| params | Required | Object | Details for admixer initialization. | |
| params.pid | Required | String | id provided by admixer | "458frgde-djd7-3ert-gyhu-12fghy76dnmko" |
| params.e | Optional | String | The hashed email address of a user. We can accept the hashes, which use the following hashing algorithms: md5, sha1, sha256. | "3d400b57e069c993babea0bd9efa79e5dc698e16c042686569faae20391fd7ea" |
| params.p | Optional | String | The hashed phone number of a user. We can accept the hashes, which use the following hashing algorithms: md5, sha1, sha256. | "05de6c07eb3ea4bce45adca4e0182e771d80fbb99e12401416ca84ddf94c3eb9" |

#### AdmixerID Examples

1) Individual params may be set for the Admixer ID Submodule.

{% highlight javascript %}
pbjs.setConfig({
userSync: {
userIds: [{
name: "admixerId",
storage: {
name: "__adm__admixer",
type: "cookie",
expires: 30
},
params: {
pid: "4D393FAC-B6BB-4E19-8396-0A4813607316", // example id
e: "3d400b57e069c993babea0bd9efa79e5dc698e16c042686569faae20391fd7ea", // example hashed email (sha256)
jdwieland8282 marked this conversation as resolved.
Show resolved Hide resolved
p: "05de6c07eb3ea4bce45adca4e0182e771d80fbb99e12401416ca84ddf94c3eb9" //example hashed phone (sha256)
}
}],
syncDelay: 3000 // 3 seconds after the first auction
}
});
{% endhighlight %}

### BritePool

BritePool ID, provided by [BritePool](https://britepool.com) is a Universal Identity resolution which does not depend on 3rd party cookies.
Expand Down Expand Up @@ -1303,6 +1351,7 @@ Bidders that want to support the User ID module in Prebid.js, need to update the
<div class="table-responsive" markdown="1">
| ID System Name | ID System Host | Prebid.js Attr | Example Value |
| --- | --- | --- | --- | --- | --- |
| Admixer ID | Admixer | bidRequest.userId.__adm__admixer | `"1111"` |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pending update based on my comments in the pbjs pr, this may need to change to bidRequest.userId.admixerId to follow conventions

| BritePool ID | BritePool | bidRequest.userId.britepoolid | `"1111"` |
| CriteoID | Criteo | bidRequest.userId.criteoId | `"1111"` |
| Halo ID | Audigent | bidRequest.userId.haloId | `{"haloId":"user-halo-id", "auSeg":["segment1","segment2"]}` |
Expand Down
3 changes: 3 additions & 0 deletions download.md
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,9 @@ Prebid.js is open source software that is offered for free as a convenience. Whi
<h4>User ID Modules</h4>
<div class="row">
<div class="col-md-4"><div class="checkbox">
<label><input type="checkbox" moduleCode="admixerIdSystem" class="bidder-check-box"> Admixer ID</label>
</div></div>
<div class="col-md-4"><div class="checkbox">
<label><input type="checkbox" moduleCode="britepoolIdSystem" class="bidder-check-box"> BritePool ID</label>
</div></div>
<div class="col-md-4"><div class="checkbox">
Expand Down