Skip to main content

Placement Events Listener

info

Event-Driven System: The Teads SDK uses a comprehensive event system through TeadsAdPlacementEventsDelegate to manage video playback and user interactions.

Overview

The Teads SDK provides an event-driven system for managing placement events through the TeadsAdPlacementEventsDelegate. This delegate allows you to:

  • Track video playback states (play, pause, resume, complete)
  • Handle user interactions and engagement
  • Monitor ad performance and viewability

Implementing TeadsAdPlacementEventsDelegate

Basic Implementation

import tv.teads.sdk.*

class YourActivity : AppCompatActivity(), TeadsAdPlacementEventsDelegate {

private var mediaPlacement: TeadsAdPlacementMedia? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupMediaPlacement()
}

private fun setupMediaPlacement() {
val adPlacementSettings = TeadsAdPlacementSettings.Builder()
.enableDebug()
.build()

val adRequestSettings = TeadsAdRequestSettings.Builder()
.pageUrl(Uri.parse("https://example.com/article"))
.build()

mediaPlacement = TeadsAdPlacementMedia(
this,
84242,
adPlacementSettings,
this
)

mediaPlacement?.requestAd(adRequestSettings)
}

// MARK: - TeadsAdPlacementEventsDelegate

override fun onPlacementEvent(
placement: TeadsAdPlacement,
event: TeadsAdPlacementEventName,
data: Map<String, Any>?
) {
when (event) {
TeadsAdPlacementEventName.PLAY -> {
handleVideoPlay()
}

TeadsAdPlacementEventName.PAUSE -> {
handleVideoPause()
}

TeadsAdPlacementEventName.RESUME -> {
handleVideoResume()
}

TeadsAdPlacementEventName.COMPLETE -> {
handleVideoComplete()
}

TeadsAdPlacementEventName.START_PLAY_AUDIO -> {
handleAudioStart()
}

TeadsAdPlacementEventName.STOP_PLAY_AUDIO -> {
handleAudioStop()
}

TeadsAdPlacementEventName.CLICK -> {
handleAdClick()
}

TeadsAdPlacementEventName.IMPRESSION -> {
handleAdImpression()
}

TeadsAdPlacementEventName.ERROR -> {
handleAdError(data)
}

else -> {
Log.d("TeadsSDK", "Other event: $event")
}
}
}
}

User Interaction Events

Click Event

TeadsAdPlacementEventName.CLICK -> {
Log.d("TeadsSDK", "Ad clicked")
}

Impression Event

TeadsAdPlacementEventName.IMPRESSION -> {
Log.d("TeadsSDK", "Ad impression recorded")
}

Error Handling

Error Event

TeadsAdPlacementEventName.ERROR -> {
Log.e("TeadsSDK", "Error data: $data")
}