Skip to content

Fix Prebid User ID bundle diagnostics #886

Description

@ChristianPavilonis

Description

Publisher-specific external Prebid bundles compile an explicit set of User ID submodules, but runtime diagnostics currently compare publisher configuration against the default preset instead of the modules actually included in the generated bundle. Diagnostics also run before late publisher userSync.userIds configuration is available.

As a result, a missing module can reduce pbjs.getUserIdsAsEids() output while diagnostics incorrectly claim that the module is present. The supported module registry also lacks PAIR ID and lockr AIM entries needed by publisher configurations.

Reproduction steps

  1. Generate an external Prebid bundle with a custom integrations.prebid.bundle.user_id_modules list.
  2. Load a publisher page that configures additional User ID modules after the bundle initializes.
  3. Inspect window.__tsjs_prebid_diagnostics.userIdModules during an auction.
  4. Observe that includedModules reflects the default preset and late configured names are absent.

Expected behavior

  • Generated bundles expose their exact selected User ID module names.
  • Runtime diagnostics compare publisher configuration against that exact selection.
  • Diagnostics refresh when requestBids() observes late configuration.
  • Missing-module warnings are emitted once rather than on every auction.
  • PAIR ID and lockr AIM are valid explicit bundle selections.

Affected area

  • Integrations (Prebid)
  • JS build pipeline

Version

Prebid.js 10.26.0 external bundle pipeline.

Logs

No crash is produced. The symptom is incomplete EID output combined with inaccurate runtime diagnostics.

Acceptance criteria

  • The generated User ID import module exports the exact selected module list.
  • Runtime diagnostics use the generated selection instead of the default preset.
  • Diagnostics capture publisher configuration available by requestBids() time.
  • Repeated auctions do not repeat identical missing-module warnings.
  • pairIdSystem and lockrAIMIdSystem are supported registry entries.
  • Unit tests cover generated metadata, late configuration, warning deduplication, and registry mappings.

Metadata

Metadata

Labels

No labels
No labels

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions