InMobi Exchange supports DSP Double End Card for video ads, allowing demand partners to supply their own second end card creative in the bid response. Two consecutive end cards are then displayed after the video ad completes or is skipped by the user.
This differs from InMobi's Double End Card (Default), where InMobi Exchange generates the second end card itself from the advertised app's store assets. With DSP Double End Card, the second card is fully controlled by the DSP — creative, messaging, and click destination, giving demand partners an additional branded surface to drive conversions.
If the DSP supplies a second end card creative in the bid response, it takes precedence over the InMobi-generated default end card.
The DSP Double End Card experience consists of the following sequence:
InMobi Exchange signals eligibility for a second end card by including a second companion slot in the bid request. If the DSP returns two <Companion> creatives within the <CompanionAds> node of its VAST response, both are rendered in sequence.
If the DSP returns only one <Companion> creative on an eligible request, InMobi Exchange falls back to Double End Card (Default), provided the default experience is enabled for that request. For more information on the vxec signalling used by that flow, see InMobi's Double End Card (Default) page.
Eligibility for DSP Double End Card is signalled through the presence of a second companion object in imp[].video.companionad, each carrying a distinct id.
| Field | Type | Description |
|---|---|---|
imp[].video.companionad |
Object array | Array of companion (end card) slots. Two objects present indicates the impression is eligible for a DSP Double End Card. A single object indicates a standard single end card slot. |
imp[].video.companionad[].id |
String | Unique identifier for the companion slot. "1" denotes the first end card position; "2" denotes the second end card position. |
imp[].video.companionad[].vcm |
Integer | Companion rendering mode relative to the associated video. 1 = end card. |
imp[].video.companionad[].pos |
Integer | Ad position. 7 = full screen. |
imp[].video.companionad[].api |
Integer array | Supported API frameworks for the companion creative, for example [3,5,6,7] (MRAID 1.0, MRAID 2.0, OMID 1.0, MRAID 3.0). |
imp[].video.companionad[].format |
Object array | Supported creative dimensions for the companion slot. |
"companionad": [
{
"format": [ { "w": 360, "h": 640 }, { "w": 320, "h": 480 } ],
"w": 360,
"h": 640,
"pos": 7,
"api": [ 3, 5, 6, 7 ],
"id": "1",
"vcm": 1
},
{
"format": [ { "w": 360, "h": 640 }, { "w": 320, "h": 480 } ],
"w": 360,
"h": 640,
"pos": 7,
"api": [ 3, 5, 6, 7 ],
"id": "2",
"vcm": 1
}
]
To serve a DSP Double End Card, the DSP must return two <Companion> elements within the <CompanionAds> node of the VAST markup, each with its own id attribute.
| Field | Type | Description |
|---|---|---|
<CompanionAds> |
Node | Container for the end card creatives. Must contain two <Companion> elements to trigger the DSP Double End Card experience. |
<Companion id> |
String | Identifier for each end card creative. The value is free-form and does not need to match the id sent in the bid request — for example id="endCard1" and id="endCard2". Each <Companion> must carry a distinct id. |
InMobi Exchange renders the end cards in the order they appear in the <CompanionAds> node. The first <Companion> is displayed as end card 1 and the second as end card 2. The id attribute values are not used to determine ordering, so DSPs must sequence the creatives correctly in the markup.
<CompanionAds>
<Companion id="endCard1" width="360" height="640">
<HTMLResource>
<![CDATA[ <!-- first end card markup --> ]]>
</HTMLResource>
<CompanionClickThrough>
<![CDATA[ https://example.com/click/endcard1 ]]>
</CompanionClickThrough>
<CompanionClickTracking>
<![CDATA[ https://example.com/track/endcard1 ]]>
</CompanionClickTracking>
</Companion>
<Companion id="endCard2" width="360" height="640">
<HTMLResource>
<![CDATA[ <!-- second end card markup --> ]]>
</HTMLResource>
<CompanionClickThrough>
<![CDATA[ https://example.com/click/endcard2 ]]>
</CompanionClickThrough>
<CompanionClickTracking>
<![CDATA[ https://example.com/track/endcard2 ]]>
</CompanionClickTracking>
</Companion>
</CompanionAds>
Click tracking: Each <Companion> carries its own <CompanionClickThrough> and <CompanionClickTracking>, so DSPs can set a distinct click destination and tracking URL per end card. For HTMLResource end cards, the click-through is handled by the creative markup itself.
By installing this SDK update, you agree that your Children Privacy Compliance setting remains accurate or that you will update that setting, whenever there is a change in your app's audience. You may update the app's Children Privacy Compliance settings at https://publisher.inmobi.com/my-inventory/app-and-placements.