Skip to main content
The session emits events at every meaningful step of an ad’s life, from the moment the server responds to /preload through to the user clicking through. You subscribe via onEvent (or the platform-specific equivalent — a Combine publisher on Swift, a Flow on Kotlin, etc.) and react however your app needs. This page lists every event in one place. For the exact API on a given platform, see the SDK pages.

Three stages, one stream

All events arrive on a single stream, but it helps to know which stage each one belongs to:
  • After /preload returns — the SDK has decided whether an ad will be available for the current assistant message. Fires ad.filled, ad.no-fill, or ad.error.
  • While the ad renders — the iframe starts streaming content and finishes. Fires ad.render-started, ad.render-completed, and ad.height (when the iframe reports its size).
  • As the user interacts — fires ad.viewed once the MRC viewability standard is met, ad.clicked on tap-through, and (for video / rewarded creatives) video.started, video.completed, reward.granted.

Reference

The exact field names per platform live on the SDK pages — they all carry the same semantics, just under their language-native casing.

Where to next

Displaying ads

Where these events come from in the rendering flow.

Pacing

What happens to events when you suppress ads for a turn.

Compliance

The OMID standard behind ad.viewed and per-SDK certification status.

Debugging

onDebugEvent and server-side debug forwarding for deeper insight.