Device.ifa
The device's resettable advertising ID, sent unhashed, such as Apple's IDFA, Google's Android advertising ID, or the equivalent ID on a CTV platform.
Field facts
- Path
device.ifa- Object
- Device
- Type
- string
- Requirement
- Optional
- Added
- OpenRTB 2.2
- Spec section
- 3.2.18
How it is used
This is the main identity signal for app and CTV inventory. Unless buyer and seller agree otherwise, it should come straight from the operating system's advertising API rather than being generated by the app. When the user limits tracking, iOS returns an all-zero ID and Android does the same after the user deletes the ID, so the field arrives zeroed or absent and device.lmt should be 1. Whether it may be sent at all also depends on the consent and regulatory signals in the same request.
Example
Where the field sits in a payload, with everything else left out:
{
"id": "req-1",
"device": {
"ifa": "AAAAAAAA-BBBB-4CCC-8DDD-EEEEEEEEEEEE"
}
}Common mistakes
- Treating 00000000-0000-0000-0000-000000000000 as a real ID. It is what the OS returns when tracking is limited; filter it out before frequency capping or matching.
- Sending a live
ifawithdevice.lmtset to 1. RTBlint reports that combination as a privacy signal contradiction. - Hashing the value. The field is meant to be sent in the clear, and a hash breaks matching for every buyer that expects the raw ID.
Version history
Added in OpenRTB 2.2, and present in the latest snapshot. The table shows how each version's spec text types the field.
| Versions | Type in the spec | Required | Deprecated |
|---|---|---|---|
| 2.2 | string | No | No |
| 2.3 to 2.3.1 | string | No | No |
| 2.4 | string | No | No |
| 2.5 to 2.6-202606 | string | No | No |
Versioned rules that name this field
openrtb.2.0.device.ifaOpenRTB 2.0 added mobile device ID support for attribution and audience handling.