Overview
Product Ads combine AI avatars with automatic website scrolling to create engaging product advertisement videos. The avatar presents your product while the website scrolls in the background, showcasing your product page. Perfect for product launches, e-commerce advertising, SaaS showcases, and website feature highlights.
Basic Product Ad
const response = await fetch('https://api.tryhooked.ai/v1/project/create/product-ads', {
method: 'POST',
headers: {
'x-api-key': process.env.HOOKED_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
script: 'Introducing our revolutionary product that will change how you work. With cutting-edge features and an intuitive design, it\'s everything you need to boost your productivity.',
productAdSettings: {
websiteUrl: 'https://example.com/product'
},
avatarId: 'confident_avatar_id',
voiceId: 'professional_voice_id'
})
});
const data = await response.json();
console.log('Video ID:', data.data.videoId);
console.log('Project ID:', data.data.projectId);
Product Ad with Custom Settings
const createProductAd = async () => {
const response = await fetch('https://api.tryhooked.ai/v1/project/create/product-ads', {
method: 'POST',
headers: {
'x-api-key': process.env.HOOKED_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Product Launch Video',
script: 'Discover the future of productivity with our latest SaaS platform. Experience seamless workflow management, real-time collaboration, and intelligent automation - all in one powerful tool.',
productAdSettings: {
websiteUrl: 'https://saas-product.com/features',
avatarIntroSeconds: 5,
scrollMode: 'loop',
scrollInterval: 4,
scrollDuration: 2000,
scrollDelay: 500
},
avatarId: 'enthusiastic_avatar_id',
voiceId: 'confident_voice_id',
lipsyncModel: 'pro',
aspectRatio: 'ratio_9_16',
caption: {
preset: 'modern',
alignment: 'bottom',
disabled: false
},
addStickers: true,
audio: {
speed: 1,
stability: 0.5,
similarityBoost: 0.75,
style: 0,
useSpeakerBoost: true
},
language: 'en',
webhook: 'https://yoursite.com/webhook',
metadata: {
campaignId: 'summer2024',
productId: 'prod_123',
category: 'saas'
}
})
});
return await response.json();
};
Tips for Product Ads
Optimize Website URL: Use a clean, focused landing page that highlights your product’s key features and loads quickly
Set Intro Duration: Use 2-5 seconds for the avatar intro to grab attention before showing the website
Choose Scroll Mode: Use restart for product listings, loop for hero sections, once for long content
Select Pro Lipsync: Choose pro lipsync model for professional ads and brand content
Match Avatar to Brand: Select an avatar that matches your brand personality and target audience
Add Background Music: Enhance engagement with subtle background music that complements the narration
| Mode | Description | Use Case |
|---|
restart | Scroll down, jump to top when reaching bottom | Product listings, feature pages |
loop | Ping-pong scroll (down then up, then down…) | Landing pages, hero sections |
once | Scroll down only, stay at bottom | Long-form content, testimonials |
fixed | No scroll, just capture initial view | Static pages, splash screens |
Lipsync Models
| Model | Quality | Speed | Cost | Best For |
|---|
base | Standard | Faster | Lower | Quick content, social media |
pro | Enhanced | Slower | Higher | Professional ads, brand content |
Website URL Guidelines
Important: The website URL must be publicly accessible and not behind authentication.
Best Practices
- Use HTTPS URLs only
- Ensure the website loads quickly
- Use mobile-responsive pages
- Avoid pages with heavy animations or popups
- Test the URL in an incognito browser window
Recommended Page Types
- Product landing pages
- Feature highlight pages
- Pricing pages
- Homepage hero sections
- Demo pages
Use Cases
- Product Launches: Showcase new products with an avatar presenter and scrolling website
- E-commerce Ads: Create engaging ads for online stores with product page scrolling
- SaaS Demos: Demonstrate platform features with synchronized website capture
- Feature Highlights: Showcase specific website features or sections
- Landing Pages: Promote landing pages with engaging avatar narration
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 ID:', metadata.campaignId);
// Save to your database, notify team, etc.
}
res.status(200).send('OK');
});