prebid.js 7.10.0 → 7.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/PULL_REQUEST_TEMPLATE.md +16 -10
- package/.github/codeql/codeql-config.yml +4 -0
- package/.github/workflows/codeql-analysis.yml +73 -0
- package/.github/workflows/issue_tracker.yml +1 -1
- package/README.md +0 -2
- package/babelConfig.js +10 -4
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/acuityAdsBidAdapter.js +1 -0
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adriverBidAdapter.js +1 -1
- package/dist/adriverIdSystem.js +1 -1
- package/dist/adtelligentBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -0
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/alkimiBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/aniviewBidAdapter.js +1 -1
- package/dist/aolBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beopBidAdapter.js +1 -1
- package/dist/betweenBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/cleanioRtdProvider.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagement.js +1 -1
- package/dist/consentManagementUsp.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/cpmstarBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/datawrkzBidAdapter.js +1 -0
- package/dist/debugging-standalone.js +1 -1
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dgkeywordRtdProvider.js +1 -1
- package/dist/displayioBidAdapter.js +1 -3
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/enrichmentFpdModule.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imRtdProvider.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -0
- package/dist/limelightDigitalBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -0
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -0
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +153 -147
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/oneKeyIdSystem.js +1 -0
- package/dist/oneKeyRtdProvider.js +1 -0
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +2 -2
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/rasBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/trustpidSystem.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/viewability.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
- package/karma.conf.maker.js +2 -13
- package/modules/.submodules.json +2 -0
- package/modules/acuityAdsBidAdapter.js +207 -0
- package/modules/acuityAdsBidAdapter.md +79 -0
- package/modules/adagioBidAdapter.js +2 -3
- package/modules/adgenerationBidAdapter.js +2 -2
- package/modules/adkernelBidAdapter.js +28 -12
- package/modules/admixerBidAdapter.js +1 -1
- package/modules/adnowBidAdapter.js +1 -1
- package/modules/adpod.js +1 -1
- package/modules/adrelevantisBidAdapter.js +2 -2
- package/modules/adriverBidAdapter.js +5 -12
- package/modules/adriverIdSystem.js +2 -1
- package/modules/adtargetBidAdapter.js +1 -1
- package/modules/adtelligentBidAdapter.js +6 -2
- package/modules/adtrgtmeBidAdapter.js +333 -0
- package/modules/adtrgtmeBidAdapter.md +69 -0
- package/modules/adtrueBidAdapter.js +1 -1
- package/modules/adxpremiumAnalyticsAdapter.js +1 -1
- package/modules/adyoulikeBidAdapter.js +1 -1
- package/modules/alkimiBidAdapter.js +2 -1
- package/modules/aniviewBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +13 -93
- package/modules/apstreamBidAdapter.js +2 -2
- package/modules/beopBidAdapter.js +4 -4
- package/modules/betweenBidAdapter.js +4 -4
- package/modules/bidwatchAnalyticsAdapter.js +112 -59
- package/modules/bizzclickBidAdapter.js +1 -1
- package/modules/brightMountainMediaBidAdapter.js +1 -1
- package/modules/browsiRtdProvider.js +24 -10
- package/modules/cleanmedianetBidAdapter.js +1 -1
- package/modules/consentManagement.js +1 -1
- package/modules/consentManagementUsp.js +1 -1
- package/modules/consumableBidAdapter.js +43 -3
- package/modules/cpmstarBidAdapter.js +23 -13
- package/modules/criteoBidAdapter.js +19 -13
- package/modules/currency.js +1 -0
- package/modules/cwireBidAdapter.js +1 -1
- package/modules/datablocksBidAdapter.js +1 -1
- package/modules/datawrkzBidAdapter.js +633 -0
- package/modules/datawrkzBidAdapter.md +160 -0
- package/modules/dfpAdServerVideo.js +2 -2
- package/modules/dgkeywordRtdProvider.js +10 -1
- package/modules/displayioBidAdapter.js +92 -97
- package/modules/dspxBidAdapter.js +1 -1
- package/modules/e_volutionBidAdapter.js +3 -3
- package/modules/ebdrBidAdapter.js +1 -1
- package/modules/emx_digitalBidAdapter.js +1 -1
- package/modules/enrichmentFpdModule.js +11 -0
- package/modules/fabrickIdSystem.js +2 -2
- package/modules/gamoshiBidAdapter.js +1 -1
- package/modules/getintentBidAdapter.js +1 -1
- package/modules/gjirafaBidAdapter.js +2 -2
- package/modules/goldbachBidAdapter.js +8 -8
- package/modules/gothamadsBidAdapter.js +2 -2
- package/modules/gumgumBidAdapter.js +3 -3
- package/modules/h12mediaBidAdapter.js +1 -1
- package/modules/id5AnalyticsAdapter.js +1 -1
- package/modules/id5IdSystem.js +160 -111
- package/modules/id5IdSystem.md +16 -14
- package/modules/imRtdProvider.js +20 -7
- package/modules/imRtdProvider.md +3 -1
- package/modules/impactifyBidAdapter.js +1 -1
- package/modules/improvedigitalBidAdapter.js +50 -28
- package/modules/inskinBidAdapter.js +1 -1
- package/modules/insticatorBidAdapter.js +1 -1
- package/modules/integr8BidAdapter.js +2 -2
- package/modules/intentIqIdSystem.js +2 -2
- package/modules/interactiveOffersBidAdapter.js +1 -1
- package/modules/iqmBidAdapter.js +1 -1
- package/modules/ixBidAdapter.js +21 -328
- package/modules/ixBidAdapter.md +1 -19
- package/modules/kargoBidAdapter.js +4 -5
- package/modules/krushmediaBidAdapter.js +2 -2
- package/modules/lassoBidAdapter.js +3 -3
- package/modules/lifestreetBidAdapter.js +143 -0
- package/modules/limelightDigitalBidAdapter.js +2 -1
- package/modules/livewrappedAnalyticsAdapter.js +3 -3
- package/modules/lkqdBidAdapter.js +3 -3
- package/modules/loganBidAdapter.js +2 -2
- package/modules/luponmediaBidAdapter.js +3 -3
- package/modules/mabidderBidAdapter.js +60 -0
- package/modules/mabidderBidAdapter.md +31 -0
- package/modules/malltvBidAdapter.js +2 -2
- package/modules/mediagoBidAdapter.js +462 -0
- package/modules/mediagoBidAdapter.md +34 -0
- package/modules/mediakeysBidAdapter.js +2 -2
- package/modules/mgidBidAdapter.js +2 -2
- package/modules/nextMillenniumBidAdapter.js +25 -6
- package/modules/nobidBidAdapter.js +2 -2
- package/modules/novatiqIdSystem.js +1 -1
- package/modules/oneKeyIdSystem.js +78 -0
- package/modules/oneKeyIdSystem.md +109 -0
- package/modules/oneKeyRtdProvider.js +98 -0
- package/modules/oneKeyRtdProvider.md +127 -0
- package/modules/open8BidAdapter.js +1 -1
- package/modules/openwebBidAdapter.js +1 -1
- package/modules/openxAnalyticsAdapter.js +5 -744
- package/modules/openxAnalyticsAdapter.md +4 -0
- package/modules/openxBidAdapter.js +3 -3
- package/modules/permutiveRtdProvider.js +55 -8
- package/modules/pixfutureBidAdapter.js +1 -1
- package/modules/prebidmanagerAnalyticsAdapter.js +1 -1
- package/modules/priceFloors.js +1 -1
- package/modules/pubmaticAnalyticsAdapter.js +1 -1
- package/modules/pubmaticBidAdapter.js +19 -1
- package/modules/pubwiseAnalyticsAdapter.js +1 -1
- package/modules/pubwiseBidAdapter.js +3 -3
- package/modules/pubxBidAdapter.js +1 -1
- package/modules/pubxaiAnalyticsAdapter.js +2 -2
- package/modules/quantcastIdSystem.js +1 -1
- package/modules/radsBidAdapter.js +1 -1
- package/modules/rasBidAdapter.js +8 -0
- package/modules/rasBidAdapter.md +14 -13
- package/modules/revcontentBidAdapter.js +1 -1
- package/modules/richaudienceBidAdapter.js +1 -1
- package/modules/rtbhouseBidAdapter.js +25 -1
- package/modules/schain.js +1 -1
- package/modules/seedtagBidAdapter.md +25 -56
- package/modules/showheroes-bsBidAdapter.js +1 -1
- package/modules/sizeMappingV2.js +1 -1
- package/modules/smaatoBidAdapter.js +2 -2
- package/modules/sonobiAnalyticsAdapter.js +1 -1
- package/modules/sonobiBidAdapter.js +4 -3
- package/modules/staqAnalyticsAdapter.js +1 -1
- package/modules/tappxBidAdapter.js +11 -2
- package/modules/targetVideoBidAdapter.js +1 -1
- package/modules/theAdxBidAdapter.js +2 -2
- package/modules/tpmnBidAdapter.js +1 -1
- package/modules/trionBidAdapter.js +2 -2
- package/modules/tripleliftBidAdapter.js +20 -1
- package/modules/trustpidSystem.js +6 -42
- package/modules/trustpidSystem.md +10 -10
- package/modules/underdogmediaBidAdapter.js +1 -1
- package/modules/userId/eids.js +26 -0
- package/modules/userId/userId.md +2 -2
- package/modules/vdoaiBidAdapter.js +1 -1
- package/modules/vidazooBidAdapter.js +7 -5
- package/modules/vidoomyBidAdapter.js +1 -1
- package/modules/viewability.js +14 -14
- package/modules/winrBidAdapter.js +1 -1
- package/modules/yahoosspBidAdapter.js +3 -3
- package/modules/yandexBidAdapter.js +1 -1
- package/modules/yieldmoBidAdapter.js +3 -3
- package/modules/yieldoneBidAdapter.js +2 -2
- package/modules/zeta_global_sspBidAdapter.js +24 -21
- package/package.json +3 -3
- package/src/Renderer.js +1 -1
- package/src/adloader.js +2 -1
- package/src/adserver.js +0 -56
- package/src/auction.js +60 -16
- package/src/bidfactory.js +1 -1
- package/src/native.js +75 -60
- package/src/refererDetection.js +12 -1
- package/src/sizeMapping.js +5 -7
- package/src/targeting.js +1 -1
- package/src/userSync.js +1 -1
- package/src/utils/promise.js +3 -1
- package/src/utils.js +27 -0
- package/src/video.js +5 -4
- package/src/videoCache.js +8 -2
- package/test/pages/instream.html +2 -2
- package/test/spec/modules/acuityAdsBidAdapter_spec.js +398 -0
- package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
- package/test/spec/modules/adkernelBidAdapter_spec.js +11 -2
- package/test/spec/modules/adriverBidAdapter_spec.js +6 -13
- package/test/spec/modules/adriverIdSystem_spec.js +3 -8
- package/test/spec/modules/adtelligentBidAdapter_spec.js +2 -0
- package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
- package/test/spec/modules/alkimiBidAdapter_spec.js +2 -1
- package/test/spec/modules/appnexusBidAdapter_spec.js +1 -0
- package/test/spec/modules/beopBidAdapter_spec.js +11 -0
- package/test/spec/modules/betweenBidAdapter_spec.js +17 -0
- package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +28 -12
- package/test/spec/modules/big-richmediaBidAdapter_spec.js +1 -0
- package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
- package/test/spec/modules/consumableBidAdapter_spec.js +158 -0
- package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
- package/test/spec/modules/criteoBidAdapter_spec.js +35 -26
- package/test/spec/modules/currency_spec.js +22 -0
- package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
- package/test/spec/modules/dgkeywordRtdProvider_spec.js +1 -1
- package/test/spec/modules/displayioBidAdapter_spec.js +16 -52
- package/test/spec/modules/enrichmentFpdModule_spec.js +16 -1
- package/test/spec/modules/fpdModule_spec.js +2 -1
- package/test/spec/modules/id5IdSystem_spec.js +529 -172
- package/test/spec/modules/imRtdProvider_spec.js +10 -5
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +9 -13
- package/test/spec/modules/ixBidAdapter_spec.js +216 -123
- package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
- package/test/spec/modules/lifestreetBidAdapter_spec.js +232 -0
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +59 -7
- package/test/spec/modules/mabidderBidAdapter_spec.js +125 -0
- package/test/spec/modules/mediagoBidAdapter_spec.js +97 -0
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -7
- package/test/spec/modules/oneKeyIdSystem_spec.js +107 -0
- package/test/spec/modules/oneKeyRtdProvider_spec.js +152 -0
- package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
- package/test/spec/modules/permutiveRtdProvider_spec.js +152 -2
- package/test/spec/modules/pubmaticBidAdapter_spec.js +69 -4
- package/test/spec/modules/rasBidAdapter_spec.js +2 -0
- package/test/spec/modules/tripleliftBidAdapter_spec.js +18 -0
- package/test/spec/modules/trustpidSystem_spec.js +27 -45
- package/test/spec/modules/vidazooBidAdapter_spec.js +36 -23
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +59 -0
- package/test/spec/native_spec.js +257 -2
- package/test/spec/videoCache_spec.js +37 -7
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# OneKey
|
|
2
|
+
|
|
3
|
+
The OneKey real-time data module in Prebid has been built so that publishers
|
|
4
|
+
can quickly and easily setup the OneKey Addressability Framework.
|
|
5
|
+
This module is used along with the oneKeyRtdProvider to pass OneKey data to your partners.
|
|
6
|
+
Both modules are required. This module will pass oneKeyData to your partners
|
|
7
|
+
while the oneKeyRtdProvider will pass the transmission requests.
|
|
8
|
+
|
|
9
|
+
Background information:
|
|
10
|
+
- [OneKey-Network/addressability-framework](https://github.com/OneKey-Network/addressability-framework)
|
|
11
|
+
- [OneKey-Network/OneKey-implementation](https://github.com/OneKey-Network/OneKey-implementation)
|
|
12
|
+
|
|
13
|
+
It can be added to you Prebid.js package with:
|
|
14
|
+
|
|
15
|
+
{: .alert.alert-info :}
|
|
16
|
+
gulp build –modules=userId,oneKeyIdSystem
|
|
17
|
+
|
|
18
|
+
⚠️ This module works in association with a RTD module. See [oneKeyRtdProvider](oneKeyRtdProvider.md).
|
|
19
|
+
|
|
20
|
+
#### OneKey Registration
|
|
21
|
+
|
|
22
|
+
OneKey is a community based Framework with a decentralized approach.
|
|
23
|
+
Go to [onekey.community](https://onekey.community/) for more details.
|
|
24
|
+
|
|
25
|
+
#### OneKey Configuration
|
|
26
|
+
|
|
27
|
+
{: .table .table-bordered .table-striped }
|
|
28
|
+
| Param under userSync.userIds[] | Scope | Type | Description | Example |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
| name | Required | String | The name of this module | `"oneKeyData"` |
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
#### OneKey Exemple
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
pbjs.setConfig({
|
|
37
|
+
userSync: {
|
|
38
|
+
userIds: [{
|
|
39
|
+
name: 'oneKeyData'
|
|
40
|
+
}]
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Bidders will receive the data in the following format:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"identifiers": [{
|
|
50
|
+
"version": "0.1",
|
|
51
|
+
"type": "paf_browser_id",
|
|
52
|
+
"value": "da135b3a-7d04-44bf-a0af-c4709f10420b",
|
|
53
|
+
"source": {
|
|
54
|
+
"domain": "crto-poc-1.onekey.network",
|
|
55
|
+
"timestamp": 1648836556881,
|
|
56
|
+
"signature": "+NF27bBvPM54z103YPExXuS834+ggAQe6JV0jPeGo764vRYiiBl5OmEXlnB7UZgxNe3KBU7rN2jk0SkI4uL0bg=="
|
|
57
|
+
}
|
|
58
|
+
}],
|
|
59
|
+
"preferences": {
|
|
60
|
+
"version": "0.1",
|
|
61
|
+
"data": {
|
|
62
|
+
"use_browsing_for_personalization": true
|
|
63
|
+
},
|
|
64
|
+
"source": {
|
|
65
|
+
"domain": "cmp.pafdemopublisher.com",
|
|
66
|
+
"timestamp": 1648836566468,
|
|
67
|
+
"signature": "ipbYhU8IbSFm2tCqAVYI2d5w4DnGF7Xa2AaiZScx2nmBPLfMmIT/FkBYGitR8Mi791DHtcy5MXr4+bs1aeZFqw=="
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If the bidder elects to use pbjs.getUserIdsAsEids() then the format will be:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
"user": {
|
|
77
|
+
"ext": {
|
|
78
|
+
"eids": [{
|
|
79
|
+
"source": "paf",
|
|
80
|
+
"uids": [{
|
|
81
|
+
"id": "da135b3a-7d04-44bf-a0af-c4709f10420b",
|
|
82
|
+
"atype": 1,
|
|
83
|
+
"ext": {
|
|
84
|
+
"version": "0.1",
|
|
85
|
+
"type": "paf_browser_id",
|
|
86
|
+
"source": {
|
|
87
|
+
"domain": "crto-poc-1.onekey.network",
|
|
88
|
+
"timestamp": 1648836556881,
|
|
89
|
+
"signature": "+NF27bBvPM54z103YPExXuS834+ggAQe6JV0jPeGo764vRYiiBl5OmEXlnB7UZgxNe3KBU7rN2jk0SkI4uL0bg=="
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}],
|
|
93
|
+
"ext": {
|
|
94
|
+
"preferences": {
|
|
95
|
+
"version": "0.1",
|
|
96
|
+
"data": {
|
|
97
|
+
"use_browsing_for_personalization": true
|
|
98
|
+
},
|
|
99
|
+
"source": {
|
|
100
|
+
"domain": "cmp.pafdemopublisher.com",
|
|
101
|
+
"timestamp": 1648836566468,
|
|
102
|
+
"signature": "ipbYhU8IbSFm2tCqAVYI2d5w4DnGF7Xa2AaiZScx2nmBPLfMmIT/FkBYGitR8Mi791DHtcy5MXr4+bs1aeZFqw=="
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
|
|
2
|
+
import { submodule } from '../src/hook.js';
|
|
3
|
+
import { mergeDeep, logError, logMessage, deepSetValue, generateUUID } from '../src/utils.js';
|
|
4
|
+
import { getGlobal } from '../src/prebidGlobal.js';
|
|
5
|
+
|
|
6
|
+
const SUBMODULE_NAME = 'oneKey';
|
|
7
|
+
const prefixLog = 'OneKey.RTD-module'
|
|
8
|
+
|
|
9
|
+
// Pre-init OneKey if it has not load yet.
|
|
10
|
+
window.OneKey = window.OneKey || {};
|
|
11
|
+
window.OneKey.queue = window.OneKey.queue || [];
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Generate the OneKey transmission and include it in the Bid Request.
|
|
15
|
+
*
|
|
16
|
+
* Modify the AdUnit object for each auction.
|
|
17
|
+
* It’s called as part of the requestBids hook.
|
|
18
|
+
* https://docs.prebid.org/dev-docs/add-rtd-submodule.html#getbidrequestdata
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} reqBidsConfigObj
|
|
21
|
+
* @param {function} callback
|
|
22
|
+
* @param {Object} rtdConfig
|
|
23
|
+
* @param {Object} userConsent
|
|
24
|
+
*/
|
|
25
|
+
const getTransmissionInBidRequest = (reqBidsConfigObj, done, rtdConfig) => {
|
|
26
|
+
const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
|
|
27
|
+
const transactionIds = adUnits.map(() => generateUUID());
|
|
28
|
+
|
|
29
|
+
logMessage(prefixLog, 'Queue seed generation.');
|
|
30
|
+
window.OneKey.queue.push(() => {
|
|
31
|
+
logMessage(prefixLog, 'Generate a seed.');
|
|
32
|
+
window.OneKey.generateSeed(transactionIds)
|
|
33
|
+
.then(onGetSeed(reqBidsConfigObj, rtdConfig, adUnits, transactionIds))
|
|
34
|
+
.catch((err) => { logError(SUBMODULE_NAME, err.message); })
|
|
35
|
+
.finally(done);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const onGetSeed = (reqBidsConfigObj, rtdConfig, adUnits, transactionIds) => {
|
|
40
|
+
return (seed) => {
|
|
41
|
+
if (!seed) {
|
|
42
|
+
logMessage(prefixLog, 'No seed generated.');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
logMessage(prefixLog, 'Has retrieved a seed:', seed);
|
|
47
|
+
addTransactionIdsToAdUnits(adUnits, transactionIds);
|
|
48
|
+
addTransmissionToOrtb2(reqBidsConfigObj, rtdConfig, seed);
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const addTransactionIdsToAdUnits = (adUnits, transactionIds) => {
|
|
53
|
+
adUnits.forEach((unit, index) => {
|
|
54
|
+
deepSetValue(unit, `ortb2Imp.ext.data.paf.transaction_id`, transactionIds[index]);
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const addTransmissionToOrtb2 = (reqBidsConfigObj, rtdConfig, seed) => {
|
|
59
|
+
const okOrtb2 = {
|
|
60
|
+
ortb2: {
|
|
61
|
+
user: {
|
|
62
|
+
ext: {
|
|
63
|
+
paf: {
|
|
64
|
+
transmission: {
|
|
65
|
+
seed
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const shareSeedWithAllBidders = !rtdConfig.params || !rtdConfig.params.bidders;
|
|
74
|
+
if (shareSeedWithAllBidders) {
|
|
75
|
+
// Change global first party data with OneKey
|
|
76
|
+
logMessage(prefixLog, 'set ortb2:', okOrtb2);
|
|
77
|
+
mergeDeep(reqBidsConfigObj.ortb2Fragments.global, okOrtb2.ortb2);
|
|
78
|
+
} else {
|
|
79
|
+
// Change bidder-specific first party data with OneKey
|
|
80
|
+
logMessage(prefixLog, `set ortb2 for: ${rtdConfig.params.bidders.join(',')}`, okOrtb2);
|
|
81
|
+
rtdConfig.params.bidders.forEach(bidder => {
|
|
82
|
+
mergeDeep(reqBidsConfigObj.ortb2Fragments.bidder, { [bidder]: okOrtb2.ortb2 });
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** @type {RtdSubmodule} */
|
|
88
|
+
export const oneKeyDataSubmodule = {
|
|
89
|
+
/**
|
|
90
|
+
* used to link submodule with realTimeData
|
|
91
|
+
* @type {string}
|
|
92
|
+
*/
|
|
93
|
+
name: SUBMODULE_NAME,
|
|
94
|
+
init: () => true,
|
|
95
|
+
getBidRequestData: getTransmissionInBidRequest,
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
submodule('realTimeData', oneKeyDataSubmodule);
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
## OneKey Real-time Data Submodule
|
|
2
|
+
|
|
3
|
+
The OneKey real-time data module in Prebid has been built so that publishers
|
|
4
|
+
can quickly and easily setup the OneKey Addressability Framework.
|
|
5
|
+
This module is used along with the oneKeyIdSystem to pass OneKey data to your partners.
|
|
6
|
+
Both modules are required. This module will pass transmission requests to your partners
|
|
7
|
+
while the oneKeyIdSystem will pass the oneKeyData.
|
|
8
|
+
|
|
9
|
+
Background information:
|
|
10
|
+
- [OneKey-Network/addressability-framework](https://github.com/OneKey-Network/addressability-framework)
|
|
11
|
+
- [OneKey-Network/OneKey-implementation](https://github.com/OneKey-Network/OneKey-implementation)
|
|
12
|
+
|
|
13
|
+
## Implementation for Publishers
|
|
14
|
+
|
|
15
|
+
### Integration
|
|
16
|
+
|
|
17
|
+
1) Compile the OneKey RTD Provider and the OneKey UserID sub-module into your Prebid build.
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
gulp build --modules=rtdModule,oneKeyRtdProvider
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
2) Publishers must register OneKey RTD Provider as a Real Time Data provider by using `setConfig`
|
|
24
|
+
to load a Prebid Config containing a `realTimeData.dataProviders` array:
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
pbjs.setConfig({
|
|
28
|
+
...,
|
|
29
|
+
realTimeData: {
|
|
30
|
+
auctionDelay: 100,
|
|
31
|
+
dataProviders: [
|
|
32
|
+
{
|
|
33
|
+
name: 'oneKey',
|
|
34
|
+
waitForIt: true
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3) Configure the OneKey RTD Provider with the bidders that are part of the OneKey community. If there is no bidders specified, the RTD provider
|
|
42
|
+
will share OneKey data with all adapters.
|
|
43
|
+
|
|
44
|
+
⚠️ This module works in association with a RTD module. See [oneKeyIdSystem](oneKeyIdSystem.md).
|
|
45
|
+
|
|
46
|
+
### Parameters
|
|
47
|
+
|
|
48
|
+
| Name |Type | Description | Notes |
|
|
49
|
+
| :------------ | :------------ | :------------ |:------------ |
|
|
50
|
+
| name | String | Real time data module name | Always 'oneKey' |
|
|
51
|
+
| waitForIt | Boolean | Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false |
|
|
52
|
+
| params | Object | | Optional |
|
|
53
|
+
| params.bidders | Array | List of bidders to restrict the data to. | Optional |
|
|
54
|
+
|
|
55
|
+
## Implementation for Bidders
|
|
56
|
+
|
|
57
|
+
### Bidder Requests
|
|
58
|
+
|
|
59
|
+
The data will provided to the bidders using the `ortb2` object.
|
|
60
|
+
The following is an example of the format of the data:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
"user": {
|
|
64
|
+
"ext": {
|
|
65
|
+
"paf": {
|
|
66
|
+
"transmission": {
|
|
67
|
+
"seed": {
|
|
68
|
+
"version": "0.1",
|
|
69
|
+
"transaction_ids": ["06df6992-691c-4342-bbb0-66d2a005d5b1", "d2cd0aa7-8810-478c-bd15-fb5bfa8138b8"],
|
|
70
|
+
"publisher": "cmp.pafdemopublisher.com",
|
|
71
|
+
"source": {
|
|
72
|
+
"domain": "cmp.pafdemopublisher.com",
|
|
73
|
+
"timestamp": 1649712888,
|
|
74
|
+
"signature": "turzZlXh9IqD5Rjwh4vWR78pKLrVsmwQrGr6fgw8TPgQVJSC8K3HvkypTV7lm3UaCi+Zzjl+9sd7Hrv87gdI8w=="
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
"ortb2Imp": {
|
|
85
|
+
"ext": {
|
|
86
|
+
"data": {
|
|
87
|
+
"paf": {
|
|
88
|
+
"transaction_id": "52d23fed-4f50-4c17-b07a-c458143e9d09"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Bidder Responses
|
|
96
|
+
|
|
97
|
+
Bidders who are part of the OneKey Addressability Framework and receive OneKey
|
|
98
|
+
transmissions are required to return transmission responses as outlined in
|
|
99
|
+
[OneKey-Network/addressability-framework]https://github.com/OneKey-Network/addressability-framework/blob/main/mvp-spec/ad-auction.md). Transmission responses should be appended to bids
|
|
100
|
+
along with the releveant content_id using the meta.paf field. The paf-lib will
|
|
101
|
+
be responsible for collecting all of the transmission responses.
|
|
102
|
+
|
|
103
|
+
Below is an example of setting a transmission response:
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
bid.meta.paf = {
|
|
107
|
+
content_id: "90141190-26fe-497c-acee-4d2b649c2112",
|
|
108
|
+
transmission: {
|
|
109
|
+
version: "0.1",
|
|
110
|
+
contents: [
|
|
111
|
+
{
|
|
112
|
+
transaction_id: "f55a401d-e8bb-4de1-a3d2-fa95619393e8",
|
|
113
|
+
content_id: "90141190-26fe-497c-acee-4d2b649c2112"
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
status: "success",
|
|
117
|
+
details: "",
|
|
118
|
+
receiver: "dsp1.com",
|
|
119
|
+
source: {
|
|
120
|
+
domain: "dsp1.com",
|
|
121
|
+
timestamp: 1639589531,
|
|
122
|
+
signature: "d01c6e83f14b4f057c2a2a86d320e2454fc0c60df4645518d993b5f40019d24c"
|
|
123
|
+
},
|
|
124
|
+
children: []
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
@@ -149,7 +149,7 @@ function bidToTag(bidRequests, adapterRequest) {
|
|
|
149
149
|
tag.UserEids = deepAccess(bidRequests[0], 'userIdAsEids');
|
|
150
150
|
}
|
|
151
151
|
// end publisher env
|
|
152
|
-
const bids = []
|
|
152
|
+
const bids = [];
|
|
153
153
|
|
|
154
154
|
for (let i = 0, length = bidRequests.length; i < length; i++) {
|
|
155
155
|
const bid = prepareBidRequests(bidRequests[i]);
|