You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update documentation for publisher userID api (prebid#3698)
* Update documentation for publisher userID api
* Update dev-docs/modules/userId.md
Fix backtick
Co-authored-by: Scott Menzer <smenzer@gmail.com>
Co-authored-by: Scott Menzer <smenzer@gmail.com>
Copy file name to clipboardExpand all lines: dev-docs/modules/userId.md
+19-3Lines changed: 19 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ The User ID module supports multiple ways of establishing pseudonymous IDs for u
29
29
1. If GDPR applies, the consent signal from the CMP is hashed and stored in a cookie called `_pbjs_userid_consent_data`. This is required so that ID sub-modules may be called to refresh their ID if the user's consent preferences have changed from the previous page, and ensures cached IDs are no longer used if consent is withdrawn.
30
30
1. An object containing one or more IDs (`bidRequest.userId`) is made available to Prebid.js adapters and Prebid Server S2S adapters.
31
31
1. In addition to `bidRequest.userId`, `bidRequest.userIdAsEids` is made available to Prebid.js adapters and Prebid Server S2S adapters. `bidRequest.userIdAsEids` has userIds in ORTB EIDS format.
32
-
1. The page can call [pbjs.getUserIds()](/dev-docs/publisher-api-reference/getUserIds.html) or [pbjs.getUserIdsAsEids()](/dev-docs/publisher-api-reference/getUserIdsAsEids.html)
32
+
1. The page can call [pbjs.getUserIds()](/dev-docs/publisher-api-reference/getUserIds.html), [pbjs.getUserIdsAsEids()](/dev-docs/publisher-api-reference/getUserIdsAsEids.html), or [pbjs.getUserIdsAsync()](/dev-docs/publisher-api-reference/getUserIdsAsync.html).
33
33
34
34
{: .alert.alert-info :}
35
35
Note that User IDs aren't needed in the mobile app world because device ID is available in those ad serving scenarios.
@@ -76,7 +76,7 @@ The PPID in GAM (which is unrelated to the PPID UserId Submodule) has strict rul
76
76
{: .table .table-bordered .table-striped }
77
77
| Param under userSync | Scope | Type | Description | Example |
78
78
| --- | --- | --- | --- | --- |
79
-
| ppid | Optional | String | Must be a source from the [pbjs.getUserIdsAsEids()](/dev-docs/publisher-api-reference/getUserIdsAsEids.html) array |`"pubcid.org"`|
79
+
| ppid | Optional | String | Must be a source from the [pbjs.getUserIdsAsEids()](#getUserIdsAsEids) array |`"pubcid.org"`|
80
80
81
81
The table below has the options that are common across ID systems. See the sections below for specific configuration needed by each system and examples.
82
82
@@ -2348,6 +2348,7 @@ Bidders that want to support the User ID module in Prebid Server, need to update
2348
2348
2349
2349
See the [Prebid.js EIDs javascript source](https://github.com/prebid/Prebid.js/blob/master/modules/userId/eids.js) for the definitive list of user EID sources.
2350
2350
2351
+
<a name="getUserIds"/>
2351
2352
### Exporting User IDs
2352
2353
2353
2354
If you need to export the user IDs stored by Prebid User ID module, the `getUserIds()` function will return an object formatted the same as bidRequest.userId.
@@ -2356,7 +2357,9 @@ If you need to export the user IDs stored by Prebid User ID module, the `getUser
2356
2357
pbjs.getUserIds() // returns object like bidRequest.userId. e.g. {"pubcid":"1111", "tdid":"2222"}
2357
2358
```
2358
2359
2359
-
You can use [`getUserIdsAsEids()`](/dev-docs/publisher-api-reference/getUserIdsAsEids.html) 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.
2360
+
<a name="getUserIdsAsEids"/>
2361
+
2362
+
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.
2360
2363
```
2361
2364
pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g.
2362
2365
[
@@ -2393,6 +2396,19 @@ pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g.
2393
2396
]
2394
2397
```
2395
2398
2399
+
<a name="getUserIdsAsync" />
2400
+
2401
+
`pbjs.getUserIds()` and `pbjs.getUserIdsAsEids()` may return only some IDs, or none at all, if they are called before all ID providers have had a chance to initialize - depending on [`auctionDelay` and/or `syncDelay`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-ConfigureUserSyncing-UserSyncProperties), that may need to wait until an auction has completed.
2402
+
To access the complete set of IDs, you may use `getUserIdsAsync`, which returns a promise that is guaranteed to resolve only once all IDs are available:
2403
+
2404
+
```
2405
+
pbjs.getUserIdsAsync().then(function (userIds) {
2406
+
// all IDs are available here:
2407
+
pbjs.getUserIds() // same as the `userIds` argument
2408
+
pbjs.getUserIdsAsEids()
2409
+
});
2410
+
```
2411
+
2396
2412
## ID Providers
2397
2413
2398
2414
If you're an ID provider that wants to get on this page:
To use this function, include the [UserId module](/dev-docs/modules/userId.html) in your Prebid.js build.
9
+
10
+
`getUserIdsAsync()` returns a promise to the same value returned by [getUserIds()](/dev-docs/publisher-api-reference/getUserIds.html), but it's guaranteed to resolve only once the complete set of IDs is available:
11
+
12
+
```
13
+
pbjs.getUserIdsAsync().then(function (userIds) {
14
+
// all IDs are available here:
15
+
pbjs.getUserIds() // same as the `userIds` argument
0 commit comments