Back to all articles

How to run direct-sold and programmatic ads together in an AI chatbot

How direct-sold and programmatic ads run together in an AI chatbot: priority stacks, pacing, and fill logic explained with a 2026 setup checklist.

ELContent TeamSep 2, 2026 — 8 min read
How to run direct-sold and programmatic ads together in an AI chatbot

Direct-sold and programmatic ads coexist in an AI chatbot through a priority stack: reserved advertiser campaigns fill first, and a programmatic demand source — like an SDK-based adserver — fills every conversation the direct deals don't cover. The two don't compete for the same slot at the same time; they run in sequence, so no impression goes unsold and no reserved campaign gets bumped.

TL;DR
  • Direct-sold and programmatic ads in an AI chatbot run as a two-tier priority stack, not a live auction against each other.
  • Direct deals fill first against contracted volume; a programmatic layer like Elo's SDK fills the remaining conversations.
  • Contextual matching keeps both tiers relevant to what the user is actually asking, not just who paid more.
  • Frequency caps and pacing rules have to span both tiers or the same user sees the same offer twice.

Why this matters

A chatbot that only sells direct inventory leaves revenue on the table the moment a sales team can't fill every conversation with a signed advertiser. A chatbot that only runs programmatic never captures the premium a direct deal pays for guaranteed placement. Running both at once, through something like the Elo adserver, means the direct sales team can promise volume without worrying about empty slots, and the programmatic layer absorbs whatever's left.

The mechanics matter because AI chat ads aren't banner impressions. A native card inside a conversation has to match what the user just asked, respect a frequency cap, and load without adding latency to the response. Get the priority logic wrong and you either starve a paying advertiser of impressions they contracted for, or you serve a programmatic ad on top of a direct one and double-charge the same conversation turn.

How to run direct-sold and programmatic ads together in an AI chatbot

The setup follows a fixed order of operations. Skip a step and you either underdeliver on direct contracts or leave programmatic fill on the table.

  1. Set direct-sold as the priority tier. Every reserved campaign gets a guaranteed delivery target and a hard floor on volume, checked before any programmatic call fires.
  2. Pass the conversation context to the matcher. The same context signal — topic, intent, category — that would route a programmatic ad also decides which direct campaign is eligible for that turn.
  3. Check direct delivery pacing in real time. If a direct campaign is behind pace, it gets priority on the next eligible slot; if it's already hit its target, it drops out of eligibility for the rest of the period.
  4. Fall back to programmatic when no direct campaign matches or all direct inventory is exhausted. This is where a header bidding setup or a single programmatic SDK call fills the gap.
  5. Apply frequency caps across both tiers together, not separately — a user who saw a direct ad shouldn't immediately see a programmatic ad from the same category.
  6. Log every impression with its source tier so direct advertisers get accurate delivery reports and programmatic RPM stays measurable on its own.

Direct-sold ads: the priority tier

Direct deals exist because an advertiser wants guaranteed placement, a specific category exclusion, or creative control that a programmatic auction can't promise. That's why direct sits on top of the stack: it gets first look at every eligible conversation before programmatic demand is even called. The tradeoff is sales overhead — someone has to negotiate direct ad deals and manage delivery pacing manually or through a dashboard.

Best for: chatbot publishers with an established audience and a sales team that can close advertiser relationships directly. Skip it if your chat app is early-stage and doesn't have the volume to justify a manual sales cycle in 2026 — programmatic alone covers that stage fine.

Programmatic ads: the fill tier

Programmatic demand runs through an SDK call that matches the conversation context to an advertiser bid pool automatically, no manual negotiation required. It picks up every conversation direct-sold didn't reserve, which in most chatbots is the majority of daily volume. The advertiser pool grows or shrinks based on demand-side activity, so fill rate depends on how deep that pool is at any given moment.

Best for: any AI chat app that wants revenue on every conversation without building a sales function. Watch for: thin advertiser pools in narrow verticals, where fill rate drops if the matcher can't find a relevant bid.

Direct-sold pays the bill; programmatic keeps the seat filled.

Why the split between direct-sold and programmatic varies

The ratio between the two tiers isn't fixed — it shifts based on a handful of factors specific to the chatbot's traffic and advertiser relationships:

  • Audience size. A chatbot with heavy daily conversation volume can support more direct deals because there's enough inventory to guarantee delivery without starving programmatic fill.
  • Vertical demand. Categories like finance, travel, and SaaS attract more advertiser interest, which pushes more volume toward direct-sold and leaves programmatic to cover the long tail.
  • Contextual match quality. The tighter the matcher connects a conversation topic to an ad, the more advertisers are willing to pay for programmatic placement instead of insisting on a direct deal.
  • Frequency cap tightness. Aggressive caps reduce total ad slots available, which forces a harder prioritization decision between the two tiers.
  • Sales capacity. A one-person indie chatbot team has no bandwidth to run direct sales, so the split leans almost entirely programmatic by default.
  • Latency tolerance. Direct campaigns with static creative resolve faster than a live programmatic auction call, which matters when ad latency inside a chat response has to stay imperceptible.

Should direct-sold ads always win over programmatic?

Direct-sold should win the slot only when the campaign is behind its delivery pace or has an exclusivity clause — otherwise a well-matched programmatic bid from a deep advertiser pool can outperform a direct campaign on relevance. Running both through the same priority logic, rather than hard-coding direct as always-first, keeps the revenue split rational instead of automatic.

What happens when a direct-sold campaign underdelivers?

An underdelivering direct-sold campaign gets compensatory priority on remaining eligible slots until it hits its contracted volume, which temporarily reduces programmatic fill for that period. Publishers typically build this into the pacing logic so the sales team isn't manually monitoring delivery every day in 2026.

Can you run header bidding for programmatic while keeping direct-sold reserved?

Yes — direct-sold inventory is carved out before the header bidding auction runs, so only the remaining conversation volume enters the programmatic bid pool. This is the standard structure for chatbot publishers who want both guaranteed direct revenue and competitive programmatic pricing on the leftover inventory.

A chatbot built on OpenAI, Anthropic, or a custom LLM can run this exact stack through a single SDK integration: Elo handles the programmatic tier and the contextual matching, while the publisher's own sales process handles direct deals on top. The adserver doesn't replace direct sales — it fills what direct sales can't reach.

See the priority stack in your chatbot

Check how direct and programmatic fill work together with Elo's SDK.

FAQ

What's the best way to run direct-sold and programmatic ads together in an AI chatbot?

The best way is a two-tier priority stack where direct-sold campaigns fill first against a delivery target, and a programmatic SDK fills every remaining conversation. This avoids double-serving the same slot and keeps both revenue streams measurable.

Is programmatic ad revenue lower than direct-sold in an AI chatbot?

Programmatic revenue per impression is typically lower than a negotiated direct deal because direct pricing includes a premium for guaranteed placement. Programmatic still matters because it monetizes volume direct sales can't cover.

How does an ad matcher decide between direct-sold and programmatic in a chat conversation?

The matcher checks direct-sold eligibility and pacing first; if no direct campaign qualifies or its target is already met, the conversation context passes to the programmatic layer. Both tiers use the same contextual signal, just at different priority levels.

Do frequency caps apply across both direct-sold and programmatic ads?

Frequency caps should apply across both tiers together, not separately, so a user doesn't see two ads from the same category back to back. Splitting caps by tier is a common setup mistake that causes ad fatigue.

Can a small indie chatbot run direct-sold ads at all?

A small indie chatbot can run direct-sold ads, but it usually isn't worth the sales overhead until conversation volume is high enough to guarantee delivery. Most indie developers start on programmatic alone and add direct deals once volume grows.

What happens if both a direct-sold and programmatic ad match the same conversation?

The direct-sold campaign takes the slot by default since it sits higher in the priority stack, and the programmatic bid is dropped for that turn. Logging still records the programmatic ad as an available fill opportunity for reporting.

Does running both ad types slow down an AI chatbot's response?

Running both types shouldn't add noticeable delay if the direct-eligibility check happens before the programmatic call, since only one of the two paths actually resolves per turn. Latency issues usually come from a poorly ordered waterfall, not from running two demand sources.

One last thing

Most chatbot publishers overbuild the direct-sold side before they have the traffic to support it. Get the programmatic fill tier working cleanly first — accurate contextual matching, frequency caps, impression logging — and direct-sold deals slot into the same stack later without a rebuild. The order of operations, not the sales relationships, is what breaks first when publishers try to run both at once in 2026.

You might also like