Disclosure requirements
Use the returned Sponsored label anywhere the offer appears.
Genesis lets AI products request single or multi-placement sponsored suggestions, persist category controls, collect optional first-party signals, proxy tracking through publisher-owned routes, and render native formats only where the publisher allows it.
A simple planning model based on sessions, fill rate, and effective RPM.
Planning estimate only. Actual earnings depend on approved demand, valid events, policy controls, and reconciliation.
Decide where Genesis can appear, what categories are allowed, and how disclosure should render before anything goes live.
Create an app. Copy a test key. Call the endpoint. Render the Sponsored label only when an offer is returned.
const response = await genesis.requestOffers({
placement: {
placementId: "assistant_after_answer",
appId: "app_123",
agentType: "coding_assistant",
surface: "chat"
},
context: {
userMessage,
categories: ["developer_tools"]
},
signals: [{
signalCategory: "recommendation_request",
subject: "TypeScript API monitoring",
confidence: 0.84,
categories: ["developer_tools"],
purpose: "offer_request_context"
}],
controls: { maxOffers: 1 }
});Record structured first-party signals inline with an offer request or through the signal endpoint, including recommendation intent, subject, confidence, IAB category, placement, and feedback. Keep raw PII out of requests and use hashed identifiers when you need stable frequency or attribution context.
await genesis.recordSignal({
sessionId: "session_12345678",
placementId: "assistant_after_answer",
signalCategory: "recommendation_request",
subject: "TypeScript API monitoring",
confidence: 0.84,
categories: ["developer_tools"],
purpose: "publisher_first_party_personalization"
});Use the returned Sponsored label anywhere the offer appears.
Run Genesis beside the model call so it never blocks the answer.
App-level category controls are merged before matching and auction.
See estimated, pending, confirmed, payable, and paid earnings separately.
Track requests, fill, impressions, clicks, earnings, experiments, and surfaces before you ask for production approval.
Yes. Use REST or the server SDK beside your model request.
The offer array is empty. Your product continues without changing the answer.
Start in test mode, wire one placement, and move to production once disclosure and controls read the way you want.