How It Works
Simple, privacy-first ad matching for agents.
Context Injection
Your agent sends the user's current context (chat history, page content, query) to the Engine.
Semantic Retrieval
Engine performs embedding and Qdrant retrieval, applies targeting, policy, and pacing checks.
Native Rendering
You receive the match and render it natively—inline, sidebar, or banner. Your UI stays in control.
Why SponsorStream?
Monetize without ruining trust.
Relevance-First
Ads match the meaning of the conversation, not just keywords. They feel native, not jarring.
Fast Onboarding
Add sponsors without hand-built rules or constant maintenance. Let semantic matching do the work.
Auditability
Answer "why did this ad show up?" with a full audit trace for every match.
Security Boundary
Runtime stays **read-only**. No constructive operations in production. No surprises.
Who It's For
Designed for the next generation of applications.
AI Assistants
Perfect for customer support, internal ops, sales, and shopping agents that need context-aware monetization.
RAG & Search
Seamlessly integrate sponsored context alongside your organic retrieval and semantic search results.
Commerce & Media
Power affiliate recommendations and brand inserts that respect the user's current context and intent.
Architecture & Security
Dual-plane isolation for enterprise-grade safety.
Engine (Runtime)
Read-OnlyHandles campaign matching and retrieval. Optimized for low latency. Called by LLMs.
- Semantic matching
- Audit tracing
- Health checks
Studio (Admin)
Write AccessManages provisioning, ingestion, and operations. Called by Humans or CI pipelines.
- Collection management
- Batch ingestion
- Analytics reporting
curl -LsSf https://astral.sh/uv/install.sh | sh
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant
uv sync && uv run sponsorstream-cli create && uv run sponsorstream-cli seed
uv run sponsorstream-engine
uv run sponsorstream-studio
Live Demo Coming Soon
Watch how the engine matches context in real-time.
Frequently Asked Questions
Keywords break when language shifts. Semantic retrieval uses vector embeddings to understand the *meaning* of the context, ensuring relevance even without exact word matches.
No. Context embedding is local (using FastEmbed) and storage is your own Qdrant instance. Your data stays with you.
Yes. Typed exclusions and policy flags are first-class citizens. You can block specific domains, keywords, or entire semantic categories.
Absolutely. The campaigns_explain tool returns a full audit trace tied to a
specific match, detailing the similarity score and any filters applied.
Yes, SponsorStream is open source and available on GitHub under the MIT License.
Yes. Use the campaigns_match_dry_run tool to simulate matching with different
constraints without impacting pacing or analytics.
The campaigns_metrics tool provides detailed breakdowns of success rates, score
distributions, and constraint rejection reasons.
Run campaigns_diagnostics to check collection health and identify common
blocking issues like strict constraints or budget exhaustion.
Yes. When calling campaigns_match, you can vary the context_text
and audience_segments to see how the system adapts to different user personas.