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.

Pacing is how often ads appear in a conversation. Showing one under every assistant message is usually too much — it saturates the chat and the reader tunes out. Kontext supports two ways to control pacing, and they compose.

Option 1: Let us pace it

Pacing lives in your account configuration on our side. Tell us the cadence you want — for example, “an ad every five assistant messages”, or “no ad in the first three turns of a fresh conversation” — and we set it up. The SDK then automatically decides which assistant messages get an ad. No code changes in your app. If you’re unsure where to start, we’ll suggest a cadence based on what works for similar publishers.

Option 2: Override per message with trackOnly

If you want to suppress the ad in a specific slot, simply set trackOnly: true on the user message that precedes the assistant turn you want to skip:
session.addMessage(
  { id: 'u-99', role: 'user', content: '…', createdAt: new Date() },
  { trackOnly: true }
)
The assistant message that follows will not show an ad. The current turn is muted, but the SDK keeps working in the background:
  • You still call addMessage for every message. Skipping it breaks the conversation context the server uses for targeting in later turns. Always pass every message — just flag the ones you want to suppress.
  • The SDK still hits /preload. Server-side analytics stay accurate.
  • The server prepares an ad ahead of time for the next non-trackOnly turn. This is a server-side benefit, not a client-side cache: when the next ad-eligible turn arrives, fill rate is higher (the server had more time to find a good contextual match) and the ad is delivered faster (it was already prepared on our side).
In short, trackOnly hides the ad for one turn while keeping the conversation context warm on our side, so the next ad-eligible turn fills faster and more often.

Where to next

Messages

The addMessage call you set trackOnly on.

Ad lifecycle events

Which events still fire when an ad is suppressed.