Vungle Exchange OpenRTB 2.5 Native Ad Integration

Use this article to integrate native ads into your bid responses following the Vungle Exchange OpenRTB 2.5 specifications. 

Vungle native ads are ads that blend seamlessly into a mobile app's content and design, using the app's own UI components (such as text, images, and buttons) for a more natural user experience--unlike banners or interstitials. Vungle provides the ad assets via its SDK, and the app developer controls how these components are arranged and displayed, ensuring the ad looks and feels like part of the app design, which can improve engagement and reduce annoyance. Vungle SDK supports native static and video ads, both provides the same native experience, with the only difference being the primary media asset.

Native Ad File Types

  Static Image (Vungle SDK v.6.11+) Video (Vungle SDK v.7.7.0+)
File Type
  • JPG
  • PNG
  • MP4
File Size N/A N/A
Platform
  • iOS
  • Android
  • iOS
  • Android

Supported Features

We DO support We do NOT Support

native.eventtrackers for impression tracking (preferred, as per the IAB OpenRTB Dynamic Native Ads API
Specification Version 1.2, section 5.8)

native.imptrackers[] for impression tracking

response.link.click trackers[] for multi-party click trackers

🚫 native.jstracker for impression tracking

🚫 viewability trackers

🚫 native.link.fallback for deep link fallback; currently, we only support link.url

🚫 GIF animation for the main image asset (you can pass a GIF, but Vungle Exchange will render it as a static image)

Technical Requirements for Bidders

Asset ID

The asset ID is assigned by Vungle Exchange in the bid request. DSPs must respond with the asset ID value received in the bid request.

Asset ID Required? Description Type Notes
1 Yes Main image JPG or PNG  
2 No Video MP4  
3 No CTA button URL URL  
4 No CTA text Text 15-character truncation
5 Recommended App icon JPG or PNG 80x80 minimum
6 Recommended App title Text 25-character truncation
7 Recommended App text Text 90-character truncation
8 No App rating String Float number as a string (e.g., "4.3")
9 No Privacy icon JPG or PNG  
10 No Privacy URL URL  
11 No Sponsored by Text 25-character truncation

Image URL

The image URL must contain the correct file extensions. 

Valid example:

Valid example, with correct file extension
"img\": {\"url\": \"https://s3.amazonaws.com/vungle2-cdn-qa/assets/525ec4576ca69a3b4100000d/69ae9b8bf69e08a5a9d29051083a5319.jpg\"}

Invalid example:

Invalid example, without file extension
"img\":{\"url\":\"https://p0.ipstatp.com/origin/ad-site-i18n-sg/202108265d0d6c301e92a3d3409abeb6\",\"w\":1200,\"h\":627}

Clickthrough URL (Destination URL)

As per the IAB OpenRTB Dynamic Native Ads API Specification Version 1.2, section 5.1, always include the clickthrough URL (or destination URL) in the response.link object:

Field Required Type Description
link Yes Object Destination Link. This is default link object for the ad. Individual assets can also have a link object which applies if the asset is activated (clicked). If the asset doesn’t have a link object, the parent link object applies.

Vungle Exchange also supports clickthrough URL (or destination URL) via Asset ID = '3' (CTA button URL). 
The clickthrough URL (or destination URL) passed via other assets, such as Image, App Icon, or App Title, will be ignored.

Open Measurement

When Open Measurement is available for a given bid request, Vungle Exchange will set imp.native.request.eventtrackers as {"event":555,"methods":[2]}.

Bid Request and Bid Response Examples

Bid Request Example

Bid Request Example
{
    "id": "697196614c9d627448d44259",
    "imp": [{
            "Id": "1",
            "Native": {
                "Request": "{
                "Ver": "1.2",
                "Context": 1,
                "Assets": [{
                    "id": 1,
                    "required": 1,
                    "img": {
                        "type": 3
                    }
                }, {
                    "id": 2,
                    "video": {
                        "mimes": ["video/mp4"],
                        "minduration": 0,
                        "maxduration": 46,
                        "protocols": [2,5,3,6,7,8]
                       },
                   }
                }, {
                    "id": 3,
                    "required": 1,
                    "data": {
                        "type": 11
                    }
                }, {
                    "id": 4,
                    "required": 1,
                    "data": {
                        "type": 12,
                        "len": 15
                    }
                }, {
                    "id": 5,
                    "required": 1,
                    "img": {
                        "type": 1,
                        "wmin": 80,
                        "hmin": 80
                    }
                }, {
                    "id": 6,
                    "required": 1,
                    "title": {
                        "len": 25
                    }
                }, {
                    "id": 7,
                    "data": {
                        "type": 2,
                        "len": 90
                    }
                }, {
                    "id": 8,
                    "data": {
                        "type": 3
                    }
                }, {
                    "id": 9,
                    "required": 1,
                    "img": {
                        "type": 1,
                        "w": 120,
                        "h": 120
                    }
                }, {
                    "id": 10,
                    "required": 1,
                    "data": {
                        "type": 11
                    }
                }, {
                    "id": 11,
                    "required": 1,
                    "data": {
                        "type": 1,
                        "len": 25
                    }
                }],
                "Eventtrackers": [{
                    "event": 1,
                    "methods": [1, 2]
                }],
                "Privacy": 1
            }
            ",
            "api": [
                5
            ],
            "battr": [
                5
            ]
        }, "bidfloor": 0
    }], "at": 0
}

Bid Response Example: Static Image Ad

Bid Response Example: Static Image Ad
{
    "id": "66b1d4d2beafb87c702b65df",
    "seatbid": [
        {
            "bid": [
                {
                    "id": "1",
                    "impid": "1",
                    "price": 0.999,
                    "nurl": "https://url.com/nurl",
                    "burl": "https://url.com/burl",
                    "lurl": "https://url.com/lurl",
                    "adm":"{\"native\":{\"link\":{\"url\":\"https:\/\/url.com\/link\"},\"assets\":[{\"id\":1,\"required\":1,\"img\":{\"url\":\"https:\/\/cdn.com\/main_image.jpg\",\"h\":600,\"w\":1200}},{\"id\":4,\"data\":{\"value\":\"Open\",\"label\":\"\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https:\/\/cdn.com\/app_icon.jpg\",\"h\":512,\"w\":512}},{\"id\":6,\"required\":1,\"title\":{\"text\":\"App Title\"}},{\"id\":7,\"data\":{\"value\":\"App Text\",\"label\":\"\"}},{\"id\":8,\"data\":{\"value\":\"4.0\",\"label\":\"\"}},{\"id\":9,\"img\":{\"url\":\"https:\/\/cdn.com\/privacy_icon.jpg\",\"h\":120,\"w\":120}}],\"imptrackers\":[\"https:\/\/cdn.com\/imp_url\"],\"privacy\":\"https:\/\/cdn.com\/privacy\"}}",
                    "adid": "J0MUfcjmlNtg_HG5EOFmbFq",
                    "adomain": [
                        "advertiserdomain.com"
                    ],
                    "bundle": "123456789",
                    "iurl": "https://cdn.com/imgurl.jpg",
                    "cid": "12345",
                    "crid": "12345_67890",
                    "cat": [
                        "IAB9-30"
                    ],
                }
            ],
            "seat": "seatid"
        }
    ],
    "cur": "USD"
}

Bid Response Example: Video Ad

Bid Response Example: Video Ad
{
    "id": "66b1d4d2beafb87c702b65df",
    "seatbid": [
        {
            "bid": [
                {
                    "id": "1",
                    "impid": "1",
                    "price": 0.999,
                    "nurl": "https://url.com/nurl",
                    "burl": "https://url.com/burl",
                    "lurl": "https://url.com/lurl",
                    "adm":"{\"native\":{\"link\":{\"url\":\"https:\/\/url.com\/link\"},\"assets\":[{\"id\":1,\"required\":1,\"img\":{\"url\":\"https:\/\/cdn.com\/main_image.jpg\",\"h\":600,\"w\":1200}},{\"id\":2,\"required\":0,\"video\":{\"vasttag\":\"<VAST version=\\\"2.0\\\><Ad><InLine><Creatives><Creative><Linear><MediaFiles><MediaFile delivery=\\\"progressive\\\" type=\\\"video\/mp4\\\" width=\\\"720\\\" height=\\\"1280\\\"><![CDATA[https:\/\/cdn.com\/video.mp4]]><\/MediaFile><\/MediaFiles><\/Linear><\/Creative><\/Creatives><\/InLine><\/Ad><\/VAST>\"}},{\"id\":4,\"data\":{\"value\":\"Open\",\"label\":\"\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https:\/\/cdn.com\/app_icon.jpg\",\"h\":512,\"w\":512}},{\"id\":6,\"required\":1,\"title\":{\"text\":\"App Title\"}},{\"id\":7,\"data\":{\"value\":\"App Text\",\"label\":\"\"}},{\"id\":8,\"data\":{\"value\":\"4.0\",\"label\":\"\"}},{\"id\":9,\"img\":{\"url\":\"https:\/\/cdn.com\/privacy_icon.jpg\",\"h\":120,\"w\":120}}],\"imptrackers\":[\"https:\/\/cdn.com\/imp_url\"],\"privacy\":\"https:\/\/cdn_]()_](),
                    "adid": "J0MUfcjmlNtg_HG5EOFmbFq",
                    "adomain": [
                        "advertiserdomain.com"
                    ],
                    "bundle": "123456789",
                    "iurl": "https://cdn.com/imgurl.jpg",
                    "cid": "12345",
                    "crid": "12345_67890",
                    "cat": [
                        "IAB9-30"
                    ],
                }
            ],
            "seat": "seatid"
        }
    ],
    "cur": "USD"
}

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

Was this article helpful?