Skip to main content
The config object lets you control how ads are served per request — pacing, creative constraints, and analytics tags. All fields are optional and fall back to defaults set on your chatbot in the platform dashboard.
{
  "config": {
    "ad_offset": 3,
    "max_frequency": 5,
    "max_headline_chars": 60,
    "image_enabled": true,
    "experiment_tag": "variant_a"
  }
}

Ad Pacing

Controls when and how often ads appear in a conversation. Two checks run before any auction logic:
  • Ad Offset (ad_offset) — minimum turns before the first ad in a conversation
  • Max Frequency (max_frequency) — minimum turns between consecutive ads
When pacing blocks a request, the API returns a 200 OK with "bid": null and a message indicating the reason — same as a no-bid. Continue without an ad.
FieldTypeDescription
ad_offsetintMin turn number before first ad. null uses dashboard default. 0 disables the offset check.
max_frequencyintMin turns between consecutive ads. null uses dashboard default. 0 disables the frequency check.

Example

{
  "config": {
    "ad_offset": 3,
    "max_frequency": 5
  }
}
This says: “Don’t show ads before turn 3, require at least 5 turns between ads, and the last ad was 6 turns ago.” Since turn 6 >= offset 3 and 6 >= max frequency 5, pacing passes.

Creative Constraints

Control what the ad creative looks like to fit your UI.

Headline Limit

When max_headline_chars is set, the system guarantees no headline exceeds the limit. If no creative fits, no ad is returned.
{
  "config": {
    "max_headline_chars": 50
  }
}

Image Control

When image_enabled is false, product images are never included in the response. The ad is returned with a logo derived from the advertiser’s domain, or no image at all. Use this when your UI doesn’t support displaying images.
{
  "config": {
    "image_enabled": false
  }
}

Experiments

Beta — available to all publishers.
Use experiment_tag to run A/B tests on your integration. Tag each request with a label (max 30 characters) and the tag is recorded on every impression. Compare performance metrics across variants in your dashboard.
FieldTypeDescription
experiment_tagstring (max 30 chars)A/B test label. Recorded on every impression for analytics segmentation.

Example

Test whether showing ads after turn 3 vs turn 5 performs better:
// Variant A
{ "config": { "ad_offset": 3, "experiment_tag": "offset_3" } }

// Variant B
{ "config": { "ad_offset": 5, "experiment_tag": "offset_5" } }
Split your traffic between the two variants and compare offset_3 vs offset_5 in your dashboard analytics. Split your traffic between the two variants and compare metrics in your dashboard analytics.