Skip to main content

Media Native Placement

Media Native Placementโ€‹

Media Native placements allow you to create custom layouts for video ads that match your app's design.

import tv.teads.sdk.combinedsdk.adplacement.TeadsAdPlacementMediaNative
import tv.teads.sdk.combinedsdk.adplacement.config.TeadsAdPlacementMediaNativeConfig
import tv.teads.sdk.combinedsdk.adplacement.interfaces.TeadsAdPlacementEventsDelegate
import tv.teads.sdk.combinedsdk.adplacement.interfaces.core.TeadsAdPlacement
import tv.teads.sdk.combinedsdk.TeadsAdPlacementEventName
import tv.teads.sdk.renderer.NativeAdView
import android.net.Uri

class ContentActivity : AppCompatActivity(), TeadsAdPlacementEventsDelegate {

private var nativePlacement: TeadsAdPlacementMediaNative? = null
private var nativeAdView: NativeAdView? = null
private lateinit var binding: ActivityNativeAdBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityNativeAdBinding.inflate(layoutInflater)
setContentView(binding.root)

setupNativeAd()
}

private fun setupNativeAd() {
// Create custom native ad view
nativeAdView = createCustomNativeAdView()

// Create configuration
val config = TeadsAdPlacementMediaNativeConfig(
124859, // Your unique Placement ID
Uri.parse("https://yoursite.com/article")
)

// Create placement
nativePlacement = TeadsAdPlacementMediaNative(
this, // Context
config, // Placement config
this // Event delegate
)

// Load and bind the ad
nativePlacement
?.loadAd()
?.let { binder ->
// Bind the ad native object to your native ad view
binder(binding.myContainerAdView.nativeAdView)
}
}

override fun onPlacementEvent(
placement: TeadsAdPlacement<*, *>,
event: TeadsAdPlacementEventName,
data: Map<String, Any>?
) {
// Listen the ad lifecycle events
}

override fun onDestroy() {
super.onDestroy()
nativePlacement?.clean()
}
}