OpenRTB is the IAB Tech Lab standard that defines how bid requests and responses flow between publishers (via SSPs) and buyers (via DSPs) in programmatic advertising. For CTV, OpenRTB has specific extensions that carry the device type, content metadata, app information, and deal IDs that CTV inventory requires. Understanding what is in an India CTV OpenRTB bid request — and what India publishers actually send — is diagnostic knowledge for troubleshooting delivery and targeting problems.
Core OpenRTB bid request objects for CTV
BidRequest.imp (impression): Describes the ad opportunity. For CTV video, imp.video is populated with: mimes (supported video formats, typically video/mp4), minduration and maxduration (minimum and maximum ad length in seconds), protocols (VAST versions supported), linearity (1 = in-stream), placement (1 = in-stream), w and h (video player dimensions in pixels).
BidRequest.app (application): Describes the publisher app. For CTV: app.name (e.g., "JioHotstar"), app.bundle (e.g., "com.jio.jiohotstar"), app.storeurl. The bundle ID is used for brand safety app list matching in DSPs.
BidRequest.device: Describes the device. For CTV: device.devicetype = 3 (connected TV) or 7 (smart TV). device.ifa = the device advertising ID (GAID, TIFA, AFAI, LGUDID). device.ip = IP address for geo matching. device.make and device.model = manufacturer and model (e.g., "Samsung", "QN55Q80C").
CTV-specific OpenRTB fields India planners should know
| Field | What it carries | Why it matters |
|---|---|---|
| device.devicetype | Device type code (3=CTV, 4=phone, 5=tablet) | Enables CTV-only targeting in DSP |
| device.ifa | Device advertising ID (GAID, TIFA, AFAI) | Foundation for audience targeting and frequency capping |
| app.bundle | App bundle ID (e.g., com.samsung.tvplus) | App list inclusion/exclusion for brand safety |
| imp.video.protocols | Supported VAST versions (e.g., [2,3,5,6]) | Determines which VAST versions can be served |
| imp.video.maxduration | Maximum ad duration in seconds | Prevents 30s ads from being served on 15s slots |
| pmp.deals | Deal IDs associated with this impression | Triggers deal ID bidding rules in the DSP |
| content.cat | IAB content category (e.g., IAB17 = sports) | Enables content category targeting |
India-specific OpenRTB field gaps
device.ifa missing or zeroed: Approximately 30–40% of India CTV bid requests contain a zeroed device ID (all zeros) or an absent device.ifa. This occurs when the device has opted out of ad tracking, the app lacks device ID permission, or the publisher has not implemented device ID capture correctly. Impressions without a valid device.ifa cannot be targeted by audience segment or frequency-capped by device ID.
content.cat absent: Many India CTV publishers do not populate content.cat in bid requests. Without content category data, DSP content-based targeting (buy only in sports, exclude news) falls back to publisher-level targeting only.
app.bundle inconsistent: Some India publishers use different bundle IDs across TV OS implementations (e.g., different bundles for the same app on Android TV vs Samsung Tizen). This causes app-level inclusion/exclusion lists to miss impressions from the same publisher on a different TV OS.
BidRequest.app vs BidRequest.site: On CTV, the correct object is app, not site (which is for web browsers). Some India CTV publishers have historically sent site objects, causing DSP targeting and brand safety tools to misclassify the inventory as web.
Using OpenRTB data for campaign diagnostics
When a CTV campaign underdelivers or shows unexpected device type distribution, examining bid request logs reveals which OpenRTB fields are missing or incorrect. If device.devicetype = 4 (phone) appears in a CTV-targeted campaign, the publisher is misclassifying mobile impressions as CTV. If device.ifa is zeroed across most impressions, frequency capping is non-functional. OpenRTB field validation is step one in any India CTV delivery diagnostic.