BidRequest.user
User
The human behind the request: identifiers, audience segments and consent.
Fields
| Field | Type | Level | Description |
|---|---|---|---|
| id | string | optional | Exchange-specific user identifier. |
| buyeruid | string | optional | Bidder-specific user identifier, from a cookie sync. |
| eids | object[] | optional | Extended identifiers from third-party identity providers. |
| data | object[] | optional | Third-party audience data segments. |
| consent | string | optional | The TCF consent string. |
| geo | object | optional | The user's home location, as distinct from the device's current one. |
| yob | integer | optional | Year of birth as a four-digit integer. |
| gender | string | optional | Gender: M, F or O. |
Example
{
"id": "55816b39711f9b5acf3b90e313ed29e51665623f",
"buyeruid": "545678765467876567898765678987654",
"consent": "CPcqBLhPcqBLhAcABBENCZ…",
"eids": [
{
"source": "example-id.com",
"uids": [{ "id": "abc123", "atype": 1 }]
}
]
}What matters in practice
eids is where identity now lives. As third-party cookies became unreliable, the alternative identifiers — publisher-provided IDs, hashed email-derived IDs, and the rest — moved into this array rather than into buyeruid, so an integration reading only buyeruid will see addressability collapse while the request in front of it is carrying several usable identifiers. Note also that user.geo is the user's home location and device.geo is where they are now; conflating them is a quiet targeting bug.
Related objects
Field names, types and requirement levels from the IAB Tech Lab OpenRTB 2.6 specification (2.6-202211), verified 30 July 2026. The practice notes are not spec text.