General
What is ChatAds?
What is ChatAds?
How does ChatAds work?
How does ChatAds work?
- Keyword Extraction - NLP and/or LLM models identify product mentions in messages
- Intent Scoring - Each query receives a purchase intent score (0.0-1.0) to filter low-quality matches
- Affiliate Resolution - Product keywords are matched to affiliate links via Amazon PA-API and Google Shopping
What platforms does ChatAds support?
What platforms does ChatAds support?
- AI Chatbots - Claude, GPT, Gemini, custom LLMs
- Chat Applications - Customer support bots, product assistants
- Workflow Tools - n8n, Zapier, Make
- Frameworks - Next.js, Express, FastAPI, Flask, Django
- MCP Servers - Claude Desktop, custom MCP implementations
What affiliate networks does ChatAds use?
What affiliate networks does ChatAds use?
- Amazon Associates - Via Amazon Product Advertising API (PA-API)
- Google Shopping - Via Serper API fallback
fill_priority: "speed").API & Integration
How do I get an API key?
How do I get an API key?
- Sign up at app.getchatads.com
- Navigate to Settings → API Keys
- Click Generate API Key
- Copy your key (starts with
cak_)
What's the difference between message_analysis modes?
What's the difference between message_analysis modes?
message_analysis parameter controls how ChatAds extracts product keywords:| Mode | Speed | Quality | Use Case |
|---|---|---|---|
fast | ~50ms | Good | High-volume, latency-sensitive |
balanced | ~150ms | Better | Default, most use cases |
thorough | ~300ms | Best | Complex queries, premium traffic |
fast uses NLP only. balanced and thorough use LLM with NLP fallback.What does skip_message_analysis do?
What does skip_message_analysis do?
skip_message_analysis: true, ChatAds bypasses all NLP/LLM processing and uses your message content directly as the search query. This is useful when:- You’ve already extracted the product keyword
- You want to search for a specific product name
- You’re building a product search feature (not analyzing conversation)
message: "wireless running headphones" with skip_message_analysis: true.How does min_intent filtering work?
How does min_intent filtering work?
min_intent parameter filters results by purchase intent score:| Level | Threshold | Description |
|---|---|---|
any | 0.0 | Return all matches (no filtering) |
low | 0.2 | Filter garbage/spam queries |
medium | 0.5 | Balanced quality and fill rate |
high | 0.7 | Premium, high-converting queries only |
matched: false with min_intent_required showing the filter level.What does fill_priority control?
What does fill_priority control?
fill_priority parameter controls fallback behavior:coverage(default) - Full resolution chain: Amazon PA-API → Google Shopping → no matchspeed- Skips Google Shopping fallback for faster response
speed when latency matters more than match rate. Use coverage when you want maximum affiliate link coverage.Can I use ChatAds with multiple AI assistants?
Can I use ChatAds with multiple AI assistants?
Rate Limits & Billing
What are the rate limits?
What are the rate limits?
| Plan | Monthly Limit | Daily Limit |
|---|---|---|
| Free | 100 requests | 10 requests |
| Starter | 5,000 requests | 500 requests |
| Pro | 50,000 requests | 5,000 requests |
| Enterprise | Custom | Custom |
What happens when I hit a rate limit?
What happens when I hit a rate limit?
429 error with details:Retry-After header with seconds until reset.Do blocked requests count against my quota?
Do blocked requests count against my quota?
How do I monitor my usage?
How do I monitor my usage?
- Dashboard - Visit app.getchatads.com for real-time usage graphs
- API Response - Every response includes
meta.usagewith current counts:
How do I upgrade my plan?
How do I upgrade my plan?
- Go to app.getchatads.com/settings/billing
- Select a higher tier
- Complete payment
Errors & Troubleshooting
I'm getting UNAUTHORIZED (401) errors
I'm getting UNAUTHORIZED (401) errors
I'm getting FORBIDDEN (403) errors
I'm getting FORBIDDEN (403) errors
- The key starts with
cak_ - It hasn’t been revoked in the dashboard
- Your team account is active
My message returns matched: false. Why?
My message returns matched: false. Why?
- No product detected - The message doesn’t contain a clear product reference
- Intent too low - The query’s intent score is below your
min_intentthreshold - No affiliate available - The product exists but has no affiliate link
- Blocked keyword - Your team has a keyword rule blocking this content
reason field in the response for specifics.The API is slow. How can I speed it up?
The API is slow. How can I speed it up?
- Use
message_analysis: "fast"- NLP-only extraction (~50ms vs ~150ms) - Use
fill_priority: "speed"- Skip Google Shopping fallback - Use
skip_message_analysis: true- If you already know the product keyword - Cache responses - Same queries return same results
fast+speed: ~50-100msbalanced+coverage: ~150-300msthorough+coverage: ~300-500ms
How do I handle rate limit errors gracefully?
How do I handle rate limit errors gracefully?
Can I test the API without using my quota?
Can I test the API without using my quota?
- Use the API Explorer in the dashboard
- Cache responses during development
- Contact support@getchatads.com for extended testing quotas
Advanced Usage
How do I set up geo-targeting?
How do I set up geo-targeting?
country parameter with an ISO 3166-1 alpha-2 code:- Localized affiliate links (amazon.com vs amazon.de)
- Country-specific product availability
- Geo-restriction enforcement (if configured)
ip for automatic geo-detection.Can I block certain keywords or products?
Can I block certain keywords or products?
- Go to app.getchatads.com/settings/rules
- Add blocked keywords
- Optionally set a custom rejection message
CONTENT_BLOCKED (422) and don’t count against your quota.What's the maximum message length?
What's the maximum message length?
MESSAGE_TOO_LONG (400).For best results, send the relevant portion of the conversation—typically the user’s last message or the product-related context.How do I integrate with streaming responses?
How do I integrate with streaming responses?
Is there a webhook for real-time events?
Is there a webhook for real-time events?
Security & Privacy
Is my data stored?
Is my data stored?
- Usage logs (request counts, timestamps)
- Error logs (for debugging, anonymized)
- Team/account configuration
How should I store my API key?
How should I store my API key?
- Store in environment variables
- Use server-side API routes
- Rotate keys if exposed
- Use separate keys for dev/prod