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)
Bid Response side (§5)
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.
Native 1.2
current2017-071.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)
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)
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.