What is the ext field in OpenRTB and how do extensions work?

Answer

ext is a placeholder object for exchange-specific extensions, and by convention it may appear on any OpenRTB object. The spec deliberately leaves its structure undefined; an exchange using extensions is responsible for documenting them to its bidders. IAB Tech Lab hosts well-known community extensions in its GitHub repository, and successful extensions often get promoted into the core spec later: regs.ext.gdpr, user.ext.consent, and source.ext.schain in 2.5 all became first-class fields (regs.gdpr, user.consent, source.schain) in 2.6. Validators can only check documented fields, so undocumented ext payloads are effectively opaque.

Fields in this answer

FieldTypeSinceStatus in 2.6
regs.gdprinteger2.6-202204Current
user.consentstring2.6-202204Current
source.schainobject2.6-202204Current

Go deeper

More questions on openrtb basics and the bid request

All 93 questions are listed in the OpenRTB FAQ.