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.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.
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:
- You still call
addMessagefor 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-
trackOnlyturn. 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).
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.