ViewFi Docs ← Documentation Home

ViewFi CTV Integration Guide

Overview

ViewFi enables brands to distribute video reward campaigns on Connected TV platforms. Viewers watch a brand video on TV, scan a QR code displayed alongside or after the video, and claim their reward on mobile.

Supported CTV formats:

How It Works

1. VAST tag URL provided to CTV partner
2. Partner SSAI requests VAST XML from ViewFi
3. VAST includes HLS/DASH video + companion QR image
4. Video plays on TV, companion QR displays alongside
5. Viewer scans QR with phone
6. Phone opens mobile claim page
7. Viewer claims reward (coupon, voucher, contest entry, etc.)

VAST Tag URL

Standard CTV VAST

https://video-rewards.com/api/vast/{campaignId}/ctv

Partner-Specific CTV VAST

https://video-rewards.com/api/vast/{partnerId}/{campaignId}/ctv

Query Parameters

Parameter Type Description
partner string Partner identifier for tracking
session string Session ID for event correlation
device string Device type hint (roku, firetv, samsung, lg)

Supported VAST Macros

VAST Response Details

VAST Version

4.0 compliant

MediaFiles

Format MIME Type Delivery Resolution
HLS (primary) application/x-mpegURL streaming 1920x1080 adaptive
DASH (fallback) application/dash+xml streaming 1920x1080 adaptive
MP4 (progressive) video/mp4 progressive 1920x1080, H.264

Companion Ads

Size Format Content
300x250 PNG Brand logo + QR code + reward CTA
1920x1080 PNG Full-screen pause ad with reward display + QR

Tracking Events

Standard VAST tracking events are included:

CTV-specific tracking:

Key VAST Differences from Standard

Creative Assets

QR Code Image

GET https://video-rewards.com/api/campaigns/{campaignId}/ctv/qr.png

Returns a standalone QR code PNG. Query params: size (default 400, max 1000).

Companion Ad Image (300x250, 728x90, etc.)

GET https://video-rewards.com/api/campaigns/{campaignId}/ctv/companion/{width}x{height}.png

Full companion ad with brand logo, QR code, reward description, and CTA.

Pause Screen (1920x1080)

GET https://video-rewards.com/api/campaigns/{campaignId}/ctv/pause/{width}x{height}.png

Full-screen pause ad creative: brand logo, reward title, description, large QR code, "Scan with your phone to claim reward" CTA.

QR Code Flow

When a viewer scans the QR code:

  1. Phone opens https://video-rewards.com/ctv/{campaignId}
  2. Server logs the scan event
  3. Redirects to the ViewFi reward claim page
  4. Viewer authenticates and claims their reward on mobile

Supported Reward Types

Type Description
Coupon Unique coupon codes
Voucher Digital vouchers (gift cards, discounts)
Contest Prize entry / sweepstakes
Airdrop USDC token transfers
Reward Link Custom reward URLs
Fortnite V-Bucks / cosmetic codes

Testing

1. Get a VAST Tag URL

Use any active campaign with a Cloudflare Stream video. The VAST tag URL is:

https://video-rewards.com/api/vast/{campaignId}/ctv

2. Validate VAST XML

Paste the VAST tag URL into the Google VAST Inspector to validate the XML structure.

3. Test Video Playback

Use the Google IMA SDK Sample Player with your VAST tag URL to test video playback.

4. Test QR Code

Open the companion image URL in a browser to preview the QR code:

https://video-rewards.com/api/campaigns/{campaignId}/ctv/companion/300x250.png

5. Test QR Scan Flow

Scan the QR code with a phone camera to verify the redirect and claim flow works.

6. Test Pause Screen

Preview the pause screen creative:

https://video-rewards.com/api/campaigns/{campaignId}/ctv/pause/1920x1080.png

Integration Checklist

Contact

For integration support, reach out to the ViewFi team.

Documentation

Getting Started Campaign Management Claude / MCP Connector Advertising & DSP CTV Integration Roblox Integration Fortnite Integration API Reference Developer Resources Troubleshooting