ORTB
…
Native section navigation

Native

Native Ads is an OpenRTB sub-protocol published by IAB Tech Lab, defining the asset request/response structures of native ad slots: title/image/video/data assets, context and placement classification, event tracking and third-party ad serving (assetsurl/DCO). On-site data covers all three versions: 1.0 / 1.1 / 1.2.

On this page

OpenRTB request & response carriage

Native is an OpenRTB sub-protocol: the asset request travels in BidRequest.imp.native and the asset response in BidResponse.seatbid.bid.adm (since 1.2, assetsurl/dcourl may switch to third-party fetching). This section describes what each side carries, followed by the four carriage points.

  • Request side · BidRequest.imp.nativeCarries the Native Markup Request (§4.1): the exchange declares the acceptable asset list (title/img/video/data), classification fields (context/contextsubtype/plcmttype) and tracking support (eventtrackers, since 1.2); the DSP parses it and bids accordingly.
  • Response side · BidResponse.seatbid.bid.admCarries the Native Markup Response (§5.1): the DSP returns assets per the request contract (each asset echoes the request id) plus the link click-through; since 1.2, assetsurl/dcourl may switch to third-party fetching; the exchange/renderer renders per contract and fires eventtrackers (legacy: imptrackers/jstracker).

Four carriage points

  • BidRequest.imp.nativeRequest-side carriage point: Native Markup Request (JSON string or direct object)
  • BidResponse.seatbid.bid.admResponse-side carriage point: Native Markup Response (asset JSON)
  • assetsurl / dcourlSince 1.2: third-party ad serving; the SSP fetches assets from a third-party URL, dcourl carries DCO
  • eventtrackersSince 1.2: event tracking via event/method pairs, replacing imptrackers/jstracker

Object model reference tree (1.2 baseline)

Bid Request side (§4)

├─ assets 1..* ── Asset Request §4.2
│ ├─ title 0..1 ── Title Request §4.3
│ ├─ img 0..1 ── Image Request §4.4
│ ├─ video 0..1 ── Video Request §4.5
│ └─ data 0..1 ── Data Request §4.6
├─ eventtrackers 0..* ── Event Trackers Request §4.7 · 1.2+
├─ context / contextsubtype / plcmttype ── classification trio, enums in §7.1–7.3
├─ privacy ── regulation flag (0/1)
└─ [≤1.1] layout / adunit legacy classification: deprecated in 1.1, removed in 1.2

Bid Response side (§5)

├─ assets 1..* ── Asset Response §5.2
│ ├─ title ── Title Response §5.3
│ ├─ img ── Image Response §5.4
│ ├─ data ── Data Response §5.5
│ └─ video ── Video Response §5.6
├─ link 1 ── Link Response §5.7 ── click-through
├─ eventtrackers 0..* ── Event Tracker Response §5.8 · 1.2+
├─ assetsurl / dcourl ── third-party ad serving (1.2): fetch assets / DCO from a third-party URL
└─ [≤1.1] imptrackers / jstracker legacy tracking: replaced by eventtrackers in 1.2

Tree follows the Native 1.2 current official spec: 1.0/1.1 have no eventtrackers branch (introduced in 1.2); classification moved from layout/adunit (1.0) to the context trio (1.1+); warn-colored lines are legacy constructs deprecated/removed along that version line.

Version evolution

Three versions, two main threads: the classification system (layout/adunit → context trio) and the tracking mechanism (imptrackers/jstracker → eventtrackers). In reverse release order; entries lead to each version's trio.

  1. Native 1.2

    current2017-07

    1.2 introduced event trackers (eventtrackers replacing imptrackers/jstracker), the privacy flag, third-party ad serving (assetsurl) and DCO (beta); LayoutID/AdUnitID were deprecated in favor of Context/Placement classification.

    15 objects · 79 fields · 7 enum tables (46 values) · 3 official samples

    Data baseline: collected from the official Markdown source (commit 5b9afa2) on 2026-08-24 · CC-BY 3.0 (IAB Tech Lab)

  2. Native 1.1

    legacy·draft2016-03(定稿 2015-10)

    Removed the 'native' root node; added Context/ContextSubType/PlacementType classification fields; announced the deprecation of LayoutID/AdUnitID; added recommended asset sizes/lengths.

    13 objects · 62 fields · 7 enum tables (53 values) · 2 official samples

    Data baseline: OCR transcript of the official legacy PDF, collected on 2026-08-25 · CC-BY 3.0 (IAB / IAB Tech Lab)

  3. Native 1.0

    legacy·draft2015-02(Final Draft 1.0.0.2 定稿 2015-01)

    The first final version: request/response asset models, the 'native' root node, and LayoutID/AdUnitID classification.

    14 objects · 60 fields · 4 enum tables (31 values) · 4 official samples

    Data baseline: OCR transcript of the official legacy PDF, collected on 2026-08-25 · CC-BY 3.0 (IAB / IAB Tech Lab)

Data sources

Primary source for 1.2: the official Markdown in the IAB Tech Lab Native-Ads repository (CC-BY 3.0); transcripts for 1.0/1.1: OCR of the official legacy PDFs. Cross-validation sources: the official working group's openrtb2x (1.0 JSON Schema and fixtures), OpenRTB 2.x, AdCOM and the prebid openrtb2 Go models. See data/native-spec/PROVENANCE.json in the repository.

Field tables, enumeration tables and samples have been proofread item by item against the official source and cross-validated with the prebid openrtb2 Go models; official errata are kept faithfully and every divergence is registered in the provenance record.

Recommended reading path

Six-step reading order: the first two establish carriage and object structure on this page, the middle three enter the 1.2 body, and the last loops back to the OpenRTB carriage fields.

  1. 1Carriage: OpenRTB request & response
  2. 2Object model reference tree (1.2 baseline)
  3. 31.2 objects & fields: request/response sides
  4. 4Classification & enumeration tables (§7)
  5. 5Official samples: full request/response payloads
  6. 6Cross-protocol: OpenRTB Imp / Bid carriage fields