Skip to main content

Media Native Placement

Media Native renders the same video and display creatives as the Media format, but inside a layout you build and control instead of the SDK's own container. The SDK still owns the paid click, the same as Media.


Sample App

The official Teads SDK sample application includes working examples of this format. Use it for implementation examples and as a reference while you set up this placement.

Teads Android Sample App on GitHub

Example​

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()
}
}

Ad Lifecycle Listener​

Implement TeadsAdPlacementEventsDelegate to observe playback, clicks, and viewability. See Placement Events Listener for the full event reference and error handling guide.

Checklist​