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

User id module overrides ortb2.user.ext.eids content #11954

Closed
leonardlabat opened this issue Jul 10, 2024 · 10 comments
Closed

User id module overrides ortb2.user.ext.eids content #11954

leonardlabat opened this issue Jul 10, 2024 · 10 comments
Assignees

Comments

@leonardlabat
Copy link
Contributor

Type of issue

Bug

Description

If a publisher uses the setBidderConfig API to set manually some identifier in the ortb2.user.ext.eids structure, and if the publisher also uses some user id module, then unfortunately the bidder adapters will get only the eids resolved by the user id module.

Most likely this is because this row https://github.com/prebid/Prebid.js/blob/master/modules/userId/index.js#L1199 overrides the potential existing value instead of merging the eids.

Steps to reproduce

  1. Call setBidderConfig and set some eids under ortb2.user.ext.eids structure
  2. Set some user id module on the page
  3. Look at the ortb2 request received by the bidder adapter

Expected results

My bidder adapter is called with a request that contains both the eids set through the setBidderConfig call and the eids resolved by the user id module.

Actual results

My bidder adapter is called with a request that contains only the eids resolved by the user id module.

@dgirardi
Copy link
Collaborator

The line you linked affects only some adapters (those that use shared ortb2 conversion utilities). In general this needs to be done adapter by adapter.

A workaround is to use pubProvidedId, which is essentially a userId wrapper around eids. However it only allows a single set of EIDs which can be restricted to some bidders, not different EIDs for different bidders.

Related to #9951 and the deprecation of bidRequest.userId mentioned in the 9.0 release notes.

Proposal:

  1. Update ortbConverter as a stopgap, which may be enough if you're only dealing with adapters that use it.
  2. Make eids part of first party data (Feature request: populate first party data with user EIDs #9951), appending and not overriding pub-provided EIDs
  3. Bidders should then stop using bid requests' userId/userIdAsEids and pick up ortb2.user.ext.eids instead
  4. Remove both userId and userIdAsEids from bid requests for prebid 10.

@patmmccann
Copy link
Collaborator

setBidderConfig wasn't a known pattern to me for telling bid adapters about IDs, pubProvidedId has been how we've imagined people do this, although it hasn't been without complaints. Is setBidderConfig popular, is this hypothetical, or something in between?

@patmmccann
Copy link
Collaborator

@dgirardi is step 1 above simply to merge instead of set in the line @leonardlabat mentions?

Of note @leonardlabat is an adapter maintainer of grid and criteo adapters

@FlorentDancy
Copy link
Contributor

Is setBidderConfig popular, is this hypothetical, or something in between?

For context, the reason we developed the support to collect user IDs via setBidderConfig() is that some publishers told us that they didn't want to have to install another module (pubprovidedid) to pass a user ID to us, so passing it via setBidderConfig() was easier for them.

@dgirardi dgirardi moved this from Triage to Needs Req in Prebid.js Tactical Issues table Jul 15, 2024
@patmmccann
Copy link
Collaborator

@dgirardi is step one of your proposal ready for dev? we received another report of this concern

@dmdabbs
Copy link

dmdabbs commented Aug 1, 2024

Can Prebid ensure its id, SharedID, is not overridden? Kind of like The Highlander, there can only be one, right?

@jdwieland8282
Copy link
Member

the PubProvided module is definitely where a publisher derived user id should land.

@patmmccann
Copy link
Collaborator

@dmdabbs I think your request deserves its own issue, opening one

@pycnvr
Copy link
Collaborator

pycnvr commented Aug 2, 2024

The merged list will have multiple SharedIDs, right? Would that be a sufficient indicator that publisher has supplied additional ID?

@patmmccann patmmccann moved this from Ready for Dev to In progress in Prebid.js Tactical Issues table Aug 8, 2024
@dgirardi
Copy link
Collaborator

Closing with #12110

@github-project-automation github-project-automation bot moved this from In progress to Done in Prebid.js Tactical Issues table Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

7 participants