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

Move special Bid adapter handling from RTD modules into those adapters #8596

Closed
patmmccann opened this issue Jun 22, 2022 · 15 comments
Closed

Comments

@patmmccann
Copy link
Collaborator

RTD adapters, particularly those that pre-date standardization of the user.data or site.content.data objects, often have special handling for various bid adapters that don't yet accept standard first party data objects. Discussion in the taxonomy and js committees has suggests this special handling should be moved into those respective bid adapters so that the data controller module can apply.

List of special handlings subject to research.

@ChrisHuie
Copy link
Collaborator

ChrisHuie commented Dec 14, 2022

List of current RTD modules that have bidder specific logic.

1plusXRTD - Appnexus specific handling
Airgrid - Appnexus specific handling
Captify - Appnexus specific handling

Weboraama - Appnexus, Rubicon, Pubmatic, and SmartAdServer specific logic

Sirdata - CurationID and specific logic for several specific bidders including Xandr, Pubmatic, OpenX, Smart, Rubicon,
IX, Proxistore, Criteo, Triplelift, Avocet, Smaato, and Yahoossp

@patmmccann
Copy link
Collaborator Author

patmmccann commented Mar 8, 2023

from a conversation with the permutive team on #9555

There are no concerns with an rtd adapter passing information that is private to a bidder, but the js shouldn't need to name bidders to do so. It could take config that looks roughly like this to achieve it:

permutiveRTD: { privateSegments: { what: '_prubicon', who: 'rubicon' where: 'user.ext.data._prubicon'} { who: 'appnexus', what: '_pappnexus', where: 'site.keywords.ext.appnexus' }}

@ydennisy
Copy link
Contributor

@patmmccann I stumbled across this accidentally!

I am about to make some changes to our adapter - is there anything I can do for this yet, I assume from your message above this is a little while out.

@patmmccann
Copy link
Collaborator Author

This issue is approved for prebid 8 enforcement

@patmmccann
Copy link
Collaborator Author

patmmccann commented May 15, 2023

Adding some detail here:

AppNexus picks up

let anAuctionKeywords = deepClone(config.getConfig('appnexusAuctionKeywords')) || {};
and three adapters write to that location

config.setConfig({

config.setConfig({

config.setConfig({

RTD adapters are not supposed to do setConfig with Prebid 7 was my recollection, but perhaps that is in error. My proposal is that all three of these adapters are modified to convert their segments into keywords for the configuration-specified adapter's request object in the format key=value where the key also comes from configuration and defaults to respectively:

airgrid: 'perid' as matching

perid: audiences,

captify: 'captify_segments' as matching

'captify_segments': segments,

1plusX: '1plusX' as matching

'1plusX': audiences,

In this manner none of these rtd adapters will have bidder specific code and publishers will have to specify the bidders that get their ortb2 object keywords appended in the rtd module config.

Additionally, the appnexus adapter should maintain line

let anAuctionKeywords = deepClone(config.getConfig('appnexusAuctionKeywords')) || {};
in case publishers are setting this manually now.

However, the entry point into the appnexus adapter for rtd keywords will now be

let ortb2KeywordsObjList = grabOrtb2Keywords(ortb2).map(keyStr => convertStringToKeywordsObj(keyStr));

What do we think @dgirardi @jsnellbaker

This seems to avoid the more heavyhanded #9952 type PR

@patmmccann
Copy link
Collaborator Author

patmmccann commented May 15, 2023

In the case of Weborama, bidder specific handling is deeply embedded into the adapter and difficult to remove, with many adapters having data written directly to params, eg

#handlePubmaticBid(bid, profile) {

fyi @peczenyj

Potentially the same with Sirdata, eg

I am not sure if it is better to delete these handlings or just drop the module from 8 until we can contact the sirdata team @nouchy @RemiSirdata

in the case of permutive, it appears #9639 might be the last piece of the puzzle for them

@dgirardi
Copy link
Collaborator

In this manner none of these rtd adapters will have bidder specific code and publishers will have to specify the bidders that get their ortb2 object keywords appended in the rtd module config.

I believe those keywords would be meaningless to everyone except appnexus. It's still an improvement since at least aliases and clones could work, but it's still special handling; I'd prefer if the authors tried to use user.data (and kudos to airgrid for attempting it).

@patmmccann
Copy link
Collaborator Author

#9628 rather for permutive

@nouchy
Copy link
Contributor

nouchy commented May 15, 2023

In the case of Weborama, bidder specific handling is deeply embedded into the adapter and difficult to remove, with many adapters having data written directly to params, eg

#handlePubmaticBid(bid, profile) {

fyi @peczenyj

Potentially the same with Sirdata, eg

I am not sure if it is better to delete these handlings or just drop the module from 8 until we can contact the sirdata team @nouchy @RemiSirdata

in the case of permutive, it appears #9639 might be the last piece of the puzzle for them

Hi... Now bidders like Xandr (Appnexus) also work we ortb2. We'll ugrade our RTD submodule ASAP, and remove non-standard handlers. Thanks !

@peczenyj
Copy link
Contributor

Hey @patmmccann and otherw

we (as Weborama) don’t mind in remove the specific code to Appnexus and other SSPs if they start to support standard user.data or site.content.data objects (or deleted by not support it)

@patmmccann
Copy link
Collaborator Author

@nouchy excellent!

@nouchy
Copy link
Contributor

nouchy commented May 18, 2023

@nouchy excellent!

:) Done... Here is the PR : #9970

Thanks Patrick

@patmmccann
Copy link
Collaborator Author

@peczenyj curious for an update, thanks!

@peczenyj
Copy link
Contributor

peczenyj commented May 23, 2023 via email

@peczenyj
Copy link
Contributor

Someone can check? I am still not sure Appnexus

#10005

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

6 participants