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, audio sessions, 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)
  • Manage audio sessions during ad playback
  • Handle user interactions and engagement
  • Monitor ad performance and viewability

Implementing TeadsAdPlacementEventsDelegate

Basic Implementation

import TeadsSDK

class YourViewController: UIViewController, TeadsAdPlacementEventsDelegate {

var mediaPlacement: TeadsAdPlacementMedia?

override func viewDidLoad() {
super.viewDidLoad()
setupMediaPlacement()
}

private func setupMediaPlacement() {
let adPlacementSettings = TeadsAdPlacementSettings { settings in
settings.enableDebug()
}

let adRequestSettings = TeadsAdRequestSettings { settings in
settings.pageUrl(URL(string: "https://example.com/article"))
}

mediaPlacement = TeadsAdPlacementMedia(
pid: 84242,
settings: adPlacementSettings,
delegate: self
)

mediaPlacement?.requestAd(adRequestSettings: adRequestSettings)
}

// MARK: - TeadsAdPlacementEventsDelegate

func adPlacement(_ placement: TeadsAdPlacementIdentifiable?,
didEmitEvent event: TeadsAdPlacementEventName,
data: [String : Any]?) {

switch event {
case .play:
handleVideoPlay()

case .pause:
handleVideoPause()

case .resume:
handleVideoResume()

case .complete:
handleVideoComplete()

case .startPlayAudio:
handleAudioStart()

case .stopPlayAudio:
handleAudioStop()

case .click:
handleAdClick()

case .impression:
handleAdImpression()

case .error:
handleAdError(data)

default:
print("Other event: \(event)")
}
}
}

User Interaction Events

Click Event

case .click:
print("Ad clicked")

Impression Event

case .impression:
print("Ad impression recorded")

Error Handling

Error Event

case .error:
print("Ad error occurred \(data)")