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

  1. Publisher sends ad request to our auction endpoint
  2. Our RTB engine runs auction and selects winning campaign
  3. System generates VAST XML with winner's video + tracking URLs
  4. Player parses VAST and displays the video ad
  5. 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

1

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

2

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