Prism Publication

Native contextual ads for AI chatbots

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

Relevance first

Ads only appear when a user's prompt closely aligns with a product, keeping your chat experience clean and useful.

Instant matching

Delivers ad cards in milliseconds so your chat stream never stutters or delays.

Privacy and security

Your API keys and sensitive user data remain safely on your server, never exposed to the browser.

Zero script bloat

No invasive third-party ad tags or tracking scripts inserted into your chat widget.

By Daniel Rosenthal. Published . Last updated .

How does the prompt matcher pick a card?

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.

Run a prompt to score the catalog.

Which chat niches does the sandbox cover?

Fitness

Training, protein, bands, and running gear when the prompt is already about the workout. High commercial intent, short messages, easy tags for cosine overlap.

Sleep tools

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.

Productivity

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.

How do you wire the SDK without putting a key in the browser?

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.

What numbers should media and product leads actually quote?

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.

Public matching contract
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