Relevance first
Ads only appear when a user's prompt closely aligns with a product, keeping your chat experience clean and useful.
Monetize your chatbot without degrading the user experience. Prism automatically matches user intent to relevant product offers in real time, delivering targeted, labeled ad cards only when there is high relevance, and staying silent when there isn't.
Key highlights
Ads only appear when a user's prompt closely aligns with a product, keeping your chat experience clean and useful.
Delivers ad cards in milliseconds so your chat stream never stutters or delays.
Your API keys and sensitive user data remain safely on your server, never exposed to the browser.
No invasive third-party ad tags or tracking scripts inserted into your chat widget.
Choose a niche, paste a user prompt, run the local catalog. The script scores cosine similarity against in-niche creatives. A fill requires 0.65 or higher. The sandbox does not call the live API.
Training, protein, bands, and running gear when the prompt is already about the workout. High commercial intent, short messages, easy tags for cosine overlap.
Sound machines and masks when the user asks for a practical sleep aid. Adjacent wellness products only. Not a clinical claim and not a diagnosis.
Notes, docs, and workspace tools for developer and knowledge-work bots. The Notion sample is how a software creative should look next to an assistant reply.
Keep the key on the server. After the assistant finishes a complete thought, call displayAd with botId, format: "card", and context.topic set to the user prompt. Serialize title, description, URL, and the Sponsored via Prism label. If the score is below 0.65 or the call times out, send the reply alone.
The matcher is not an ad tag. There is no third-party script in the chat widget. The browser only draws HTML you already trust. Import the harvested client from
sdk/prismClient.js
in Node or a Worker. Email info@prismpublication.com for a key.
Serve when cosine similarity is at least 0.65. Budget matching under 120ms. Those are the two public floors. Fill rate is not a vanity metric here. Null is a valid auction outcome. The local sandbox reports both score and elapsed time on every run so you can see the contract without a live bid.
| Signal | Floor | If missed |
|---|---|---|
| Cosine similarity (prompt vs creative) | 0.65 | Return null |
| Match latency | Under 120ms | Fail closed to null |
| Disclosure | Sponsored via Prism on the card | Creative fails review |