prebid.js 7.44.0 → 7.46.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/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/acuityAdsBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/appushBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beyondmediaBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/braveBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/coinzillaBidAdapter.js +1 -1
- package/dist/compassBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contentexchangeBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/dependencies.json +15 -0
- package/dist/domainOverrideToRootDomain.js +1 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/eskimiBidAdapter.js +1 -0
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/globalsunBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/iqzoneBidAdapter.js +1 -1
- package/dist/ivsBidAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerVideoProvider.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/koblerBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luponmediaBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mathildeadsBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/neuwoRtdProvider.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +165 -162
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/onomagicBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/pairIdSystem.js +1 -0
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxBidAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.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/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.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/smarthubBidAdapter.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/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.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/truereachBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.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/videoheroesBidAdapter.js +1 -1
- package/dist/vidoomyBidAdapter.js +1 -1
- package/dist/visiblemeasuresBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.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/yieldoneBidAdapter.js +1 -1
- package/integrationExamples/gpt/fledge_example.html +103 -0
- package/integrationExamples/gpt/prebidServer_fledge_example.html +111 -0
- package/libraries/domainOverrideToRootDomain/index.js +39 -0
- package/libraries/ortbConverter/processors/video.js +1 -0
- package/modules/acuityAdsBidAdapter.js +1 -1
- package/modules/admaticBidAdapter.js +7 -2
- package/modules/adnuntiusBidAdapter.js +3 -1
- package/modules/amxBidAdapter.js +1 -1
- package/modules/amxIdSystem.js +23 -20
- package/modules/amxIdSystem.md +7 -7
- package/modules/appnexusBidAdapter.js +108 -102
- package/modules/appushBidAdapter.js +1 -1
- package/modules/beyondmediaBidAdapter.js +1 -1
- package/modules/bidwatchAnalyticsAdapter.js +2 -0
- package/modules/braveBidAdapter.js +1 -1
- package/modules/brightcomBidAdapter.js +1 -1
- package/modules/brightcomSSPBidAdapter.js +1 -1
- package/modules/coinzillaBidAdapter.js +1 -2
- package/modules/compassBidAdapter.js +1 -1
- package/modules/connectIdSystem.js +96 -21
- package/modules/connectIdSystem.md +6 -5
- package/modules/contentexchangeBidAdapter.js +1 -1
- package/modules/conversantBidAdapter.js +3 -0
- package/modules/criteoBidAdapter.js +5 -1
- package/modules/eskimiBidAdapter.js +72 -0
- package/modules/eskimiBidAdapter.md +34 -0
- package/modules/freewheel-sspBidAdapter.js +8 -0
- package/modules/glimpseBidAdapter.js +1 -2
- package/modules/globalsunBidAdapter.js +1 -1
- package/modules/gridBidAdapter.js +43 -20
- package/modules/growthCodeIdSystem.js +18 -15
- package/modules/gumgumBidAdapter.js +1 -1
- package/modules/iqzoneBidAdapter.js +1 -1
- package/modules/ivsBidAdapter.js +85 -0
- package/modules/ivsBidAdapter.md +34 -0
- package/modules/ixBidAdapter.js +72 -105
- package/modules/jwplayerVideoProvider.js +25 -32
- package/modules/kargoBidAdapter.js +473 -246
- package/modules/koblerBidAdapter.js +1 -2
- package/modules/kueezBidAdapter.js +1 -1
- package/modules/kueezRtbBidAdapter.js +16 -4
- package/modules/liveIntentIdSystem.js +8 -0
- package/modules/luponmediaBidAdapter.js +1 -1
- package/modules/magniteAnalyticsAdapter.js +76 -3
- package/modules/mathildeadsBidAdapter.js +1 -1
- package/modules/medianetBidAdapter.js +1 -1
- package/modules/mediasquareBidAdapter.js +2 -1
- package/modules/mgidBidAdapter.js +178 -26
- package/modules/minutemediaBidAdapter.js +1 -1
- package/modules/minutemediaplusBidAdapter.js +16 -4
- package/modules/nativoBidAdapter.js +110 -21
- package/modules/neuwoRtdProvider.js +0 -2
- package/modules/oguryBidAdapter.js +3 -2
- package/modules/onomagicBidAdapter.js +1 -2
- package/modules/openxBidAdapter.js +192 -563
- package/modules/openxBidAdapter.md +22 -20
- package/modules/openxOrtbBidAdapter.js +13 -11
- package/modules/openxOrtbBidAdapter.md +5 -3
- package/modules/operaadsBidAdapter.js +1 -1
- package/modules/pairIdSystem.js +79 -0
- package/modules/pubmaticBidAdapter.js +13 -10
- package/modules/pubxBidAdapter.js +5 -2
- package/modules/riseBidAdapter.js +1 -1
- package/modules/sharedIdSystem.js +4 -27
- package/modules/sharethroughBidAdapter.js +1 -1
- package/modules/shinezBidAdapter.js +1 -1
- package/modules/smarthubBidAdapter.js +1 -1
- package/modules/synacormediaBidAdapter.js +1 -3
- package/modules/truereachBidAdapter.js +1 -2
- package/modules/userId/eids.js +24 -0
- package/modules/userId/eids.md +16 -0
- package/modules/videoheroesBidAdapter.js +1 -1
- package/modules/vidoomyBidAdapter.js +33 -4
- package/modules/visiblemeasuresBidAdapter.js +1 -1
- package/modules/vrtcalBidAdapter.js +1 -1
- package/modules/yieldmoBidAdapter.js +15 -5
- package/modules/yieldoneBidAdapter.js +1 -1
- package/package.json +1 -1
- package/src/Renderer.js +2 -1
- package/src/config.js +78 -127
- package/src/native.js +5 -1
- package/test/spec/auctionmanager_spec.js +2 -2
- package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
- package/test/spec/modules/1plusXRtdProvider_spec.js +8 -7
- package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
- package/test/spec/modules/adagioBidAdapter_spec.js +0 -25
- package/test/spec/modules/admaticBidAdapter_spec.js +1 -1
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +2 -1
- package/test/spec/modules/amxIdSystem_spec.js +13 -26
- package/test/spec/modules/appnexusBidAdapter_spec.js +464 -448
- package/test/spec/modules/appushBidAdapter_spec.js +2 -1
- package/test/spec/modules/axonixBidAdapter_spec.js +0 -27
- package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
- package/test/spec/modules/big-richmediaBidAdapter_spec.js +68 -64
- package/test/spec/modules/compassBidAdapter_spec.js +2 -1
- package/test/spec/modules/connectIdSystem_spec.js +420 -242
- package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
- package/test/spec/modules/conversantBidAdapter_spec.js +1 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +33 -1
- package/test/spec/modules/eids_spec.js +30 -0
- package/test/spec/modules/eskimiBidAdapter_spec.js +155 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
- package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
- package/test/spec/modules/gridBidAdapter_spec.js +8 -0
- package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
- package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
- package/test/spec/modules/ixBidAdapter_spec.js +141 -71
- package/test/spec/modules/kargoBidAdapter_spec.js +297 -140
- package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +22 -2
- package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
- package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
- package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
- package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
- package/test/spec/modules/minutemediaplusBidAdapter_spec.js +22 -2
- package/test/spec/modules/nativoBidAdapter_spec.js +101 -0
- package/test/spec/modules/neuwoRtdProvider_spec.js +0 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
- package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +12 -39
- package/test/spec/modules/pairIdSystem_spec.js +68 -0
- package/test/spec/modules/pubCommonId_spec.js +0 -17
- package/test/spec/modules/pubmaticBidAdapter_spec.js +868 -867
- package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
- package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -5
- package/test/spec/modules/sharedIdSystem_spec.js +0 -46
- package/test/spec/modules/sharethroughBidAdapter_spec.js +2 -1
- package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
- package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
- package/test/spec/modules/vidoomyBidAdapter_spec.js +58 -0
- package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
- package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
- package/test/spec/modules/yieldmoBidAdapter_spec.js +19 -1
- package/test/spec/renderer_spec.js +1 -2
- package/test/spec/unit/pbjs_api_spec.js +19 -3
- package/test/test_index.js +13 -3
- package/dist/gridNMBidAdapter.js +0 -1
- package/modules/gridNMBidAdapter.js +0 -422
- package/modules/gridNMBidAdapter.md +0 -39
- package/test/spec/modules/gridNMBidAdapter_spec.js +0 -636
|
@@ -35,7 +35,7 @@ describe('kargo adapter tests', function () {
|
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
describe('build request', function() {
|
|
38
|
-
var bids, undefinedCurrency, noAdServerCurrency, cookies = [], localStorageItems = [], sessionIds = [], requestCount = 0;
|
|
38
|
+
var bids, undefinedCurrency, noAdServerCurrency, nonUSDAdServerCurrency, cookies = [], localStorageItems = [], sessionIds = [], requestCount = 0;
|
|
39
39
|
|
|
40
40
|
beforeEach(function () {
|
|
41
41
|
$$PREBID_GLOBAL$$.bidderSettings = {
|
|
@@ -45,6 +45,7 @@ describe('kargo adapter tests', function () {
|
|
|
45
45
|
};
|
|
46
46
|
undefinedCurrency = false;
|
|
47
47
|
noAdServerCurrency = false;
|
|
48
|
+
nonUSDAdServerCurrency = false;
|
|
48
49
|
sandbox.stub(config, 'getConfig').callsFake(function(key) {
|
|
49
50
|
if (key === 'currency') {
|
|
50
51
|
if (undefinedCurrency) {
|
|
@@ -53,6 +54,9 @@ describe('kargo adapter tests', function () {
|
|
|
53
54
|
if (noAdServerCurrency) {
|
|
54
55
|
return {};
|
|
55
56
|
}
|
|
57
|
+
if (nonUSDAdServerCurrency) {
|
|
58
|
+
return {adServerCurrency: 'EUR'};
|
|
59
|
+
}
|
|
56
60
|
return {adServerCurrency: 'USD'};
|
|
57
61
|
}
|
|
58
62
|
if (key === 'debug') return true;
|
|
@@ -63,13 +67,45 @@ describe('kargo adapter tests', function () {
|
|
|
63
67
|
bids = [
|
|
64
68
|
{
|
|
65
69
|
params: {
|
|
66
|
-
placementId: 'foo'
|
|
70
|
+
placementId: 'foo',
|
|
71
|
+
socialCanvas: {
|
|
72
|
+
segments: ['segment_1', 'segment_2', 'segment_3'],
|
|
73
|
+
url: 'https://socan.url'
|
|
74
|
+
}
|
|
67
75
|
},
|
|
68
|
-
|
|
76
|
+
auctionId: '1234098',
|
|
77
|
+
bidId: '1',
|
|
78
|
+
adUnitCode: '101',
|
|
79
|
+
transactionId: '10101',
|
|
80
|
+
sizes: [[320, 50], [300, 250], [300, 600]],
|
|
81
|
+
mediaTypes: {
|
|
82
|
+
banner: {
|
|
83
|
+
sizes: [[320, 50], [300, 50]]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
bidRequestsCount: 1,
|
|
87
|
+
bidderRequestsCount: 2,
|
|
88
|
+
bidderWinsCount: 3,
|
|
69
89
|
userId: {
|
|
70
|
-
tdid: '
|
|
90
|
+
tdid: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c'
|
|
91
|
+
},
|
|
92
|
+
userIdAsEids: [
|
|
93
|
+
{
|
|
94
|
+
'source': 'adserver.org',
|
|
95
|
+
'uids': [
|
|
96
|
+
{
|
|
97
|
+
'id': 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
|
|
98
|
+
'atype': 1,
|
|
99
|
+
'ext': {
|
|
100
|
+
'rtiPartner': 'TDID'
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
floorData: {
|
|
107
|
+
floorMin: 1
|
|
71
108
|
},
|
|
72
|
-
sizes: [[320, 50], [300, 250], [300, 600]],
|
|
73
109
|
ortb2: {
|
|
74
110
|
device: {
|
|
75
111
|
sua: {
|
|
@@ -91,25 +127,76 @@ describe('kargo adapter tests', function () {
|
|
|
91
127
|
version: [ '99', '0', '0', '0' ]
|
|
92
128
|
}
|
|
93
129
|
],
|
|
94
|
-
mobile:
|
|
95
|
-
model: ''
|
|
130
|
+
mobile: 1,
|
|
131
|
+
model: 'model',
|
|
132
|
+
source: 1,
|
|
96
133
|
}
|
|
97
134
|
}
|
|
135
|
+
},
|
|
136
|
+
ortb2Imp: {
|
|
137
|
+
ext: {
|
|
138
|
+
data: {
|
|
139
|
+
adServer: {
|
|
140
|
+
name: 'gam',
|
|
141
|
+
adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
142
|
+
},
|
|
143
|
+
pbAdSlot: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
144
|
+
},
|
|
145
|
+
gpid: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
146
|
+
}
|
|
98
147
|
}
|
|
99
148
|
},
|
|
100
149
|
{
|
|
101
150
|
params: {
|
|
102
151
|
placementId: 'bar'
|
|
103
152
|
},
|
|
104
|
-
bidId: 2,
|
|
105
|
-
|
|
153
|
+
bidId: '2',
|
|
154
|
+
adUnitCode: '202',
|
|
155
|
+
transactionId: '20202',
|
|
156
|
+
sizes: [[320, 50], [300, 250], [300, 600]],
|
|
157
|
+
mediaTypes: {
|
|
158
|
+
video: {
|
|
159
|
+
sizes: [[320, 50], [300, 50]]
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
bidRequestsCount: 0,
|
|
163
|
+
bidderRequestsCount: 0,
|
|
164
|
+
bidderWinsCount: 0,
|
|
165
|
+
ortb2Imp: {
|
|
166
|
+
ext: {
|
|
167
|
+
data: {
|
|
168
|
+
adServer: {
|
|
169
|
+
name: 'gam',
|
|
170
|
+
adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
171
|
+
},
|
|
172
|
+
pbAdSlot: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
106
176
|
},
|
|
107
177
|
{
|
|
108
178
|
params: {
|
|
109
179
|
placementId: 'bar'
|
|
110
180
|
},
|
|
111
|
-
bidId: 3,
|
|
112
|
-
|
|
181
|
+
bidId: '3',
|
|
182
|
+
adUnitCode: '303',
|
|
183
|
+
transactionId: '30303',
|
|
184
|
+
sizes: [[320, 50], [300, 250], [300, 600]],
|
|
185
|
+
mediaTypes: {
|
|
186
|
+
native: {
|
|
187
|
+
sizes: [[320, 50], [300, 50]]
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
ortb2Imp: {
|
|
191
|
+
ext: {
|
|
192
|
+
data: {
|
|
193
|
+
adServer: {
|
|
194
|
+
name: 'gam',
|
|
195
|
+
adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
113
200
|
}
|
|
114
201
|
];
|
|
115
202
|
});
|
|
@@ -160,11 +247,19 @@ describe('kargo adapter tests', function () {
|
|
|
160
247
|
function simulateNoCurrencyObject() {
|
|
161
248
|
undefinedCurrency = true;
|
|
162
249
|
noAdServerCurrency = false;
|
|
250
|
+
nonUSDAdServerCurrency = false;
|
|
163
251
|
}
|
|
164
252
|
|
|
165
253
|
function simulateNoAdServerCurrency() {
|
|
166
254
|
undefinedCurrency = false;
|
|
167
255
|
noAdServerCurrency = true;
|
|
256
|
+
nonUSDAdServerCurrency = false;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function simulateNonUSDAdServerCurrency() {
|
|
260
|
+
undefinedCurrency = false;
|
|
261
|
+
noAdServerCurrency = false;
|
|
262
|
+
nonUSDAdServerCurrency = true;
|
|
168
263
|
}
|
|
169
264
|
|
|
170
265
|
function generateGDPR(applies, haveConsent) {
|
|
@@ -182,6 +277,32 @@ describe('kargo adapter tests', function () {
|
|
|
182
277
|
};
|
|
183
278
|
}
|
|
184
279
|
|
|
280
|
+
function generatePageView() {
|
|
281
|
+
return {
|
|
282
|
+
id: '112233',
|
|
283
|
+
timestamp: frozenNow.getTime(),
|
|
284
|
+
url: 'http://pageview.url'
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function generateRawCRB(rawCRB, rawCRBLocalStorage) {
|
|
289
|
+
if (rawCRB == null && rawCRBLocalStorage == null) {
|
|
290
|
+
return null
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
let result = {}
|
|
294
|
+
|
|
295
|
+
if (rawCRB != null) {
|
|
296
|
+
result.rawCRB = rawCRB
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
if (rawCRBLocalStorage != null) {
|
|
300
|
+
result.rawCRBLocalStorage = rawCRBLocalStorage
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return result
|
|
304
|
+
}
|
|
305
|
+
|
|
185
306
|
function getKrgCrb() {
|
|
186
307
|
return 'eyJzeW5jSWRzIjp7IjIiOiI4MmZhMjU1NS01OTY5LTQ2MTQtYjRjZS00ZGNmMTA4MGU5ZjkiLCIxNiI6IlZveElrOEFvSnowQUFFZENleUFBQUFDMiY1MDIiLCIyMyI6ImQyYTg1NWE1LTFiMWMtNDMwMC05NDBlLWE3MDhmYTFmMWJkZSIsIjI0IjoiVm94SWs4QW9KejBBQUVkQ2V5QUFBQUMyJjUwMiIsIjI1IjoiNWVlMjQxMzgtNWUwMy00YjlkLWE5NTMtMzhlODMzZjI4NDlmIiwiMl84MCI6ImQyYTg1NWE1LTFiMWMtNDMwMC05NDBlLWE3MDhmYTFmMWJkZSIsIjJfOTMiOiI1ZWUyNDEzOC01ZTAzLTRiOWQtYTk1My0zOGU4MzNmMjg0OWYifSwibGV4SWQiOiI1ZjEwODgzMS0zMDJkLTExZTctYmY2Yi00NTk1YWNkM2JmNmMiLCJjbGllbnRJZCI6IjI0MTBkOGYyLWMxMTEtNDgxMS04OGE1LTdiNWUxOTBlNDc1ZiIsIm9wdE91dCI6ZmFsc2UsImV4cGlyZVRpbWUiOjE0OTc0NDkzODI2NjgsImxhc3RTeW5jZWRBdCI6MTQ5NzM2Mjk3OTAxMn0=';
|
|
187
308
|
}
|
|
@@ -253,6 +374,12 @@ describe('kargo adapter tests', function () {
|
|
|
253
374
|
setLocalStorageItem('krg_crb', getEmptyKrgCrb());
|
|
254
375
|
}
|
|
255
376
|
|
|
377
|
+
function initializePageView() {
|
|
378
|
+
setLocalStorageItem('pageViewId', 112233);
|
|
379
|
+
setLocalStorageItem('pageViewTimestamp', frozenNow.getTime());
|
|
380
|
+
setLocalStorageItem('pageViewUrl', 'http://pageview.url');
|
|
381
|
+
}
|
|
382
|
+
|
|
256
383
|
function initializeEmptyKrgCrbCookie() {
|
|
257
384
|
setCookie('krg_crb', getEmptyKrgCrbOldStyle());
|
|
258
385
|
}
|
|
@@ -261,30 +388,20 @@ describe('kargo adapter tests', function () {
|
|
|
261
388
|
return spec._getSessionId();
|
|
262
389
|
}
|
|
263
390
|
|
|
264
|
-
function getExpectedKrakenParams(
|
|
391
|
+
function getExpectedKrakenParams(expectedCRB, expectedPage, excludeUserIds, expectedGDPR, currency) {
|
|
265
392
|
var base = {
|
|
393
|
+
pbv: '$prebid.version$',
|
|
394
|
+
aid: '1234098',
|
|
395
|
+
requestCount: 0,
|
|
396
|
+
sid: getSessionId(),
|
|
397
|
+
url: 'https://www.prebid.org',
|
|
266
398
|
timeout: 200,
|
|
267
|
-
|
|
268
|
-
currency: 'USD',
|
|
269
|
-
cpmGranularity: 1,
|
|
270
|
-
timestamp: frozenNow.getTime(),
|
|
271
|
-
cpmRange: {
|
|
272
|
-
floor: 0,
|
|
273
|
-
ceil: 20
|
|
274
|
-
},
|
|
275
|
-
bidIDs: {
|
|
276
|
-
1: 'foo',
|
|
277
|
-
2: 'bar',
|
|
278
|
-
3: 'bar'
|
|
279
|
-
},
|
|
280
|
-
bidSizes: {
|
|
281
|
-
1: [[320, 50], [300, 250], [300, 600]],
|
|
282
|
-
2: [[320, 50], [300, 250], [300, 600]],
|
|
283
|
-
3: [[320, 50], [300, 250], [300, 600]]
|
|
284
|
-
},
|
|
399
|
+
ts: frozenNow.getTime(),
|
|
285
400
|
device: {
|
|
286
|
-
|
|
287
|
-
|
|
401
|
+
size: [
|
|
402
|
+
screen.width,
|
|
403
|
+
screen.height
|
|
404
|
+
],
|
|
288
405
|
sua: {
|
|
289
406
|
platform: {
|
|
290
407
|
brand: 'macOS',
|
|
@@ -304,14 +421,61 @@ describe('kargo adapter tests', function () {
|
|
|
304
421
|
version: [ '99', '0', '0', '0' ]
|
|
305
422
|
}
|
|
306
423
|
],
|
|
307
|
-
mobile:
|
|
308
|
-
model: '',
|
|
424
|
+
mobile: 1,
|
|
425
|
+
model: 'model',
|
|
426
|
+
source: 1
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
imp: [
|
|
430
|
+
{
|
|
431
|
+
code: '101',
|
|
432
|
+
id: '1',
|
|
433
|
+
pid: 'foo',
|
|
434
|
+
tid: '10101',
|
|
435
|
+
banner: {
|
|
436
|
+
sizes: [[320, 50], [300, 50]]
|
|
437
|
+
},
|
|
438
|
+
bidRequestCount: 1,
|
|
439
|
+
bidderRequestCount: 2,
|
|
440
|
+
bidderWinCount: 3,
|
|
441
|
+
floor: 1,
|
|
442
|
+
fpd: {
|
|
443
|
+
gpid: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
code: '202',
|
|
448
|
+
id: '2',
|
|
449
|
+
pid: 'bar',
|
|
450
|
+
tid: '20202',
|
|
451
|
+
video: {
|
|
452
|
+
sizes: [[320, 50], [300, 50]]
|
|
453
|
+
},
|
|
454
|
+
fpd: {
|
|
455
|
+
gpid: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
456
|
+
}
|
|
309
457
|
},
|
|
458
|
+
{
|
|
459
|
+
code: '303',
|
|
460
|
+
id: '3',
|
|
461
|
+
pid: 'bar',
|
|
462
|
+
tid: '30303',
|
|
463
|
+
native: {
|
|
464
|
+
sizes: [[320, 50], [300, 50]]
|
|
465
|
+
},
|
|
466
|
+
fpd: {
|
|
467
|
+
gpid: '/22558409563,18834096/dfy_mobile_adhesion'
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
],
|
|
471
|
+
socan: {
|
|
472
|
+
segments: ['segment_1', 'segment_2', 'segment_3'],
|
|
473
|
+
url: 'https://socan.url'
|
|
310
474
|
},
|
|
311
|
-
|
|
475
|
+
user: {
|
|
312
476
|
kargoID: '5f108831-302d-11e7-bf6b-4595acd3bf6c',
|
|
313
477
|
clientID: '2410d8f2-c111-4811-88a5-7b5e190e475f',
|
|
314
|
-
tdID: '
|
|
478
|
+
tdID: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
|
|
315
479
|
crbIDs: {
|
|
316
480
|
2: '82fa2555-5969-4614-b4ce-4dcf1080e9f9',
|
|
317
481
|
16: 'VoxIk8AoJz0AAEdCeyAAAAC2&502',
|
|
@@ -322,86 +486,61 @@ describe('kargo adapter tests', function () {
|
|
|
322
486
|
'2_93': '5ee24138-5e03-4b9d-a953-38e833f2849f'
|
|
323
487
|
},
|
|
324
488
|
optOut: false,
|
|
325
|
-
usp: '1---'
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
brand: 'macOS',
|
|
337
|
-
version: [ '12', '6', '0' ]
|
|
338
|
-
},
|
|
339
|
-
browsers: [
|
|
340
|
-
{
|
|
341
|
-
brand: 'Chromium',
|
|
342
|
-
version: [ '106', '0', '5249', '119' ]
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
brand: 'Google Chrome',
|
|
346
|
-
version: [ '106', '0', '5249', '119' ]
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
brand: 'Not;A=Brand',
|
|
350
|
-
version: [ '99', '0', '0', '0' ]
|
|
351
|
-
}
|
|
352
|
-
],
|
|
353
|
-
mobile: 0,
|
|
354
|
-
model: ''
|
|
489
|
+
usp: '1---',
|
|
490
|
+
sharedIDEids: [
|
|
491
|
+
{
|
|
492
|
+
source: 'adserver.org',
|
|
493
|
+
uids: [
|
|
494
|
+
{
|
|
495
|
+
id: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
|
|
496
|
+
atype: 1,
|
|
497
|
+
ext: {
|
|
498
|
+
rtiPartner: 'TDID'
|
|
499
|
+
}
|
|
355
500
|
}
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
},
|
|
361
|
-
userId: {
|
|
362
|
-
tdid: 'fake-tdid'
|
|
363
|
-
},
|
|
364
|
-
sizes: [[320, 50], [300, 250], [300, 600]],
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
bidId: 2,
|
|
368
|
-
params: {
|
|
369
|
-
placementId: 'bar'
|
|
370
|
-
},
|
|
371
|
-
sizes: [[320, 50], [300, 250], [300, 600]]
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
bidId: 3,
|
|
375
|
-
params: {
|
|
376
|
-
placementId: 'bar'
|
|
377
|
-
},
|
|
378
|
-
sizes: [[320, 50], [300, 250], [300, 600]]
|
|
379
|
-
}
|
|
380
|
-
],
|
|
381
|
-
rawCRB: expectedRawCRBCookie,
|
|
382
|
-
rawCRBLocalStorage: expectedRawCRB
|
|
501
|
+
]
|
|
502
|
+
}
|
|
503
|
+
]
|
|
504
|
+
}
|
|
383
505
|
};
|
|
384
506
|
|
|
507
|
+
if (excludeUserIds) {
|
|
508
|
+
base.user.crbIDs = {};
|
|
509
|
+
delete base.user.clientID;
|
|
510
|
+
delete base.user.kargoID;
|
|
511
|
+
delete base.user.optOut;
|
|
512
|
+
}
|
|
513
|
+
|
|
385
514
|
if (expectedGDPR) {
|
|
386
|
-
base.
|
|
515
|
+
base.user.gdpr = expectedGDPR;
|
|
387
516
|
}
|
|
388
517
|
|
|
389
|
-
if (
|
|
390
|
-
base.
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
518
|
+
if (expectedPage) {
|
|
519
|
+
base.page = expectedPage;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
if (currency) {
|
|
523
|
+
base.cur = currency;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
const reqCount = requestCount++;
|
|
527
|
+
base.requestCount = reqCount
|
|
528
|
+
|
|
529
|
+
if (expectedCRB != null) {
|
|
530
|
+
if (expectedCRB.rawCRB != null) {
|
|
531
|
+
base.rawCRB = expectedCRB.rawCRB
|
|
532
|
+
}
|
|
533
|
+
if (expectedCRB.rawCRBLocalStorage != null) {
|
|
534
|
+
base.rawCRBLocalStorage = expectedCRB.rawCRBLocalStorage
|
|
535
|
+
}
|
|
395
536
|
}
|
|
396
537
|
|
|
397
538
|
return base;
|
|
398
539
|
}
|
|
399
540
|
|
|
400
|
-
function testBuildRequests(
|
|
541
|
+
function testBuildRequests(expected, gdpr) {
|
|
401
542
|
var clonedBids = JSON.parse(JSON.stringify(bids));
|
|
402
|
-
|
|
403
|
-
delete clonedBids[0].userId.tdid;
|
|
404
|
-
}
|
|
543
|
+
|
|
405
544
|
var payload = {
|
|
406
545
|
timeout: 200,
|
|
407
546
|
uspConsent: '1---',
|
|
@@ -415,15 +554,13 @@ describe('kargo adapter tests', function () {
|
|
|
415
554
|
}
|
|
416
555
|
|
|
417
556
|
var request = spec.buildRequests(clonedBids, payload);
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
expect(request.
|
|
422
|
-
expect(request.url).to.equal('https://krk.kargo.com/api/v2/bid');
|
|
423
|
-
expect(request.method).to.equal('GET');
|
|
424
|
-
expect(request.currency).to.equal('USD');
|
|
557
|
+
var krakenParams = request.data;
|
|
558
|
+
|
|
559
|
+
expect(request.url).to.equal('https://krk2.kargo.com/api/v1/prebid');
|
|
560
|
+
expect(request.method).to.equal('POST');
|
|
425
561
|
expect(request.timeout).to.equal(200);
|
|
426
562
|
expect(krakenParams).to.deep.equal(expected);
|
|
563
|
+
|
|
427
564
|
// Make sure session ID stays the same across requests simulating multiple auctions on one page load
|
|
428
565
|
for (let i in sessionIds) {
|
|
429
566
|
if (i == 0) {
|
|
@@ -436,76 +573,93 @@ describe('kargo adapter tests', function () {
|
|
|
436
573
|
|
|
437
574
|
it('works when all params and localstorage and cookies are correctly set', function() {
|
|
438
575
|
initializeKrgCrb();
|
|
439
|
-
|
|
576
|
+
initializePageView();
|
|
577
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
|
|
440
578
|
});
|
|
441
579
|
|
|
442
580
|
it('works when all params and cookies are correctly set but no localstorage', function() {
|
|
443
581
|
initializeKrgCrb(true);
|
|
444
|
-
testBuildRequests(
|
|
582
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle())));
|
|
445
583
|
});
|
|
446
584
|
|
|
447
585
|
it('gracefully handles nothing being set', function() {
|
|
448
|
-
testBuildRequests(
|
|
586
|
+
testBuildRequests(getExpectedKrakenParams(undefined, undefined, true));
|
|
449
587
|
});
|
|
450
588
|
|
|
451
589
|
it('gracefully handles browsers without localStorage', function() {
|
|
452
590
|
simulateNoLocalStorage();
|
|
453
|
-
testBuildRequests(
|
|
591
|
+
testBuildRequests(getExpectedKrakenParams(undefined, undefined, true));
|
|
454
592
|
});
|
|
455
593
|
|
|
456
594
|
it('handles empty yet valid Kargo CRB', function() {
|
|
457
595
|
initializeEmptyKrgCrb();
|
|
458
596
|
initializeEmptyKrgCrbCookie();
|
|
459
|
-
|
|
597
|
+
initializePageView();
|
|
598
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getEmptyKrgCrbOldStyle(), getEmptyKrgCrb()), generatePageView(), true));
|
|
460
599
|
});
|
|
461
600
|
|
|
462
601
|
it('handles broken Kargo CRBs where base64 encoding is invalid', function() {
|
|
463
602
|
initializeInvalidKrgCrbType1();
|
|
464
|
-
|
|
603
|
+
initializePageView();
|
|
604
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(undefined, getInvalidKrgCrbType1()), generatePageView(), true));
|
|
465
605
|
});
|
|
466
606
|
|
|
467
607
|
it('handles broken Kargo CRBs where top level JSON is invalid on cookie', function() {
|
|
468
608
|
initializeInvalidKrgCrbType1Cookie();
|
|
469
|
-
|
|
609
|
+
initializePageView();
|
|
610
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType1()), generatePageView(), true));
|
|
470
611
|
});
|
|
471
612
|
|
|
472
613
|
it('handles broken Kargo CRBs where decoded JSON is invalid', function() {
|
|
473
614
|
initializeInvalidKrgCrbType2();
|
|
474
|
-
|
|
615
|
+
initializePageView();
|
|
616
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(undefined, getInvalidKrgCrbType2()), generatePageView(), true));
|
|
475
617
|
});
|
|
476
618
|
|
|
477
619
|
it('handles broken Kargo CRBs where inner base 64 is invalid on cookie', function() {
|
|
478
620
|
initializeInvalidKrgCrbType2Cookie();
|
|
479
|
-
|
|
621
|
+
initializePageView();
|
|
622
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType2OldStyle()), generatePageView(), true));
|
|
480
623
|
});
|
|
481
624
|
|
|
482
625
|
it('handles broken Kargo CRBs where inner JSON is invalid on cookie', function() {
|
|
483
626
|
initializeInvalidKrgCrbType3Cookie();
|
|
484
|
-
|
|
627
|
+
initializePageView();
|
|
628
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType3OldStyle()), generatePageView(), true));
|
|
485
629
|
});
|
|
486
630
|
|
|
487
631
|
it('handles broken Kargo CRBs where inner JSON is falsey', function() {
|
|
488
632
|
initializeInvalidKrgCrbType4Cookie();
|
|
489
|
-
|
|
633
|
+
initializePageView();
|
|
634
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType4OldStyle()), generatePageView(), true));
|
|
490
635
|
});
|
|
491
636
|
|
|
492
637
|
it('handles a non-existant currency object on the config', function() {
|
|
493
638
|
simulateNoCurrencyObject();
|
|
494
639
|
initializeKrgCrb();
|
|
495
|
-
|
|
640
|
+
initializePageView();
|
|
641
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
|
|
496
642
|
});
|
|
497
643
|
|
|
498
644
|
it('handles no ad server currency being set on the currency object in the config', function() {
|
|
499
645
|
simulateNoAdServerCurrency();
|
|
500
646
|
initializeKrgCrb();
|
|
501
|
-
|
|
647
|
+
initializePageView();
|
|
648
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
|
|
649
|
+
});
|
|
650
|
+
|
|
651
|
+
it('handles non-USD ad server currency being set on the currency object in the config', function() {
|
|
652
|
+
simulateNonUSDAdServerCurrency();
|
|
653
|
+
initializeKrgCrb();
|
|
654
|
+
initializePageView();
|
|
655
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView(), undefined, undefined, 'EUR'));
|
|
502
656
|
});
|
|
503
657
|
|
|
504
658
|
it('sends gdpr consent', function () {
|
|
505
659
|
initializeKrgCrb();
|
|
506
|
-
testBuildRequests(
|
|
507
|
-
testBuildRequests(
|
|
508
|
-
testBuildRequests(
|
|
660
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(true, true)), generateGDPR(true, true));
|
|
661
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(false, true)), generateGDPR(false, true));
|
|
662
|
+
testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(false, false)), generateGDPR(false, false));
|
|
509
663
|
});
|
|
510
664
|
});
|
|
511
665
|
|
|
@@ -604,11 +758,11 @@ describe('kargo adapter tests', function () {
|
|
|
604
758
|
}]
|
|
605
759
|
});
|
|
606
760
|
var expectation = [{
|
|
761
|
+
ad: '<div id="1"></div>',
|
|
607
762
|
requestId: '1',
|
|
608
763
|
cpm: 3,
|
|
609
764
|
width: 320,
|
|
610
765
|
height: 50,
|
|
611
|
-
ad: '<div id="1"></div>',
|
|
612
766
|
ttl: 300,
|
|
613
767
|
creativeId: 'foo',
|
|
614
768
|
dealId: undefined,
|
|
@@ -620,10 +774,10 @@ describe('kargo adapter tests', function () {
|
|
|
620
774
|
}
|
|
621
775
|
}, {
|
|
622
776
|
requestId: '2',
|
|
777
|
+
ad: '<div id="2"></div>',
|
|
623
778
|
cpm: 2.5,
|
|
624
779
|
width: 300,
|
|
625
780
|
height: 250,
|
|
626
|
-
ad: '<div id="2"></div>',
|
|
627
781
|
ttl: 300,
|
|
628
782
|
creativeId: 'bar',
|
|
629
783
|
dealId: 'dmpmptest1234',
|
|
@@ -637,10 +791,10 @@ describe('kargo adapter tests', function () {
|
|
|
637
791
|
}
|
|
638
792
|
}, {
|
|
639
793
|
requestId: '3',
|
|
794
|
+
ad: '<div id="2"></div>',
|
|
640
795
|
cpm: 2.5,
|
|
641
796
|
width: 300,
|
|
642
797
|
height: 250,
|
|
643
|
-
ad: '<div id="2"></div>',
|
|
644
798
|
ttl: 300,
|
|
645
799
|
creativeId: 'bar',
|
|
646
800
|
dealId: undefined,
|
|
@@ -652,10 +806,10 @@ describe('kargo adapter tests', function () {
|
|
|
652
806
|
}
|
|
653
807
|
}, {
|
|
654
808
|
requestId: '4',
|
|
809
|
+
ad: '<div id="4"></div>',
|
|
655
810
|
cpm: 2.5,
|
|
656
811
|
width: 300,
|
|
657
812
|
height: 250,
|
|
658
|
-
ad: '<div id="4"></div>',
|
|
659
813
|
ttl: 300,
|
|
660
814
|
creativeId: 'bar',
|
|
661
815
|
dealId: undefined,
|
|
@@ -670,7 +824,6 @@ describe('kargo adapter tests', function () {
|
|
|
670
824
|
cpm: 2.5,
|
|
671
825
|
width: 300,
|
|
672
826
|
height: 250,
|
|
673
|
-
ad: '<VAST></VAST>',
|
|
674
827
|
vastXml: '<VAST></VAST>',
|
|
675
828
|
ttl: 300,
|
|
676
829
|
creativeId: 'bar',
|
|
@@ -686,7 +839,6 @@ describe('kargo adapter tests', function () {
|
|
|
686
839
|
cpm: 2.5,
|
|
687
840
|
width: 300,
|
|
688
841
|
height: 250,
|
|
689
|
-
ad: '',
|
|
690
842
|
vastUrl: 'https://foobar.com/vast_adm',
|
|
691
843
|
ttl: 300,
|
|
692
844
|
creativeId: 'bar',
|
|
@@ -740,8 +892,8 @@ describe('kargo adapter tests', function () {
|
|
|
740
892
|
});
|
|
741
893
|
});
|
|
742
894
|
|
|
743
|
-
function getUserSyncsWhenAllowed(gdprConsent, usPrivacy) {
|
|
744
|
-
return spec.getUserSyncs({iframeEnabled: true}, null, gdprConsent, usPrivacy);
|
|
895
|
+
function getUserSyncsWhenAllowed(gdprConsent, usPrivacy, gppConsent) {
|
|
896
|
+
return spec.getUserSyncs({iframeEnabled: true}, null, gdprConsent, usPrivacy, gppConsent);
|
|
745
897
|
}
|
|
746
898
|
|
|
747
899
|
function getUserSyncsWhenForbidden() {
|
|
@@ -756,17 +908,17 @@ describe('kargo adapter tests', function () {
|
|
|
756
908
|
shouldSimulateOutdatedBrowser = true;
|
|
757
909
|
}
|
|
758
910
|
|
|
759
|
-
function getSyncUrl(index, gdprApplies, gdprConsentString, usPrivacy) {
|
|
911
|
+
function getSyncUrl(index, gdprApplies, gdprConsentString, usPrivacy, gpp, gppSid) {
|
|
760
912
|
return {
|
|
761
913
|
type: 'iframe',
|
|
762
|
-
url: `https://crb.kargo.com/api/v1/initsyncrnd/${clientId}?seed=3205e885-8d37-4139-b47e-f82cff268000&idx=${index}&gdpr=${gdprApplies}&gdpr_consent=${gdprConsentString}&us_privacy=${usPrivacy}`
|
|
914
|
+
url: `https://crb.kargo.com/api/v1/initsyncrnd/${clientId}?seed=3205e885-8d37-4139-b47e-f82cff268000&idx=${index}&gdpr=${gdprApplies}&gdpr_consent=${gdprConsentString}&us_privacy=${usPrivacy}&gpp=${gpp}&gpp_sid=${gppSid}`
|
|
763
915
|
};
|
|
764
916
|
}
|
|
765
917
|
|
|
766
|
-
function getSyncUrls(gdprApplies, gdprConsentString, usPrivacy) {
|
|
918
|
+
function getSyncUrls(gdprApplies, gdprConsentString, usPrivacy, gpp, gppSid) {
|
|
767
919
|
var syncs = [];
|
|
768
920
|
for (var i = 0; i < 5; i++) {
|
|
769
|
-
syncs[i] = getSyncUrl(i, gdprApplies || 0, gdprConsentString || '', usPrivacy || '');
|
|
921
|
+
syncs[i] = getSyncUrl(i, gdprApplies || 0, gdprConsentString || '', usPrivacy || '', gpp || '', gppSid || '');
|
|
770
922
|
}
|
|
771
923
|
return syncs;
|
|
772
924
|
}
|
|
@@ -803,6 +955,11 @@ describe('kargo adapter tests', function () {
|
|
|
803
955
|
safelyRun(() => expect(getUserSyncsWhenAllowed({ gdprApplies: true, consentString: 'consentstring' })).to.deep.equal(getSyncUrls(1, 'consentstring', '')));
|
|
804
956
|
});
|
|
805
957
|
|
|
958
|
+
it('pass through gpp consent', function () {
|
|
959
|
+
turnOnClientId();
|
|
960
|
+
safelyRun(() => expect(getUserSyncsWhenAllowed(null, null, { consentString: 'gppString', applicableSections: [-1] })).to.deep.equal(getSyncUrls('', '', '', 'gppString', '-1')));
|
|
961
|
+
});
|
|
962
|
+
|
|
806
963
|
it('no user syncs when there is outdated browser', function() {
|
|
807
964
|
turnOnClientId();
|
|
808
965
|
simulateOutdatedBrowser();
|
|
@@ -831,7 +988,7 @@ describe('kargo adapter tests', function () {
|
|
|
831
988
|
expect(triggerPixelStub.getCall(0)).to.be.null;
|
|
832
989
|
spec.onTimeout([{ auctionId: '1234', timeout: 2000 }]);
|
|
833
990
|
expect(triggerPixelStub.getCall(0)).to.not.be.null;
|
|
834
|
-
expect(triggerPixelStub.getCall(0).args[0]).to.exist.and.to.include('https://
|
|
991
|
+
expect(triggerPixelStub.getCall(0).args[0]).to.exist.and.to.include('https://krk2.kargo.com/api/v1/event/timeout');
|
|
835
992
|
expect(triggerPixelStub.getCall(0).args[0]).to.include('aid=1234');
|
|
836
993
|
expect(triggerPixelStub.getCall(0).args[0]).to.include('ato=2000');
|
|
837
994
|
});
|