Skip to main content
Our ads are contextual: the better the server understands what is on screen and who is watching, the better the match, the fill and the price. The SDK collects the device side itself. Three things come from you.

The content

KontextVideo.Content describes the episode a VideoAds is for. Two fields are required; the rest is signal, and every field you add helps.
Times are seconds.

The viewer

Set what you know on the shared instance whenever you learn it; the next request carries it.
  • id is your own stable identifier for the viewer, used for frequency capping and personalization.
  • email or emailHash improves matching and deduplication across devices. Send the plain address only when the viewer’s consent allows it; our server hashes it on arrival and never stores the plain form. Or send the SHA-256 of the normalized address yourself.
  • keywords are the viewer’s interests in your own words.
If your app runs a TCF-compliant consent platform, the SDK reads its consent string from the standard shared storage on every request and you set nothing. COPPA cannot be read from the device, so it always comes from you. See TCF & CMP and Compliance.

What the SDK sends on its own

The device model and OS, locale, screen size and orientation, network type, the advertising identifier when the viewer allowed tracking (see IFA & ATT), your app’s bundle id and version, and the content playhead at the time of the request when you gave the SDK your player. None of it needs code from you beyond the ATT setup.

A/B tests

KontextVideo.shared.variantId selects a variant agreed with Kontext, for example to compare two creative styles. Set it before the request you want it on.

Where to next

IFA & ATT

The one-time setup for the advertising identifier.

API reference

Every field of Content, User and Regulatory.