@konvo-ai/sdk-web
Version:
KonvoAI Conversational Ad SDK for Web Applications - Intelligent contextual advertising with AI-powered decision engine
127 lines (95 loc) • 3.44 kB
Markdown
# KonvoAI Web SDK
> Intelligent contextual advertising with AI-powered decision engine for web applications
## Installation
```bash
npm install @konvo-ai/sdk-web
```
## Quick Start
```typescript
import { KonvoAIAds } from '@konvo-ai/sdk-web';
// Initialize the SDK
KonvoAIAds.init({
apiKey: 'your-api-key-here'
});
// Request an ad decision
const response = await KonvoAIAds.decide({
context: {
domain: 'tech',
content: 'article-about-javascript',
placement: 'sidebar'
},
user: {
userId: 'user123',
anonId: await KonvoAIAds.generateAnonId()
},
chat: {
lastUserMsg: 'I love learning JavaScript!'
}
});
// Display the ad if available
if (response.fill && response.render) {
const adContainer = document.getElementById('ad-container');
// Create ad element
const adElement = document.createElement('div');
adElement.innerHTML = `
<div style="padding: 16px; border: 1px solid #ddd; border-radius: 8px;">
<h3>${response.render.title}</h3>
<p>${response.render.description}</p>
<button onclick="handleAdClick()">${response.render.cta.label}</button>
</div>
`;
adContainer.appendChild(adElement);
// Track impression
await KonvoAIAds.handleImpression(response);
// Handle click
window.handleAdClick = response.render.cta.handler;
}
```
## API Reference
### `KonvoAIAds.init(config)`
Initialize the SDK with your API configuration.
**Parameters:**
- `config.apiKey` (string, required): Your KonvoAI API key
- `config.baseUrl` (string, optional): Custom API base URL (defaults to production)
### `KonvoAIAds.decide(input)`
Request an ad decision from the KonvoAI engine.
**Parameters:**
- `input.context` (object): Context information about the placement
- `domain` (string): Content domain/category
- `content` (string): Content identifier
- `placement` (string): Ad placement identifier
- `input.user` (object): User information
- `userId` (string, optional): Authenticated user ID
- `anonId` (string): Anonymous user identifier
- `input.chat` (object): Chat context
- `lastUserMsg` (string): Most recent user message for context
**Returns:** Promise<DecideResponse>
- `decisionId` (string): Unique decision identifier
- `fill` (boolean): Whether an ad should be shown
- `render` (object, optional): Ad content when fill is true
- `title` (string): Ad headline
- `description` (string): Ad description
- `cta` (object): Call-to-action
- `label` (string): Button text
- `handler` (function): Click handler function
### `KonvoAIAds.handleImpression(response)`
Track an ad impression. Call this when the ad is displayed to the user.
**Parameters:**
- `response` (DecideResponse): The response from `decide()`
### `KonvoAIAds.generateAnonId()`
Generate or retrieve a persistent anonymous user ID.
**Returns:** Promise<string> - Anonymous user identifier
## Privacy & Data Handling
The KonvoAI SDK includes automatic PII scrubbing for user messages:
- Names are replaced with `[NAME]`
- Phone numbers are replaced with `[PHONE]`
- Email addresses are replaced with `[EMAIL]`
- Social Security Numbers are replaced with `[SSN]`
- Credit card numbers are replaced with `[CARD]`
- ZIP codes are replaced with `[ZIP]`
## Support
- Documentation: https://docs.konvo.ai/web-sdk
- Issues: https://github.com/konvo-ai/sdk-web/issues
- Email: support@konvo.ai
## License
MIT License - see LICENSE file for details.