Skip to content

Clarify floor price enforcement authority across the auction pipeline #698

@prk-Jr

Description

@prk-Jr

Context

Floor prices are enforced in two places:

  1. Edge (authoritative): apply_floor_prices() in auction/orchestrator.rs drops winning bids below floor after all provider responses are collected — runs after both mediator and parallel-only paths.
  2. PBS (advisory): imp.bidfloor / imp.bidfloorcur are sent in the OpenRTB request. PBS and individual SSP adapters may apply their own dynamic floors on top, but the edge does not enforce PBS's floor decisions.

Open questions

  • APS encoded-price gap: APS bids have price = None (encoded price in metadata, decoded by mediation). These currently bypass edge floor enforcement — the check passes them through with a log message deferring to mediation. Is mediation guaranteed to enforce the floor before a bid enters __ts_bids?
  • Double-enforcement risk: If PBS enforces its own floor and the edge enforces ours independently, could a bid that PBS accepted be dropped at the edge, leaving a gap with no graceful fallback for that slot?
  • Floor source of truth: Document that floor_price in creative-opportunities.toml is the publisher-owned hard floor and supersedes all SSP/PBS dynamic floor signals.

Action

  • Confirm mediation layer enforces floor on APS decoded-price bids
  • Add a test covering APS bid below floor reaching __ts_bids (currently no coverage)
  • Document the floor enforcement layering in auction/orchestrator.rs

Parent: #677

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions