-jio-start-block-type-3
¶ Companion Ads-jio-style-title ¶ IntroductionJioAds SDK provides facility to implement Companion ad experience for Instream Video/Audio ads. |
![]() |
-jio-end-block-type-3
Complete GETTING STARTED section and INITIALIZE SDK section before starting this section.
-jio-start-block-type-2
-jio-style-title
Use existing JioAdView Object (Instream Video) to set companions. Multiple companions can be shown.
jioAdView.setCompanions( // vararg parameters for JioAdCompanion
JioAdCompanion(
adSlotId = adslotId, // adslot id
container = binding.companionAdContainer, // Companion Ad Container
displaySize = DynamicDisplaySize.SIZE_320x50 // Size of Companion Ad 1
),
JioAdCompanion(
adSlotId = adslotId, // adslot id
container = binding.companionAdContainer2, // Companion Ad Container 2
displaySize = DynamicDisplaySize.SIZE_300x250 // Size of Companion Ad 2
),
// set companion listener. With single listener multiple companion objects can be managed
jioCompanionListener = object : JioCompanionListener {
override fun onCompanionRender(currentCompanion: JioAdCompanion) {
currentCompanion.container.isVisible = true
}
override fun onCompanionClose(currentCompanion: JioAdCompanion) {
currentCompanion.container.removeAllViews()
currentCompanion.container.isVisible = false
}
override fun onCompanionChange(currentCompanion: JioAdCompanion) {
}
override fun onCompanionError(currentCompanion: JioAdCompanion,error: String?) {
currentCompanion.container.removeAllViews()
currentCompanion.container.isVisible = false
}
}
)
-jio-style-title
JioAds SDK provides facility to declare Companion slot as Hybrid, where same companion can be used to display regular Dynamic Display Ad with configured refresh rate. Here companion Ad is aligned with primary ad playing time otherwise SDK renders regular Dynamic Display Ad.
// set ad container
val adContainer = binding.companionAdContainer
dynamicDisplayJioAdView = JioAdView(this, “AdspotId”, AD_TYPE.DYNAMIC_DISPLAY).apply {
setDisplayAdSize(
listOf(
DynamicDisplaySize.SIZE_320x50,
DynamicDisplaySize.SIZE_300x50,
)
)
}
dynamicDisplayJioAdView.setContainer(adContainer)
dynamicDisplayJioAdView.cacheAd()
dynamicDisplayJioAdView.setAdListener(object: JioAdListener(){
override fun onAdFailedToLoad(jioAdView: JioAdView?, jioAdError: JioAdError?) {
}
override fun onAdPrepared(jioAdView: JioAdView?){
dynamicDisplayJioAdView.loadAd()
}
override fun onAdRender(jioAdView: JioAdView?){
}
})
dynamicDisplayJioAdView?.setCompanions(
JioAdCompanion(
adSlotId = companionAdspot,
container = adContainer,
displaySize = DynamicDisplaySize.SIZE_320x50
),
jioCompanionListener = object : JioCompanionListener { // companion listener
override fun onCompanionRender(currentCompanion: JioAdCompanion){
currentCompanion.container.isVisible = true
}
override fun onCompanionClose(currentCompanion: JioAdCompanion){
}
override fun onCompanionChange(currentCompanion: JioAdCompanion){
}
override fun onCompanionError(
currentCompanion: JioAdCompanion,
error: String?
) {
}
}
)
-jio-style-title
JioAds provides facility to declare Companion slot as Multi screen, where same companion ad can be shown in different screen. JioAdView
class provides static API loadHybridCompanionAd()
to load multi-screen companion.
JioAdView.loadHybridCompanionAd(
JioAdView.JioAdCompanion(
companionAdspot,
companionAdContainer,
Constants.DynamicDisplaySize.SIZE_320x50
),
jioCompanionListener = object : JioCompanionListener {
override fun onCompanionRender(currentCompanion: JioAdView.JioAdCompanion){
}
override fun onCompanionClose(currentCompanion: JioAdView.JioAdCompanion){
}
override fun onCompanionChange(currentCompanion: JioAdView.JioAdCompanion){
}
override fun onCompanionError(
currentCompanion: JioAdView.JioAdCompanion,
error: String?
){
}
}
)
-jio-style-title
val audioCompanionAdContainer = findViewById<FrameLayout>(R.id.companionAdContainer)
// Providing a container to companion ads to show.
jioAdViewInstreamAudio.setAudioCompanionContainer(audioCompanionAdContainer,
<COMPANION_AD_SIZE>,
DEFAULT_PORTRAIT_IMAGE,
DEFAULT_LANDSCAPE_IMAGE)
-jio-style-title
JioAds SDK now supports carousel-based companion ads for instream video ads. This new format extends the existing companion ad capabilities to native main image, custom image and carousels by allowing advertisers to showcase multiple cards in a scrollable carousel format alongside video content
-jio-style-title
Native Companion Ad Format Priority
1. Native + Carousel cards (highest)
2. Native + Main Image
3. Native + Custom Image
-jio-style-title
Features
-jio-bullet-type-1
-jio-bullet-type-1
-jio-bullet-type-1
-jio-bullet-type-1
-jio-bullet-type-1
-jio-style-title
Optional Elements
-jio-bullet-type-1
-jio-bullet-type-1
-jio-bullet-type-1
-jio-style-title
New Optional Parameter added nativeCompanionLayout: Int? = null
. This parameter accepts layout resource ID (e.g., R.layout.layout_name
). If parameter is not provided or is null, then regular HTML/static companion can be seen if linked instead of native companion.
Use existing JioAdView
Object (Instream Video) to set companions. Multiple companions can be shown.
jioAdView.setCompanions(
// vararg parameters for JioAdCompanion
JioAdCompanion(
adSlotId = adslotId, // adslot id
container = binding.companionAdContainer, // Companion Ad Container
displaySize = DynamicDisplaySize.SIZE_320x50 // Size of Companion Ad 1
),
JioAdCompanion(
adSlotId = adslotId, // adslot id
container = binding.companionAdContainer2, // Companion Ad Container 2
displaySize = DynamicDisplaySize.SIZE_300x250 // Size of Companion Ad 2
),
// native companion layout
nativeCompanionLayout = R.layout.jio_native_companion,
// set companion listener. With single listener multiple companion objects can be managed
jioCompanionListener = object : JioCompanionListener {
override fun onCompanionRender(currentCompanion: JioAdCompanion) {
currentCompanion.container.isVisible = true
}
override fun onCompanionClose(currentCompanion: JioAdCompanion) {
currentCompanion.container.removeAllViews()
currentCompanion.container.isVisible = false
}
override fun onCompanionChange(currentCompanion: JioAdCompanion) {
}
override fun onCompanionError(currentCompanion: JioAdCompanion,error: String?) {
currentCompanion.container.removeAllViews()
currentCompanion.container.isVisible = false
}
} //end of jioCompanionListener
) //end of setCompanions
jio_native_companion layout
should only contain all tags of Native Ad for title, description, main image etc. Refer Customizing Native Ads section for more details.
To show carousel Ad in Native companion along with other native items, Refer Complete XML Reference (Native Carousel) section of Native Carousel.
To customize carousel item, Refer Customizing Native Carousel Items of Native Carousel.
-jio-style-title
To achieve expand/collapse feature for Native Companion Refer Expandable Ads section.
-jio-style-title
Expand/Collapse Callback
onCompanionContainerStateChanged(adContainerState: AdContainerState)
-jio-style-title
Parameter Details
-jio-tables
# | Parameter Name | Description |
---|---|---|
1 | AdContainerState | It is an Enum with EXPANDED, COLLAPSED values. |
-jio-end-block-type-2