Complete Platform Guide
Comprehensive documentation for all user roles and features
Understanding VAST (Video Ad Serving Template)
What is VAST?
VAST is an industry-standard XML format that enables video players to communicate with ad servers. It provides a universal way to serve video ads across different platforms and players, ensuring compatibility and consistent tracking.
VAST XML Contains:
- Video URL: Location of the ad video file (MP4, WebM)
- Tracking URLs: Impression, start, quartiles, complete, click events
- Ad Metadata: Duration, dimensions, click-through URL
- Error Tracking: URLs to ping if ad fails to load
- Skip Settings: Whether ad is skippable and after how many seconds
How Our Platform Uses VAST
- Publisher sends ad request to our auction endpoint
- Our RTB engine runs auction and selects winning campaign
- System generates VAST XML with winner's video + tracking URLs
- Player parses VAST and displays the video ad
- Player automatically pings tracking URLs as user watches
Note: Our UnifiedVideoPlayer handles VAST parsing automatically. You don't need to implement VAST parsing yourself unless you're using your own custom player.
Publisher Onboarding: Two Integration Paths
Full Platform Integration (Recommended)
For publishers who want complete platform access and control
Create Publisher Account
Sign up and create a publisher profile with your domain and site details
Configure Placements
Define ad placements for different pages (homepage, articles, videos) with dimensions and floor prices
Embed Our Video Player
Use our pre-built UnifiedVideoPlayer via iframe or JavaScript SDK - no VAST implementation needed
Access Analytics Dashboard
View real-time impressions, clicks, earnings, and detailed performance metrics
Manage Settings & Revenue
Update payment details, adjust floor prices, enable/disable campaigns
✓ Benefits: Full control, detailed analytics, automatic VAST handling, no technical integration required
VAST Tag Integration (Advanced)
For publishers with existing video players who just need our ad inventory
Provide Your VAST Tag URL
Share your existing VAST endpoint so we can integrate with your current setup
We Supply Our VAST Endpoint
Receive our VAST URL: /api/ads/vast?publisher_id=XXX&placement_id=YYY
Your Player Requests Our VAST
Your existing video player calls our endpoint, receives VAST XML with winning ad
Tracking & Analytics Automatic
Your player fires VAST tracking pixels - we receive impressions, clicks, completions automatically
View Performance Dashboard
Access analytics showing impressions, fill rate, revenue from our inventory
✓ Benefits: Keep existing player, add our inventory, minimal integration, still get full analytics
Key Terms & Definitions
- VAST
- Video Ad Serving Template - XML standard for serving video ads with tracking URLs
- VAST Tag
- A URL endpoint that returns VAST XML when called by a video player (e.g., /api/ads/vast?publisher_id=123)
- RTB
- Real-Time Bidding - Auction-based ad serving mechanism
- Impression
- When an ad begins playback
- CPM
- Cost Per Thousand Impressions
- CTR
- Click-Through Rate - clicks divided by impressions
- Fill Rate
- Percentage of ad requests that are filled with ads
- Placement
- A specific ad slot on a publisher's site with defined dimensions and floor price
Troubleshooting Common Issues
Ads not showing on external website?
Ensure Vercel deployment protection is disabled (Settings → Deployment Protection → Turn off password protection)
401 Unauthorized errors?
Check that /embed routes are in PUBLIC_ROUTES in middleware.ts
No tracking events?
Open browser console to see [v0] tracking logs and verify campaign_id is not "undefined"
Live tracking shows zeros?
Ensure campaign has active status and at least one video creative uploaded
Video not playing?
Check that video URL is publicly accessible (Vercel Blob URLs work best)
Wallet balance showing incorrectly?
Refresh the page. If issue persists, contact admin support with your user ID
Test Accounts & Credentials
Admin (Full Access)
Complete system access and control
Email: admin@videotracker.com
Password: AdminPass123!@#
Role: Administrator
Access: All Modules (Global Scope)
Base Advertiser (Full Campaign Access)
Create campaigns, upload creatives, manage budgets - $10,000 initial balance
Email: advertiser@test.com
Password: Advertiser123!
Role: Advertiser
Access: Campaigns, Creatives, Wallet, Analytics
Ad Ops Trafficker (Specialized)
Create campaigns and upload creatives only - $5,000 initial balance - No budget management access
Email: adops@test.com
Password: AdOps123!
Base Role: Advertiser
Variant: ad_ops_trafficker
Permissions: CREATE_CAMPAIGN, UPLOAD_CREATIVE, EXPORT_TAGS
Access: Campaigns (Trafficking View), Creatives
Creative Developer (Specialized)
Upload and preview creatives only - No campaign or budget access
Email: creative@test.com
Password: Creative123!
Base Role: Advertiser
Variant: creative_developer
Permissions: UPLOAD_ASSET, PREVIEW_CREATIVE
Access: Creative Library Only
Base Publisher (Full Inventory Access)
Create placements, manage inventory, track earnings
Email: publisher@test.com
Password: Publisher123!
Role: Publisher
Access: Placements, Allocations, Earnings, Analytics
Sales Manager (Specialized)
Check inventory availability and create proposals - $1,000 initial balance
Email: sales@test.com
Password: Sales123!
Base Role: Publisher
Variant: sales_manager
Permissions: VIEW_INVENTORY, CREATE_PROPOSAL, CHECK_AVAILABILITY
Access: Forecasting Tool, Proposals
Yield Manager (Specialized)
Manage floor prices and yield groups - $500 initial balance
Email: yield@test.com
Password: Yield123!
Base Role: Publisher
Variant: yield_manager
Permissions: EDIT_FLOOR_PRICES, MANAGE_YIELD_GROUPS
Access: Yield Tab, Floor Price Configuration
Billing Admin (Specialized)
Manage invoices and payment profiles - Global scope billing access only
Email: billing@test.com
Password: Billing123!
Base Role: Admin
Variant: billing_admin
Permissions: VIEW_INVOICES, EDIT_PAYMENT_PROFILE
Access: Billing Tab Only
💡 Quick Tips:
- • Use the Admin account to set up and manage the system initially
- • Test each role variant to understand their specific permissions and UI visibility
- • Specialized variants (e.g., Ad Ops Trafficker) inherit from their base role but with restricted permissions
- • Each advertiser-based account starts with their specified initial balance for testing campaigns
- • Variants in the same scope (Advertiser/Publisher) can only see data relevant to their permissions
- • Use the Permissions page to view detailed permission mappings for each role and variant