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)")
Related Documentation
- Integration Guide - Complete integration steps including event handling
- Settings Configuration - Advanced configuration options
- Privacy Guide - Privacy and data handling information
- Troubleshooting Guide - Common issues and solutions