Demo Mode Guide
Test your earnlayer integration with demo ads before setting up partnerships
Testing Feature
What is Demo Mode?
What is Demo Mode?
Demo mode is a testing feature that allows you to see all available demo advertisements in your application without needing to configure partnerships with advertisers.
Demo Mode
initializeConversation({
demoMode: true
})- Shows ALL ads where advertisers.is_mock_data = true
- No partnerships configuration required
- Perfect for testing and development
Production Mode
initializeConversation({
demoMode: false
})- Shows ONLY ads where you have partnerships configured
- Real revenue tracking
- Production-ready billing
Note: SDK uses camelCase (
demoMode) in TypeScript/JavaScript. MCP headers use snake_case (x-demo-mode) but that's handled internally.Database Behavior
Demo Mode (demoMode: true)
When enabled, the system queries all ads from advertisers marked as mock data, regardless of whether you have partnerships configured.
Result: All demo ads are visible, perfect for testing
Production Mode (demoMode: false)
When disabled (default), the system only shows ads where you have established partnerships with the advertiser.
Result: Only ads with configured partnerships are shown
Implementation Examples
Implementation Examples
Basic Setup
import { useEarnLayerClient } from '@earnlayer/sdk/react';
function ChatComponent() {
export const { initializeConversation } = useEarnLayerClient();
useEffect(() => {
initializeConversation({
demoMode: true // Enable demo mode
});
}, []);
return <div>Your chat UI</div>;
}Environment-Based
useEffect(() => {
const isDevelopment = process.env.NODE_ENV === 'development';
initializeConversation({
demoMode: isDevelopment
});
}, []);Transitioning to Production
Transitioning to Production
1
Test with Demo Mode
initializeConversation({
demoMode: true,
adTypes: ['hyperlink', 'thinking', 'banner'],
frequency: 'normal'
});2
Configure Partnerships
1. Go to earnlayer App
2. Set partnerships for advertisers you want to work with
Set Up Partnerships2. Set partnerships for advertisers you want to work with
3
Disable Demo Mode
initializeConversation({
demoMode: false, // or simply omit this parameter
adTypes: ['hyperlink', 'thinking', 'banner'],
frequency: 'normal'
});4
Verify Real Ads
const { ad } = useDisplayAd({
adType: 'banner',
onAdFetched: (ad) => {
console.log('Ad fetched:', ad.title);
// Verify you're seeing real ads
}
});Troubleshooting
Troubleshooting
"No ads showing with demo mode enabled"
- Verify
demoMode: trueis set correctly - Check console for errors
- Verify conversation initialized successfully
- Confirm demo ads exist in the system
"Still seeing demo ads in production"
Make sure
demoMode is false or omitted:initializeConversation({
demoMode: false // Explicitly set to false
});FAQ
FAQ
Q: Will demo mode affect my revenue?
A: No revenue is generated from demo ads. Demo mode is for testing only.
Q: Can I use demo mode with real users?
A: Not recommended. Demo ads don't generate revenue and may not reflect your actual ad inventory.
Q: Can I mix demo and real ads?
A: No. Demo mode shows only demo ads. Production mode shows only real ads with partnerships.