How wavebird works

System overview

Your model call and the ad auction run in parallel; the market sees only a minimal delivery signal; filled slots produce signed proof.

The parallel architecture

wavebird does not replace the model path. When your GenAI-Apps sends a prompt, your app still calls the model as usual. In parallel, wavebird prepares a market-side request from the reduced signal your app allows for delivery.

Those two paths run at the same time. If an ad is available when inference completes, your app renders it in the configured surface. If not, the response still arrives normally. The product path stays primary; the ad path is opportunistic.

What data leaves your system

The recommended delivery signal is topic category + language (not raw prompt text). See the data firewall.

Semantic relevance is opt-in via explicit consent and CS profiles. See Compute Sponsoring.

If config or consent is invalid, the sponsor path stops and the model response proceeds. See Safety.

How ad matching works

wavebird translates the delivery signal into an OpenRTB 2.6 bid request and runs the auction during the model wait window.

Multiple bidders compete for the slot. The winning creative is returned to your app and rendered in the surface you configured (banner or video).

If no bidder responds or no ad meets your rules, the result is a no-fill. In that case, no ad is shown and no revenue is generated for that prompt. The model response is delivered normally.

Average time from filtered signal to matched ad: under 20ms based on internal measurements.

Cryptographic proof of impression

Filled slots create signed proof that can be audited and reconciled. See Engineering Evidence.

What this looks like in code

See the full example in the Quickstart.

integration-flow.ts

typescript

SDK FLOW
const job = await client.createJob({
  job_type: "chat",
  model_id: "gpt-4o-mini",
  locale: "en-US",
  prompt: { text: userMessage },
  slots_requested: 1,
});

const decision = await client.getDecision(job.slot_ids[0]);

if (decision.fill) {
  renderAd(decision.creative);
}

Compute Sponsoring compliance

wavebird implements Compute Sponsoring v1.0. The current rollout uses the standard's situational, no-persistence path documented there.

Related

Last updated: 2026-03-21

Why wavebird

Ads are usually not the hard part. The real choice is ownership: market access, consent, proof, billing, and rollout.

Self-build

When it fits

  • Maximum control
  • In-house ad-tech team
  • Own ops and billing

Why teams still switch

  • Keep UX and data rules
  • Avoid auctioning and SSP ops
  • Outsource proof and billing

Traditional ad stack

What works

  • Mature demand
  • Liquid market
  • Standard OpenRTB rails

What is missing

  • No GenAI-specific paths
  • No semantic-consent layer
  • No proof per compute unit

Subscriptions only

When it fits

  • High ROI workflows
  • Clear willingness to pay
  • Strong paid conversion

Where it falls short

  • Most users stay free
  • Usage still creates compute cost
  • No revenue on the free tier

Direct SSP path

What you get

  • Direct demand access
  • Full bid and policy control
  • Custom consent and billing

Why wavebird sits on top

  • Keeps market compatibility
  • Adds filtered AI signals
  • Handles proof and rollout

Next step

Explore the integration path.

Start with the SDK for the production path, or talk to the team if you want rollout, placement, or partnership guidance.