Overview
The Universal SDK provides framework-agnostic functionality for integrating ActionX ads into any JavaScript application.Installation
Copy
Ask AI
npm install @ai-ad-network/frontend-sdk
Basic Usage
Initialize Ad Manager
Copy
Ask AI
import { AdManager } from '@ai-ad-network/frontend-sdk/universal';
const manager = new AdManager({
apiBaseUrl: '/api/v1',
apiKey: 'ak_your_api_key',
debug: true,
});
Request Ads
Copy
Ask AI
const result = await manager.requestAds({
conversationContext: {
query: 'Best laptops for programming',
response: 'Here are some great options...',
},
userContext: {
sessionId: 'session-123',
},
slots: [
{
slotId: 'main',
format: 'action_card',
count: 3,
},
],
});
Render Ads
Copy
Ask AI
import { DOMRenderer } from '@ai-ad-network/frontend-sdk/universal';
const container = document.getElementById('ad-container');
const ad = result.slots[0].ads[0];
DOMRenderer.renderActionCardWithAnalytics(ad, container, {
analytics: {
requestId: result.requestId,
slotId: 'main',
position: 0,
totalAds: result.slots[0].ads.length,
},
manager,
});
Entity Link Ads
Global Setup
Copy
Ask AI
import {
setupGlobalEntityTracking,
injectEntityLinkStyles
} from '@ai-ad-network/frontend-sdk/universal';
setupGlobalEntityTracking({
apiBaseUrl: '/api/v1',
debug: true,
});
injectEntityLinkStyles();
Apply Entity Links
Copy
Ask AI
import { fetchAds, applyEntityFragments } from '@ai-ad-network/frontend-sdk';
const ads = await fetchAds({
conversationContext: { query, response },
slots: [{
format: 'entity_link',
slotId: 'entity-link',
count: 1
}]
});
const entityAd = ads.slots?.[0]?.ads?.find(ad => ad.type === 'entity_link');
if (entityAd?.enhancedFragments) {
const enhancedContent = applyEntityFragments(
originalContent,
entityAd.enhancedFragments
);
element.innerHTML = enhancedContent;
}