Contextual ads for AI-powered apps. Zero dependencies, TypeScript-first, works in Node.js 18+.
npm install promptads-aiimport { getAd } from "promptads-ai";
const ad = await getAd("best coding laptop");
console.log(ad.title); // "MacBook Pro M3 — 30% off"
console.log(ad.text); // "The fastest laptop for developers..."PROMPTADS_BASE_URL=http://localhost:8000 # API server URL
PROMPTADS_API_KEY=pk_live_xxx # Optional API keyimport { configure } from "promptads-ai";
configure({
baseUrl: "https://api.promptads.ai",
apiKey: "pk_live_xxx",
timeout: 5000, // ms
});Get the single best contextual ad for a user prompt.
const ad = await getAd("best coding laptop", {
topK: 20, // Candidates to consider (default: 10)
relevanceWeight: 0.8, // Weight for relevance score (default: 0.70)
bidWeight: 0.2, // Weight for bid amount (default: 0.30)
});Returns:
{
ad_id: string;
title: string;
text: string;
relevance_score: number;
bid_amount: number;
final_score: number;
}Get multiple contextual ads for a user prompt.
const result = await getAds("best coding laptop", { n: 3 });
result.ads.forEach((ad) => console.log(ad.title));Returns:
{
ads: Ad[];
total_candidates: number;
pipeline_latency_ms: number;
}Track ad interactions for analytics.
import { trackImpression, trackClick } from "promptads-ai";
await trackImpression(ad.ad_id);
await trackClick(ad.ad_id);Full client class for custom configurations and dependency injection.
import { PromptAdsClient } from "promptads-ai";
const client = new PromptAdsClient({
baseUrl: "https://api.promptads.ai",
apiKey: "pk_live_xxx",
timeout: 5000,
});
const ad = await client.getAd("best coding laptop");import { formatAdAsText, formatAdAsMarkdown } from "promptads-ai";
console.log(formatAdAsText(ad));
// [Sponsored] MacBook Pro M3 — 30% off
// The fastest laptop for developers...
console.log(formatAdAsMarkdown(ad));
// **[Sponsored]** MacBook Pro M3 — 30% off
//
// The fastest laptop for developers...import { getAd, PromptAdsError } from "promptads-ai";
try {
const ad = await getAd("best coding laptop");
} catch (error) {
if (error instanceof PromptAdsError) {
console.error(`API Error (${error.status}): ${error.message}`);
}
}MIT