Overview
Create UGC-style advertising content that looks authentic and engaging - perfect for social media campaigns. UGC Ads combine AI avatars with natural-sounding scripts to create convincing spokesperson videos.
Quick Example
const response = await fetch('https://api.hooked.ai/v1/project/create/ugc-ads', {
method: 'POST',
headers: {
'x-api-key': process.env.HOOKED_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
script: 'Hey everyone! I just got this amazing product and I had to share my experience with you.',
avatarId: 'avatar_casual_01',
voiceId: 'enthusiastic_voice_id',
media: ['product_demo']
})
});
const data = await response.json();
console.log('Video ID:', data.data.videoId);
console.log('Project ID:', data.data.projectId);
Complete Example
const createUGCAd = async () => {
const response = await fetch('https://api.hooked.ai/v1/project/create/ugc-ads', {
method: 'POST',
headers: {
'x-api-key': process.env.HOOKED_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'UGC Demo',
script: 'Stop scrolling! I need to tell you about something incredible. I was skeptical at first, but after trying this for just one week... I\'m never going back.',
avatarId: 'avatar_influencer_01',
voiceId: 'confident_voice_id',
lipsyncModel: 'pro',
adSettings: {
bRollType: 'rounded-cover',
removeAvatarBackground: true
},
media: ['product_video', 'product_image'],
musicId: 'trending_music_01',
aspectRatio: 'ratio_9_16',
caption: {
preset: 'wrap1',
alignment: 'top',
disabled: false
},
webhook: 'https://yoursite.com/webhook',
metadata: {
campaignId: 'q1-campaign',
abTestVariant: 'B'
}
})
});
return await response.json();
};
Example with Audio Settings
const createUGCAdWithAudio = async () => {
const response = await fetch('https://api.hooked.ai/v1/project/create/ugc-ads', {
method: 'POST',
headers: {
'x-api-key': process.env.HOOKED_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Product Review with Custom Audio',
script: 'I\'ve been testing this product for weeks and I\'m blown away by the results. Let me show you exactly what makes it special.',
avatarId: 'avatar_influencer_01',
voiceId: 'enthusiastic_voice_id',
lipsyncModel: 'pro',
adSettings: {
bRollType: 'rounded-cover',
removeAvatarBackground: true
},
media: ['product_demo', 'unboxing_video'],
musicId: 'trending_music_01',
aspectRatio: 'ratio_9_16',
caption: {
preset: 'tiktok',
alignment: 'bottom',
disabled: false
},
audio: {
speed: 1.1,
stability: 0.7,
similarityBoost: 0.8,
style: 0.3,
useSpeakerBoost: true
},
webhook: 'https://yoursite.com/webhook',
metadata: {
campaignId: 'product-review-2024',
productId: 'PROD-12345'
}
})
});
return await response.json();
};
Tips for UGC Ads
Be authentic: Write scripts that sound natural and conversational, not salesy
Hook in 2 seconds: Start with attention-grabbing words like “Stop scrolling!” or “POV:“
Use 9:16 format: Vertical videos perform better on TikTok, Reels, and Shorts
Keep it short: 15-30 seconds works best for social media ads
Add B-roll: Product shots and demos increase engagement and credibility
| Formula | Example |
|---|
| Problem → Solution | ”I used to struggle with X… then I found this!” |
| Skeptic → Believer | ”I didn’t believe the hype, but after trying it…” |
| Before → After | ”My mornings used to be chaos. Now look at this!” |
| Social Proof | ”Everyone’s been asking about my secret. Here it is!” |
| Urgency | ”They’re almost sold out! I had to share before it’s gone” |
B-Roll Display Types
| Type | Description |
|---|
down | Split screen down - Avatar on top half, B-roll on bottom half (Default) |
up | Split screen up - B-roll on top half, avatar on bottom half |
left | Split screen left - Avatar on right, B-roll on left - balanced layout |
right | Split screen right - Avatar on left, B-roll on right - balanced layout |
rounded-cover | Rounded - Rounded avatar overlay on B-roll background |
full-width | Full screen - B-roll covers entire screen, avatar hidden |
Use Cases
- Product Reviews: Authentic-looking testimonials
- Unboxing Videos: Product reveal content
- Social Media Ads: TikTok, Instagram Reels, Facebook ads
- Comparison Ads: Side-by-side product comparisons
- Tutorial Teasers: Quick how-to previews
Handling the Webhook Response
// Express.js webhook handler
app.post('/webhook', (req, res) => {
const { data, status, message } = req.body;
if (status === "COMPLETED") {
const { videoId, status: videoStatus, url, shareUrl, metadata } = data;
console.log('Video completed!');
console.log('Video ID:', videoId);
console.log('Download URL:', url);
console.log('Share URL:', shareUrl);
console.log('Campaign:', metadata.campaignId);
// Save to your database, notify team, etc.
}
res.status(200).send('OK');
});