Types & Interfaces
TypeScript type definitions for EarnLayer SDK.
DisplayAd
interface DisplayAd {
id: string;
impressionId: string;
title: string;
description?: string;
url: string;
imageUrl?: string;
adType: 'hyperlink' | 'thinking' | 'banner';
source: 'queue' | 'fallback';
}Important: Always use ad.url directly - it includes backend redirect for automatic tracking.
Conversation
interface Conversation {
conversation_id: string;
creator_id: string;
ad_settings: object;
status: string;
created_at: string;
}EarnLayerConfig
interface EarnLayerConfig {
proxyBaseUrl?: string;
debug?: boolean;
}UseDisplayAdOptions
interface UseDisplayAdOptions {
adType?: 'hyperlink' | 'thinking' | 'banner';
autoFetch?: boolean;
debug?: boolean;
onAdFetched?: (ad: DisplayAd) => void;
onError?: (error: Error) => void;
}InitializeConversationOptions
interface InitializeConversationOptions {
visitorId?: string;
adTypes?: ('hyperlink' | 'thinking' | 'banner')[];
frequency?: 'low' | 'normal' | 'high';
demoMode?: boolean;
}Field Descriptions:
visitorId- Custom visitor ID for trackingadTypes- Types of ads to enable (['hyperlink', 'thinking', 'banner']by default)frequency- Ad frequency setting ('normal'by default)demoMode- Whentrue, shows all demo ads regardless of partnerships setup. Use for testing only. (falseby default)
Note: SDK uses camelCase (demoMode) in TypeScript/JavaScript. MCP headers use snake_case (x-demo-mode) but that’s handled internally.
ConfirmImpressionsResult
interface ConfirmImpressionsResult {
confirmed_count: number;
impression_ids: string[];
}