Skip to content

Commit e2c5747

Browse files
committed
add ortb2 user.keywords on appnexs
1 parent a457dc6 commit e2c5747

File tree

3 files changed

+70
-9
lines changed

3 files changed

+70
-9
lines changed

modules/weboramaRtdProvider.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ class WeboramaRtdProvider {
690690
const bidder = bidderAliasRegistry[bid.bidder] || bid.bidder;
691691

692692
if (bidder == 'appnexus') {
693-
this.#handleAppnexusBid(reqBidsConfigObj, bid, profile);
693+
this.#handleAppnexusBid(reqBidsConfigObj, bid, profile, metadata);
694694
}
695695
}
696696

@@ -714,13 +714,15 @@ class WeboramaRtdProvider {
714714
* @param {Object} bid
715715
* @param {Object} bid.parameters
716716
* @param {Profile} profile
717+
* @param {dataCallbackMetadata} metadata
717718
* @returns {void}
718719
*/
719720
// eslint-disable-next-line no-dupe-class-members
720-
#handleAppnexusBid(reqBidsConfigObj, bid, profile) {
721-
const base = 'params.keywords';
722-
this.#assignProfileToObject(bid, base, profile);
723-
// this.#setBidderOrtb2(reqBidsConfigObj.ortb2Fragments?.bidder, bid.bidder, base, profile);
721+
#handleAppnexusBid(reqBidsConfigObj, bid, profile, metadata) {
722+
this.#assignProfileToObject(bid, 'params.keywords', profile);
723+
if (metadata.user) {
724+
this.#setBidderOrtb2(reqBidsConfigObj.ortb2Fragments?.bidder, bid.bidder, 'user.keywords', profile);
725+
}
724726
}
725727

726728
/** handle generic bid via ortb2 arbitrary data

modules/weboramaRtdProvider.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -575,11 +575,11 @@ pbjs.que.push(function () {
575575
576576
### Supported Bidders
577577
578-
We currently support the following bidder adapters with dedicated code:
578+
We set the bidder (and global, if no specific bidders are set on `sendToBidders`) ortb2 `site.ext.data` and `user.ext.data` sections (as arbitrary data).
579579
580-
* AppNexus SSP
580+
For `Appnexus SSP` we also set the user data into `users.keywords` fragment.
581581
582-
We also set the bidder (and global, if no specific bidders are set on `sendToBidders`) ortb2 `site.ext.data` and `user.ext.data` sections (as arbitrary data). The following bidders may support it, to be sure, check the `First Party Data Support` on the feature list for the particular bidder from [here](https://docs.prebid.org/dev-docs/bidders).
582+
The following bidders may support it, to be sure, check the `First Party Data Support` on the feature list for the particular bidder from [here](https://docs.prebid.org/dev-docs/bidders).
583583
584584
* Adagio
585585
* AdformOpenRTB

test/spec/modules/weboramaRtdProvider_spec.js

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1449,6 +1449,19 @@ describe('weboramaRtdProvider', function() {
14491449
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(data);
14501450
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.be.undefined;
14511451
['smartadserver', 'pubmatic', 'appnexus', 'rubicon', 'other'].forEach((v) => {
1452+
if (v == 'appnexus') {
1453+
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
1454+
user: {
1455+
ext: {
1456+
data: data
1457+
},
1458+
keywords: data,
1459+
}
1460+
});
1461+
1462+
return
1463+
}
1464+
14521465
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
14531466
user: {
14541467
ext: {
@@ -1582,6 +1595,7 @@ describe('weboramaRtdProvider', function() {
15821595
ext: {
15831596
data: data
15841597
},
1598+
keywords: data,
15851599
}
15861600
});
15871601

@@ -1707,6 +1721,7 @@ describe('weboramaRtdProvider', function() {
17071721
ext: {
17081722
data: data
17091723
},
1724+
keywords: data
17101725
}
17111726
});
17121727

@@ -2186,6 +2201,19 @@ describe('weboramaRtdProvider', function() {
21862201
}
21872202
});
21882203
['smartadserver', 'pubmatic', 'appnexus', 'rubicon', 'other'].forEach((v) => {
2204+
if (v == 'appnexus') {
2205+
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
2206+
user: {
2207+
ext: {
2208+
data: data
2209+
},
2210+
keywords: data,
2211+
}
2212+
});
2213+
2214+
return
2215+
}
2216+
21892217
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
21902218
user: {
21912219
ext: {
@@ -2253,6 +2281,19 @@ describe('weboramaRtdProvider', function() {
22532281
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(defaultProfile);
22542282
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.be.undefined;
22552283
['smartadserver', 'pubmatic', 'appnexus', 'rubicon', 'other'].forEach((v) => {
2284+
if (v == 'appnexus') {
2285+
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
2286+
user: {
2287+
ext: {
2288+
data: defaultProfile
2289+
},
2290+
keywords: defaultProfile,
2291+
}
2292+
});
2293+
2294+
return
2295+
}
2296+
22562297
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
22572298
user: {
22582299
ext: {
@@ -2327,6 +2368,19 @@ describe('weboramaRtdProvider', function() {
23272368
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(defaultProfile);
23282369
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.be.undefined;
23292370
['smartadserver', 'pubmatic', 'appnexus', 'rubicon', 'other'].forEach((v) => {
2371+
if (v == 'appnexus') {
2372+
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
2373+
user: {
2374+
ext: {
2375+
data: defaultProfile
2376+
},
2377+
keywords: defaultProfile,
2378+
}
2379+
});
2380+
2381+
return
2382+
}
2383+
23302384
expect(reqBidsConfigObj.ortb2Fragments.bidder[v]).to.deep.equal({
23312385
user: {
23322386
ext: {
@@ -2457,7 +2511,12 @@ describe('weboramaRtdProvider', function() {
24572511
webo_cs: ['foo', 'bar'],
24582512
webo_audiences: ['baz'],
24592513
webo_bar: ['baz'],
2460-
}
2514+
},
2515+
},
2516+
keywords: {
2517+
webo_cs: ['foo', 'bar'],
2518+
webo_audiences: ['baz'],
2519+
webo_bar: ['baz'],
24612520
},
24622521
}
24632522
});

0 commit comments

Comments
 (0)