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

UID2 & EUID Modules: Add support for EUID and prefer localStorage for both modules. #9968

Merged
merged 18 commits into from
Jun 2, 2023

Conversation

lionell-pack-ttd
Copy link
Contributor

@lionell-pack-ttd lionell-pack-ttd commented May 18, 2023

Type of change

  • Bugfix

  • Feature

  • New bidder adapter

  • Code style update (formatting, local variables)

  • Refactoring (no functional changes, no api changes)

  • Build related changes

  • CI related changes

  • Does this change affect user-facing APIs or examples documented on http://prebid.org?

  • Other

Description of change

I've extracted most of the functionality from the UID2 module to a shared file, to allow re-use with the new EUID module.
I've added a new EUID module.
Both modules now prefer local storage - the UID2 module originally preferred cookie storage. No configs need to change - it's all backward-compatible.

Other information

Docs change PR: prebid/prebid.github.io#4603

modules/euidIdSystem.md Outdated Show resolved Hide resolved
Change UID2 module docs to match EUID docs.
Update param to use uid2Cookie instead of uid2ServerCookie (but still fall back to the old value).
@lionell-pack-ttd lionell-pack-ttd changed the title Draft: Add EUID support and prioritize local storage for UID2. UID2 & EUID Modules: Add support for EUID and prefer localStorage for both modules. May 26, 2023
Copy link
Collaborator

@patmmccann patmmccann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please handle consent more explicitly in both modules; also discuss why euid is different than the uid2 and why a second module is needed?

modules/euidIdSystem.js Show resolved Hide resolved
@patmmccann
Copy link
Collaborator

As an aside, I looked up gvl id 887, that is the prebid gvl id. You shouldnt be using that for uid2, please change that to either ttd or vendorless module; i think the latter is more appropriate.

@patmmccann
Copy link
Collaborator

As an aside, I looked up gvl id 887, that is the prebid gvl id. You shouldnt be using that for uid2, please change that to either ttd or vendorless module; i think the latter is more appropriate.

Or just delete the gvlid from the uid2 module altogether so only euid gets called in europe

Update EUID to check consent.
…esn't provide consent data, and the EUID module requires it.
@lionell-pack-ttd
Copy link
Contributor Author

Please handle consent more explicitly in both modules; also discuss why euid is different than the uid2 and why a second module is needed?

I've added consent handling to both modules. I had a few internal discussions about the possibility of using a single module to handle it, but I got strong pushback - they're different ID spaces with potentially different configuration, and different legal handling as well - not all EUID participants will be UID2 participants, and vice versa.

@patmmccann
Copy link
Collaborator

Nice work!

@patmmccann patmmccann self-assigned this Jun 2, 2023
@patmmccann patmmccann merged commit a2bb2cb into prebid:master Jun 2, 2023
mscottnelson added a commit to 33Across/Prebid.js that referenced this pull request Jun 15, 2023
* master:
  Colossus Bid Adapter: gpp support (prebid#10096)
  Increment version to 8.1.0-pre
  Prebid 8.0.0 release
  Prebid 8: initial release (prebid#10071)
  Increment version to 7.54.1-pre
  Prebid 7.54.0 release
  Update topicsFpdModule.js (prebid#9990)
  Added GPP support (prebid#10094)
  Teads Bid Adapter:Remove auctionId from since it is not used anymore  (prebid#10098)
  HypeLab Bid Adapter: Initial Release (prebid#10003)
  Oxxion Rtd Module: listen onBidResponseEvent instead of onAuctionEndEvent (prebid#10083)
  PubMatic Analytics Adapter : Added extra fields in tracker for analytics (prebid#10090)
  AdHash Bidder Adapter: update for brand safety (prebid#10087)
  videojsVideoProvider: use contrib-ads event names (prebid#10081)
  Increment version to 7.54.0-pre
  Prebid 7.53.0 release
  Add bidgency alias (prebid#10077)
  Weborama RTD Module : start Bidder specific handling removal (prebid#10005)
  ZetaGlobalSspBidAdapter: change logic around mediaType (prebid#10074)
  add tmax to sovrnBidAdapter (prebid#10059)
  Mediasquare Bid Adapter: Avoid to run bidwon event on video impressions (prebid#10068)
  FreePass User ID Module : initial release (prebid#9814)
  Conceptx Bid Adapter : initial release (prebid#9835)
  beOp BidAdapter: FirstPartyData management and ingest Permutive segments (prebid#9947)
  StroeerCore Bid Adapter: add price floor support (prebid#9962)
  YieldlabBidAdapter updated native asset mapping (prebid#9989)
  Mediasquare Bid Adapter: handle context for video bids (prebid#10055)
  Add new alias - Apester (prebid#10057)
  Criteo Bid Adapter: Pass outstream video renderer method (prebid#10054)
  Add: Viously GVL ID (prebid#10061)
  1plus x RTD Adapter: remove bidder specific handling enforcement (DC 3634) (prebid#10001)
  Sirdata RTD Module : bidder specific handling removal (prebid#9970)
  feat: pass video.plcmt [PB-1736] (prebid#10058)
  Update adkernelBidAdapter.js (prebid#10056)
  Eskimi Bid Adapter: Added support for video (prebid#9985)
  Richaudience Bid Adapter : add compability with GPID (prebid#9928)
  Add GVL ID for pairId userId submodule. (prebid#10053)
  Update nexx360BidAdapter.js (prebid#10042)
  Logicad Bid Adapter: Add topics and uach support (prebid#10045)
  change session_id fallback to bidderRequestId (prebid#10047)
  ZetaGlobalSsp Bid Adapter : process array of sizes (prebid#10039)
  AdagioBidAdapter: change outstream renderer (prebid#10035)
  update greenbids analytics endpoint (prebid#10037)
  ID5 User Id module - get whole ext object from server response (prebid#10036)
  Criteo Bid Adapter : Bump fastbid version to 136 (prebid#9973)
  UID2 & EUID Modules: Add support for EUID and prefer localStorage for both modules. (prebid#9968)
  Schain module: do not share schain objects across different bid requests (prebid#10021)
  airgridRtdProvider: use provided tag insertion method `loadExternalScript` (prebid#9901)
  Increment version to 7.53.0-pre
  Prebid 7.52.0 release
  Yahoo ConnectId - fixed tests. (prebid#10033)
  Core & Multiple modules: activity controls (prebid#9802)
  Yahoo ConnectId - gpp consent module usage. (prebid#10022)
  Yahoo bid adapter:  User sync pixels, consent signals update (prebid#10028)
  Core: fix `markWinningBidAsUsed` to set bid as winning and not just rendered (prebid#10014)
  Adriver Id System: add cfa param to url (prebid#10024)
  Undertone Bid Adapter : added GPP and video placements (prebid#10016)
  Oxxion Analytics Adapter : initial adapter release (prebid#9682)
  Connect id : storage duration updates and no longer require puid or he to be set (prebid#9965)
  Update ad generation adapter 1.6.0: update userSync (prebid#9984)
  fix module type (prebid#10019)
  Stv Bid Adapter: add schain support (prebid#10010)
  GrowthCode RTD  : initial release (prebid#9852)
  ShareThrough Bid Adapter : fix playerSize (prebid#10011)
  chore: update default video placement value [PB-1560] (prebid#9948)
  Smartadserver Bid Adapter: support GPID (prebid#10004)
  Criteo Adapter: Add support of bcat/badv/bapp (prebid#10013)
  Zeta Global SSP Bid Adapter: Added support for video.plcmt (prebid#10009)
  Pair Id System: less noisy errors (prebid#9998)
  Increment version to 7.52.0-pre
  Prebid 7.51.0 release
  Appnexus Bid Adapter: added uol as an alias (prebid#10002)
  Adquery Bid Adapter : added bid request: version and bidPageUrl (prebid#9946)
  MinuteMedia Bid Adapter: support sua and plcmt params (prebid#9997)
  Adkernel Bid Adapter: add didnadisplay alias (prebid#10000)
  Adrino Bid Adapter: pass adUnitCode to adserver (prebid#9993)
musikele pushed a commit to rubicon-project/Prebid.js that referenced this pull request Aug 28, 2023
… both modules. (prebid#9968)

* Move the UID2 API client to its own file and refactor some of the UID2 module.

* Provide local-storage option in response to complaints that the cookie can grow large enough to cause problems for publishers.

* Extract a storagemanager from the UID2 ID module so that code can be re-used for EUID.

* Further refactoring. Add basic EUID module based on the refactored code. Still needs tests and testing.

* Factor out some shared testing code.

Add EUID module tests.

* Add EUID markdown docs.

Some minor changes.

* Fill out EUID module docs.

* Rename cookie param for EUID.

Fix some docs.

* Some EUID docs tweaks.

Change UID2 module docs to match EUID docs.
Update param to use uid2Cookie instead of uid2ServerCookie (but still fall back to the old value).

* Added a test and fixed a bug that caused the server only cookie config to fail for subsequent page views.

* Added EUID example.

* Update some tests.

* Added lint rule exception - it makes sense in this case.

* Add missing config for updated test.

* Update expected number of Eids in test.

* Remove out-of-date TODOs.

* Update UID2 module to not run if GDPR applies.

Update EUID to check consent.

* Remove EUID from a specific test - it no longer works as that test doesn't provide consent data, and the EUID module requires it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants