Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kontext.so/llms.txt

Use this file to discover all available pages before exploring further.

Every Kontext ad has two parts:
  1. AI-generated text that picks up the tone of the assistant message and continues it naturally, so the transition into the ad reads as part of the conversation rather than a hard break.
  2. A format-specific creative rendered right below the text — an image, a video, a banner, or, for interstitial, a CTA that opens a full-screen experience.
You mount the same component (<InlineAd messageId="..." /> or its platform equivalent) for all four formats — the SDK figures out the right way to render whatever the ad server returns.

The four formats

Image ad

AI-generated text followed by a static image creative and a call-to-action.

Video ad

AI-generated text followed by a short auto-playing video with a call-to-action. Viewability is tracked through standard MRC rules.

Interstitial ad

AI-generated text followed by a tappable creative that opens a full-screen modal ad. Designed for high-impact, low-frequency moments.

Banner ad

AI-generated text followed by a compact horizontal banner — smaller footprint than an image ad, suited for slots where vertical space is at a premium.

Personalization for interstitial ads

Interstitial is our most advanced format — we use the Character object you pass on the session to drive the pre-roll and post-roll text and visuals so the interstitial feels like an extension of the assistant the user is already talking to. For interstitial to work well, the following Character fields are required:
  • id
  • name
  • avatarUrl
  • greeting
The remaining fields are useful but optional — pass them when you have the data, and the personalization gets sharper:
  • persona — a short personality description.
  • tags — themes, interests, audience signals.
  • isNsfw — flag adult-targeted characters so we filter creatives accordingly.
The Character object is set once when you create the session (see Session lifecycle) and pinned for that conversation. The exact field names per platform live on the SDK pages.

How a format is chosen

You don’t pick a format yourself for each ad. The ad server picks based on:
  • The placement code your <InlineAd> is bound to.
  • The conversation context (messages, character) the SDK forwards on /preload.
  • Which creatives the auction returns and what they perform best as.
  • The user’s device and locale.
This way the same component automatically renders an image ad in one slot, a video ad in another, and an interstitial when the campaign calls for it — without you writing format-specific code.

What you can adjust

You can pass a theme to each ad component (typically "light" or "dark") so the ad picks up the right base palette. Beyond that, we tailor the creative’s design — typography, spacing, colors, and overall layout — for every publisher individually, so the ad blends into your app instead of feeling bolted on. If you have a specific look in mind, tell us during onboarding or reach out via Support.

Where to next

Displaying ads

Where the ad slot goes and which message id to bind it to.

Ad lifecycle events

Events you receive as the ad renders, becomes visible, and is clicked.

Compliance

Viewability, OMID certification, and platform policies that apply per format.

Support

Reach out to change which formats are allowed on your placement codes.