Platform Overview

From conversation to revenue in three steps.

Velocity intercepts nothing and stores nothing. It reads the context your assistant already has, matches once per session, and delivers one labeled result. The whole cycle completes in under 8ms.

<8ms
End-to-end match latency
1
Placement per conversation session
0
Personal data stored or transmitted
01
Step One

Intent Detection

At each conversation turn, Velocity runs a lightweight on-device NLP pass over the full conversation thread. It extracts a structured intent vector: what product category is implied, what stage of the buying journey is the user in, how specific is the technical detail.

This classification uses a model under 2MB that runs in the browser or on your server. It never transmits conversation content outside the user session. The result is a scored intent signal, not a user profile.

If no high-confidence intent is found, nothing is served. Velocity does not fill with a generic fallback when context is absent.

intent_vector = {
  "category": "cloud_database",
  "stage": "comparison",
  "tech_specificity": 0.87,
  "commercial_signal": 0.94,
  "session_ad_served": false
}
02
Step Two

Contextual Matching

The intent vector is sent to the Velocity match service via a minimal API call. The service scores the vector against the live advertiser catalog, which is indexed by intent cluster, bid, and publisher category inclusion.

The matching algorithm selects the highest-scoring placement that satisfies three constraints: commercial relevance above threshold, no publisher-excluded categories, and bid economics clear.

If a conflict exists between two equal-scoring placements, priority goes to the publisher's preferred category list. The whole scoring pass resolves in under 8ms. No external DSP roundtrip, no cookie sync.

// Match service response
{
  "matched": true,
  "advertiser": "supabase",
  "relevance_score": 0.91,
  "bid_cpm": 3.45,
  "latency_ms": 6.3
}
03
Step Three

Stream Injection

The matched placement is returned to your SDK and rendered at the optimal turn position. The placement uses a standardized markup structure that your assistant's UI renders as a clearly labeled sponsored card.

Once a placement has been served in a session, the session flag is set and no further placements are served for the remainder of that conversation, regardless of how many additional high-intent turns follow.

The publisher controls turn position (turn 2, 3, or 4), maximum in-session frequency (always 1), and the visual styling of the "Sponsored by Velocity" badge to match their product's aesthetic.

Technical Specs

Platform specifications

Numbers your engineering team will ask for before approving any third-party SDK.

Specification Value Notes
Match latency (p99) <8ms End-to-end from intent vector to match response
SDK bundle size <8KB Gzip compressed, ESM + CJS builds available
On-device NLP model <2MB Loads once, cached in service worker
Placements per session 1 Hard cap, not a configuration
Personal data stored None No user identifiers, no cross-session data
GDPR data basis Article 6(1)(f) Designed on legitimate interest grounds; no personal data processed
Uptime SLA (Studio+) 99.9% Quarterly rolling average, measured at API
Graceful degradation Returns null match No placement injected if service unavailable
Turn positions supported 2, 3, or 4 Publisher configures preferred position per assistant

Three steps, under 8ms, revenue on Day 1. Ready to integrate?