Paramount+ Streaming Infrastructure

Reverse engineered by Jungho Lee

Jungho Lee
Product Manager — CTV & Streaming Platforms

Product Manager with 5 years in product and 10 years in technology, specializing in media and streaming. Multi-platform streaming across mobile (iOS, Android) and Connected TV (Roku, tvOS, Tizen, webOS, Vizio). Experienced in ad technology (CSAI/SSAI), Agile/Scrum SDLC, stakeholder management, and AI-powered automation. Proven track record in product roadmaps, user stories, acceptance criteria, and cross-platform release management using cloud-native tools.

✉ kezameske@gmail.com ☎ (714) 588-3394 🔗 LinkedIn 🤖 ask.jungholee.com
2 Apps
OnDemandKorea + Amasian TV
9 Platforms
iOS, Android, AndroidTV, FireTV, tvOS, Roku, Tizen, webOS, SmartCast
Ad Tech
VAST/VPAID troubleshooting, ad parameter debugging, REST API integration
QA & UI/UX
Cross-platform QA, regression testing, Figma review, App Store certification
AI & Automation
Claude Code, Google Gemini, n8n workflows, RAG agents, rapid prototyping
Why I Built This
◆ Why Paramount+ CTV & Streaming
I built this dashboard by reverse-engineering Paramount+'s entire streaming infrastructure through network traffic analysis — inspecting CDN routing, DRM license exchanges, ad insertion flows, and analytics pipelines across VOD, Live TV, and Home Page. This isn't theoretical knowledge: it reflects the same hands-on debugging and API-level investigation I do daily at ODK Media across 9 CTV and mobile platforms. I identified real findings like the FreeWheel ↔ OneTrust GPP gap, the Shaka v5.0 migration blocker, and the dual-player architecture trade-off — the kind of product-impacting technical insights a Senior TPM needs to surface and drive.
💼 Professional Experience
🎞
ODK Media Inc. — Product Manager
Video Streaming Service for Asian Americans  ·  Fullerton, CA  ·  June 2021 – Present

Cross-Platform Release Management: Own end-to-end release cycles across 7 platforms (iOS, Android, Roku, tvOS, Tizen, webOS, Vizio). Manage App Store submissions, platform certification, and device-specific QA. Define user stories with acceptance criteria and drive backlog prioritization through sprint planning.

API & Backend Collaboration: Work with backend engineers on EPG channel API responses and video playback request parameters in Django. Identify missing or invalid ad parameters (us_privacy, npa, lat, did) across the ad delivery chain, define fixes, and validate via Postman. Resolved a hardcoded parameter issue, increasing CTV ad impressions by 50%.

Content Feeds & FAST Distribution: Own MRSS feed generation for FAST channel distribution and manage content feed delivery (XML/JSON) to platform partners including Google, Roku, and Android. Collaborate with content operators across OnDemandKorea and AmasianTV to audit metadata, subtitles, and media assets. Built n8n automation to audit registered posters and logos.

Frontend, UI/UX & User Journey: Partner with frontend and UI/UX teams to design user journey flows for new features from wireframe through UAT. Debug subtitle delivery by inspecting HLS manifests (m3u8) using browser dev tools.

Data-Driven Roadmap & Stakeholder Management: Built playback health dashboards using MUX Analytics and Google Data Studio, tracking KPIs across devices to inform roadmap decisions. Provide daily updates on product health, timelines, and feature performance to leadership.

ODK Media Inc. — IT Systems Lead
March 2019 – June 2021

Enterprise Migration: Led migration to Google Workspace across 30+ SaaS apps and AWS infrastructure, reducing licensing costs by 15%. Primary point of contact for internal client groups across Sales, Ops, and Engineering.

Process Improvement & AI Adoption: Redesigned Jira/Confluence workflows for cross-functional teams, increasing tool adoption by 60%. Championed internal AI adoption with training programs and AI-assisted workflows.

🤖
Independent Projects — AI, Automation & Product Development
Product Builder & AI Specialist  ·  Stanton, CA  ·  January 2024 – Present

RAG Recruitment Agent (ask.jungholee.com): Architected a conversational AI agent using Next.js, TypeScript, and n8n for RAG orchestration. Integrated Google Gemini with Supabase (PostgreSQL/pgvector) for vector retrieval and Airtable as headless CMS. Managed with Git and deployed on Vercel.

Business Directory Platform (hanin.store): Shipped a bilingual (Korean/English) business directory with Next.js, Supabase, and Airtable, featuring a job board, bounty system, and Instagram live feed integration.

Python Scripting & Automation: Wrote Python scripts for web scraping and data aggregation pipelines. Designed n8n workflows for daily Slack/Gmail summarization and generative media tools, from ideation to production.

🏢
Hyundai America Technical Center Inc. — System Admin / Project Manager
R&D for Hyundai Motor Group  ·  Irvine, CA  ·  January 2016 – February 2019

• Administered virtualized server environments for 200+ users across 4 offices (99%+ uptime). Managed $400K+ annual software/hardware budget and vendor contracts. Worked directly with client user groups across departments to ensure operational needs were met.

🛠 Technical Skills
📋
Product & Ad Tech
Product Roadmap, Release Management, CTV/OTT Strategy, App Store Certification (Apple, Google, Roku, Samsung, LG, Vizio), Agile, Scrum, SDLC, User Stories, Acceptance Criteria, Sprint Planning, CSAI, SSAI, Ad Serving, Publica (SSP), CCPA
💻
Analytics & Engineering
MUX Analytics, Google Data Studio, Looker, SQL, PostgreSQL, Postman, BrowserStack, RAG Architecture, n8n, Supabase, pgvector, Google Gemini, Next.js, TypeScript, Python, Git, GitHub
Tools
Jira, Confluence, Figma, AWS, GCP, Vercel, Airtable, Google Workspace
🎓 Education
🏫
Middle Tennessee State University
Murfreesboro, TN
Bachelor of Science in Recording Industry  ·  December 2011
◆ Platform Architecture Analysis CTV & Streaming Strategy
A deep-dive into Paramount+'s streaming infrastructure through network traffic analysis, revealing how content reaches viewers across VOD, Live TV, and Home Page pipelines. The platform makes distinct CDN, DRM, and ad-insertion choices per content type — optimizing each pipeline while managing cross-cutting concerns like identity resolution, content protection, and user analytics. This analysis was conducted from the perspective of a Technical Product Manager evaluating platform architecture, CTV delivery strategy, and user experience quality.
3
Pipelines
4
CDN Vendors
20+
Edge Nodes
30+
3P Services
2
DRM (Widevine + PlayReady)
3
Ad Insertion (CSAI + SSAI + Pause)
🗺️ Executive Architecture — Data Flow
HTTPS Request Images Telemetry License Request (Bearer JWT) Widevine / AES-128 License Cache Miss WebP API Proxy Auth / Profile Metadata Ad Config Read / Write Catalog Content ID / Event ID SCTE-35 Ad Req VAST 4.0 VOD SSAI HLS SSAI DASH MPD (Unified Origin) Direct (No DAI) Analytics Tag Mgmt Ad Impressions & Quartile Beacons VAST Events DAI Impressions ← Encrypted Media Segments (QUIC / HLS / DASH)
🖥️📱📺
Client Devices
Fastly CDN
🔀
Event Router
🖼️
Image Origin
🏗️
API Gateway
📊
Analytics Sinks
💰
Ad Tracking
👤
User Services
📚
Content APIs
🔐
DRM Server
📢
FreeWheel
💾
User DB
🗄️
Video CMS
🎯
Google DAI
📺
AVOD
📡
Live HLS
CBS News / Golazo
☁️
Akamai CDN
14 edge hosts
📺
Live DASH
8+ Linear Channels
Gateway
Microservices
Ad Tech
Telemetry
DASH Direct
Media Return
Master Architecture — Three Pipelines
User / Browser
Chrome 145 / Win 11
VOD
DASH · HTTP/3
1,382 requests
LIVE HLS
HLS · Akamai
3,499 requests
LIVE DASH
DASH · Akamai
No ads observed
HOME
REST + Fastly CDN
1,348 requests
VOD Pipeline
Movies & Shows On-Demand
Protocol
DASH (fMP4)
Ad Insertion
SSAI (Google DAI)
Primary Ad Server: FreeWheel (varies by region)
CDN: Google Video Infra (r3/r4/r5---sn-*.googlevideo.com)
DRM: Widevine (Irdeto) + License Challenge/Response
Live TV — HLS
CBS News, Golazo, CBS Sports HQ (Event Channels)
Protocol
HLS (MPEG-TS)
Ad Insertion
SCTE-35 → FreeWheel → DAI
CDN: Akamai Airspace (*.airspace.cdn.cbsivideo.com)
DRM: Widevine (Irdeto) + AES-128 (Golazo)
Player: HLS.js v1.5.8 + Smart Tag v1.39.4
Ads: VAST 4.0 · 11 ID3 events · 7+ trackers
Live TV — DASH
Movies, Drama, Kids, Comedy, Reality (8+ Linear Channels)
Protocol
DASH (isoff-live)
Ad Insertion
None Observed
CDN: Akamai (20+ hosts) — Direct, no DAI proxy
DRM: MPEG-CENC — Widevine + PlayReady (Irdeto)
Player: Shaka Player v4.14.1
No ad breaks captured in DASH sessions
Home Page Pipeline
Content Discovery & Carousels
Primary Content
Images + API Data
CDN: Fastly (wwwimage-us.pplusstatic.com)
Video Previews: HLS via Fastly (splice-media)
Analytics: Adobe AEP + 30+ tracking pixels
Why Three Pipelines? Each content type has fundamentally different delivery requirements. VOD needs high-quality ABR with ad insertion — DASH + Google DAI + HTTP/3 QUIC. Live TV needs low-latency with real-time ad breaks — dual HLS/DASH protocols via Akamai with SCTE-35 signaling. Home Page needs fast image loading for content discovery — Fastly CDN with 873 images per session. All converge on Irdeto for DRM (Widevine + PlayReady) and Adobe AEP for analytics. The result: each pipeline is optimized for its job, but the operational complexity is significant — a key TPM consideration for platform maintenance and evolution.
Key Findings & Opportunities
!
Shaka v5.0 Migration Blocker
Web Player

manifest.hls.useSafariBehaviorForLive fires on every HLS channel load in the web player. Deprecated since Shaka v4.x and removed in v5.0 — v4.14.1 still supports it, but upgrading to v5.0 will break live HLS playback. CTV apps (Roku, Fire TV, Apple TV) use native player SDKs — this finding is web-specific. Migration path: adopt streaming.liveSync config.

Golazo: AES-128 DRM Path
All Platforms

Golazo and select event channels (UEFA, 48 Hours) use HLS AES-128 key delivery instead of Widevine. Endpoint: /licenseServer/hls/v1/cbsi/key. Golazo streams at 8,941 kbps — nearly 50% higher than other HLS channels (5,980 kbps). This is a manifest-level DRM decision — applies identically across web, CTV, and mobile since AES-128 key rotation is handled server-side via EXT-X-KEY tags.

Dual Player Architecture
Web Only

The web player loads both Shaka Player (v4.14.1) and HLS.js (v1.5.8) simultaneously — adding ~354KB (gzipped) to the initial payload. This enables zero-reload protocol switching between DASH linear and HLS event channels. CTV apps use native platform player SDKs (e.g., Roku Media Player, ExoPlayer on Fire TV) and would not carry this dual-JS overhead. Web TPM decision: consolidate to one player (Shaka already supports HLS) vs. maintain dual-player for protocol-specific tuning.

Dual Analytics Migration
Web SDKs

The web platform fires both legacy Adobe AppMeasurement (JS-2.23.0 via /b/ss/) and modern AEP Web SDK (Alloy) (via /ee/or2/v1/interact) simultaneously to saa.paramountplus.com. This indicates an active web migration to AEP. CTV apps use Adobe Experience Platform Edge SDKs (native per platform) and may already be on the modern stack. Completing the web migration would eliminate duplicate event collection on the browser surface.

🔒
GPP Privacy: FreeWheel ↔ CMP Gap
All Platforms

FreeWheel VAST macros [GPPSTRING] and [GPPSECTIONID] pass through unpopulated — yet DoubleClick correctly sends gpp=DBABLA~BVQqAAAAAWA.QA. This confirms OneTrust CMP generates GPP, but the FreeWheel ↔ OneTrust integration is not wired. This is not a timing issue — raw template brackets mean macro substitution is missing entirely. Separately, [IFA] / [IFATYPE] are expected empty on web (no device ad ID in browsers); on CTV these carry Roku RIDA, Fire TV Ad ID, etc. GPP is a compliance gap across all platforms.

Dynamic CDN Allocation
All Platforms · 32 Akamai Hosts

32 unique Akamai Airspace hostnames observed across web sessions. Initial sessions showed host sharing (e.g., propeca301a3 serving both History Undiscovered and 80s Sitcoms), while extended sessions revealed near 1:1 channel-to-host mapping. CDN edge allocation is infrastructure-level — the same Akamai routing serves web, CTV, and mobile clients identically. This behavior is consistent with geo-based load balancing and session affinity at the CDN layer.

◆ VOD Architecture vs. Industry Competitive Position
Paramount+ VOD uses DASH with fMP4 via Google DAI — the same foundation as YouTube's delivery infrastructure. HTTP/3 (QUIC) for segment delivery puts P+ ahead of Disney+ and Hulu (still primarily HTTP/2). Server-side ad stitching (SSAI) via Google DAI is industry best practice, preventing ad-blockers and ensuring seamless playback. The CMCD (Common Media Client Data) implementation with 13 real-time metrics on every segment request enables sophisticated ABR — comparable to Netflix's adaptive algorithm approach. VOD uses a dual-layer security model: Widevine DRM via Irdeto (18 license requests observed per session) for content decryption, plus signed URL expiry for CDN access control — providing both content protection and delivery security.
🌐 VOD Pipeline — Request Flow Click any node for details
🌐
Browser Request
GET /movies/video/
via Fastly CDN
click for details
🔗
Parallel APIs
User, Content,
Privacy, FreeWheel
click for details
📺
Google DAI
Stream Session
Network 8264
click for details
📦
Segment Delivery
HTTP/3 DASH fMP4
+ CMCD metrics
click for details
📢
Ad Impressions
3 ads, 7+ beacon
endpoints
click for details
📊
Analytics & QoE
Conviva, Nielsen,
Adobe, Braze
click for details
1,382 requests · DASH fMP4 · HTTP/3 · 3 ads (SSAI) · 2m 42s
▶ VOD Pipeline Detail
VOD Pipeline Detail
VOD PIPELINE — END-TO-END FLOW
STEP 1 — AD CONFIG
FreeWheel
/freewheel/fms.json
userid, coppa, gdpr
Privacy flags fetched
STEP 2 — DAI SESSION
Google DAI
Stream: 3c76d9c3-...
Network: 8264
Content: 2497752
STEP 3 — SERVER DECISION
Segment Routing
dai.google.com/segments/redirect/c/
Each segment = ad OR content
Player cannot distinguish
STEP 4 — CDN DELIVERY
Google Video CDN
HTTP/3 (QUIC)
r3/r4/r5 edge servers
Signed URLs + expiry
STEP 5 — PLAYBACK
Shaka Player
DASH + fMP4
ABR via CMCD
IMA SDK for ads
🎥 MEDIA TRACKS
Video: AVC High Profile
  1024×576 @ 2,600 kbps, 23.976fps
  Top available: 5,805 kbps
Audio: AAC-LC
  48kHz @ 128 kbps, Stereo
Container: fMP4 (fragmented MP4)
Segments: ~5s each, init.mp4 + numbered
🔗 SEGMENT URL ANATOMY
dai.google.com/segments/redirect/c/{n}.mp4
&orig={edge}.googlevideo.com
&id={video_id}
&itag=340 (quality tier)
&source=dclk_video_ads
&mime=video/mp4
&expire={ts} &signature={sig}
🔒 DRM & CONTENT PROTECTION
DRM: Widevine via Irdeto
(18 license requests/session)
CDN Auth: Signed URLs + expiry
Expiry: Time-limited access tokens
Transport: HTTPS required
Dual-layer security: DRM + signed URLs
(content protection + delivery security)
🎬 AD INSERTION (SSAI via DAI)
Model: Server-side stitching
Config: FreeWheel → GAM → DAI
Ads Served: 3 in this session
Tracking: HTTP 204 fire-and-forget
Edge Servers:
r1---sn-a5mekn6k · r1---sn-a5mlrnek · r1---sn-a5msener
r4---sn-a5mekn6s · r4---sn-a5mlrnll · r4---sn-qja5mc-5j
r5---sn-a5mekn6s · r5---sn-a5mekn6z · r5---sn-a5mlrnll
(7+ edge servers, HTTP/3 QUIC)
📈 CMCD (ABR METRICS)
br: 2,699 kbps (current)
mtp: 19,800–28,700 (throughput)
bl: 9,600–10,000 ms (buffer)
tb: 5,805 kbps (top bitrate)
rtp: 6,800–7,000 (requested)
d: 5,005 ms (segment dur.)
+ nor, ot=v/a/i, sf=d, st=v, sid, su, dl
📊 SESSION STATS
Duration: 2m 42s
Requests: 1,382 total
Protocol: DASH (no m3u8)
Page CDN: Fastly (Varnish)
Video CDN: Google Video
Player JS: movieVideoTopEdge-*.min.js
IMA SDK: imasdk.googleapis.com
IMPRESSION TRACKING FLOW
Ad segment plays dai.google.com/view/p/service/vod/impression/ stream/{id}/network/8264/content/2497752/vid/{vid}/stream_ad_id/{ad_id} HTTP 204 ✓
▶ VOD Ad Parameters
📢 VOD Ad Parameters
PRE-STREAM: FREEWHEEL AD CONFIG GET /freewheel/fms.json
ParameterValueTypeDescription
dai0IntegerDAI mode — 0 = standard CSAI flow via Google IMA SDK
coppa0IntegerCOPPA flag — 0 = not child-directed content
userid11ccb273-ef8a-4023-a472-20c0ddb6a328UUIDParamount+ user ID — primary ad targeting key
gdpr0IntegerGDPR applicability — 0 = not in EU
gdpr_consentnullStringIAB TCF consent string — null when GDPR=0
DAI STREAM SESSION Created after FreeWheel config fetched
ParameterValueTypeDescription
Stream ID3c76d9c3-93c7-41e2-9096-30d847cdd729UUIDDAI stitched-stream identifier — ties all segments + ads together
Network ID8264IntegerGoogle Ad Manager network — Paramount's GAM publisher account
Content ID2497752IntegerGAM content asset ID — used for content-level ad targeting
DAI Session IDca3bd550-0f7e-40b0-b832-84b9108c13dbUUIDClient-side session ID for correlating requests
ServicevodStringDAI service type — determines URL path structure
DAI SEGMENT URL PARAMETERS dai.google.com/segments/redirect/c/{n}.mp4
ParameterExample ValueDescription
orighttps://r3---sn-a5msen7s.googlevideo.com/videoplaybackOrigin CDN edge server URL — actual media source
id2222756b23a632d9Video/creative ID — unique per ad or content asset
itag340Google quality tier index (maps to resolution + codec)
sourcedclk_video_adsSource identifier — "dclk_video_ads" = DoubleClick ad creative
requiresslyesForce HTTPS for segment delivery
mimevideo/mp4 or audio/mp4MIME type — indicates video vs audio track
clen{content_length}Content length in bytes for the segment
expire{unix_timestamp}URL expiry — signed URL invalidation time
signature{sig}Cryptographic signature — prevents URL tampering
IMPRESSION TRACKING BEACON Fired per ad on playback start → HTTP 204
URL Path SegmentValueDescription
servicevodService type in impression URL path
impression(path marker)Indicates this is an impression beacon
stream/{stream_id}3c76d9c3-...Stream session this impression belongs to
network/{id}8264GAM network (Paramount's publisher ID)
content/{id}2497752Content asset being watched
vid/{id}2222756b23a632d9Ad creative video ID
media/{id}{media_id}Media rendition ID (quality-specific)
stream_ad_id/{id}{ad_id}Unique ad insertion ID within this stream
ADS OBSERVED IN VOD SESSION
Ad #Video IDEdge ServerCDN RegionSource
Ad 12222756b23a632d9r4---sn-qja5mc-5j.googlevideo.comUS (Google POP)dclk_video_ads
Ad 2b0c790e1d45c7b2dr3---sn-a5msen7s.googlevideo.comUS (Google POP)dclk_video_ads
Ad 381f568a32f216810r5---sn-a5meknzr.googlevideo.comUS (Google POP)dclk_video_ads
CMCD (COMMON MEDIA CLIENT DATA) — ABR METRICS IN EVERY SEGMENT REQUEST
ParamNameObserved Value(s)Description
brBitrate2699 (video), 132 (audio)Current selected bitrate (kbps)
mtpMeasured Throughput19,800 – 28,700 kbpsActual measured download speed
blBuffer Level9,600 – 10,000 msCurrent buffer depth in milliseconds
dDuration5,005 msSegment duration in milliseconds
norNext Object Request"2.mp4", "3.mp4"Prefetch hint — next segment filename
tbTop Bitrate5,805 (video), 143 (audio)Highest available rendition bitrate
rtpRequested Throughput6,800 – 7,000 kbpsThroughput the player is requesting from CDN
dlDeadline9,600 – 10,000 msTime available before buffer underrun
otObject Typev=video, a=audio, i=initType of media object being requested
sfStream Formatd (DASH)Streaming protocol identifier
stStream Typev (VOD)Content type: v=VOD, l=live
sidSession IDca3bd550-...Player session UUID — correlates all segment requests
suStartuptrue (initial requests only)Flag indicating first segment requests at session start
VOD Summary: The VOD pipeline is the most streamlined of the three. Content and ads flow through a single Google DAI endpoint — the player simply requests sequential numbered segments and Google's server transparently mixes in ad segments. The ad targeting chain starts with FreeWheel config (user ID + privacy flags), creates a DAI stream session (Network 8264, Content 2497752), then delivers segments from Google Video CDN edges where each segment's source=dclk_video_ads flag and unique video_id identify ad creatives. DRM is lightweight (signed URLs with expiration tokens rather than full MPEG-CENC). CMCD parameters on every segment request provide 13 real-time metrics for adaptive bitrate decisions.
◆ Live TV Architecture vs. Industry Competitive Position
Paramount+'s dual-protocol live architecture (HLS for event channels, DASH for linear) is architecturally unique — Netflix uses DASH-only, Disney+ primarily HLS. Loading both Shaka Player + HLS.js simultaneously enables zero-reload channel switching but adds ~354KB to payload. SCTE-35 → FreeWheel VAST 4.0 → DAI stitching for live ad breaks is industry-standard. The 20+ Akamai edge servers with dynamic channel-to-CDN allocation show mature live infrastructure. Golazo's unique HLS AES-128 DRM path (vs. Widevine for all others) suggests per-sport DRM licensing requirements.
🌐 Live TV Pipeline — Request Flow Click any node for details
🌐
Page Load
GET /live-tv/
640KB player assets
click for details
🔗
APIs + Trackers
Channel Guide,
26 trackers, Adobe
click for details
📡
Channel Tune-In
Protocol split:
HLS vs DASH
click for details
HLS
📺
HLS + DAI
CBS News, Golazo
AES-128 / Widevine
click for details
DASH
📺
DASH + Irdeto
Movies, Drama, Kids
Widevine + PlayReady
click for details
🎞
Live Segments
TS 4s (HLS)
fMP4 6s (DASH)
click for details
📢
Ad Break
SCTE-35 → VAST
2 ads in 60s
click for details
🔒
DRM Exchange
Irdeto Widevine
+ PlayReady
click for details
3,499 requests (4m 46s) · HLS + DASH · 54 DRM licenses · 2 ads in 60s · 26 trackers · 10 channels
Live TV — Dual Protocol Detail
HLS EVENT CHANNELS — CBS News, Golazo, CBS Sports HQ
PACKAGER
Unified Streaming
v1.15.5-31515
DAI PROXY
Google DAI
3 Event IDs
AD SERVER
FreeWheel
VAST 4.0 + SCTE-35
CDN
Akamai Airspace
*.airspace.cdn.cbsivideo.com
DRM
Widevine / AES-128
Irdeto (Golazo = AES)
PLAYER
HLS.js v1.5.8
Smart Tag v1.39.4
Segments
MPEG-TS (.ts), ~4s each
Max Quality
1080p — News 5,980 / Golazo 8,941 kbps
Renditions
7 video + 1 audio + 7 I-frame
Audio
AAC-LC 128kbps + CC1 captions
DVR
Program-Date-Time (time-shift)
Manifest Cache
no-cache (live edge)
▽ same page loads both ▽
DASH LINEAR CHANNELS — Movies, Drama, Kids, Comedy, Reality (8+ channels)
MANIFEST
Dynamic MPD
isoff-live:2011
CDN
Akamai (20+ hosts)
Direct — no DAI proxy
DRM
MPEG-CENC
Widevine + PlayReady
LICENSE
Irdeto
cbsi.live.ott.irdeto.com
PLAYER
Shaka v4.14.1
Smart Tag v1.39.4
Segments
fMP4 (.mp4), ~6s each
Max Quality
1080p @ 8,000 kbps (AVC High 4.0)
Renditions
8 video (270p–1080p)
Audio + Subs
AAC-LC 128k + TTML/WebVTT
Time-Shift
55.5s buffer, 15s MPD update
Dual DRM in MPD
Widevine PSSH + PlayReady PSSH
★ Ad Break Flow (SSAI — CBS News HLS)
Ad Break Flow (SSAI — CBS News HLS)
SCTE-35 SIGNAL
CUE-OUT: 60.03s
Break: 0000408279
DATERANGE: 33075399-...
Signal: time_signal
Type: Mid-roll
FREEWHEEL DECISION
VAST 4.0 Response
2 ad slots filled
InLine ads (direct)
Quartile tracking
OMID verification
Ad 1: Stamps.com 30.03s
Creative 68179315 · 5 renditions · Extreme Reach CDN
Ad 2: Star Trek Promo 30.03s
Creative 305071423 · 7 renditions · CBS Internal CDN
CUE-IN
Resume Content
Seamless stitch
TRACKING PER AD (11 ID3 events × 7+ tracker endpoints)
start progress ×5 firstQuartile midpoint thirdQuartile complete
FreeWheel Extreme Reach (OMID) Google DAI Google DFP Nielsen DCR TV Scientific Advertiser Pixels
Privacy: us_privacy=1YNN · GDPR=0 · GPP=[GPPSTRING] (not populated) · + mute/pause/resume/close/clickTracking events
⚿ DRM License Exchange (Irdeto)
DRM License Exchange (Irdeto)
1 — CORS PREFLIGHT
OPTIONS → 204
CORS validation for cross-origin DRM request
2 — LICENSE CHALLENGE
POST + auth header
Binary protobuf challenge (4,296 bytes)
3 — LICENSE RESPONSE
application/octet-stream
Protobuf license (672 bytes) / (672+720 dual)
4 — CDM DECRYPT
Widevine CDM v19.0.6
Server: alcatraz_test_drm_server
📢 Live TV Ad Parameters
📢 Live TV Ad Parameters
DAI EVENT & STREAM SESSION Created per live channel tune-in
ParameterValueTypeDescription
Event IDSid4xiTQTkCT1SLu6rjUSQString (Base64)DAI live event — maps to specific channel (CBS News). Each channel has a unique event ID
Stream IDb16dc19f-2b50-4a20-8e82-59963ee772b8:CBF2UUID:SuffixSession-specific stream ID — suffix may indicate CDN region or stream variant
Network ID8264IntegerGAM publisher network — same as VOD (Paramount's unified account)
ServicelinearStringDAI service path — "linear" for live (vs "vod" for on-demand)
PackagerUnified Streaming Platform v1.15.5-31515StringServer-side packager that generates HLS manifests from live source
DAI Manifestdai.google.com/linear/hls/pa/event/{eventId}/master.m3u8URLDAI-proxied HLS master playlist — Google proxies manifest to inject ad segments
SCTE-35 AD BREAK SIGNALING In-band HLS playlist tags
ParameterValueHLS TagDescription
Break ID0000408279Ad break ID
DATERANGE ID33075399-1772081897#EXT-X-DATERANGE:IDHLS break ID for player sync
Start Date2026-02-26T04:58:17.226433ZSTART-DATEBreak start time (UTC)
Planned Duration60.026633 secondsPLANNED-DURATIONBreak duration
CUE-OUT Duration60.026633#EXT-X-CUE-OUTSCTE-35 splice-out marker — triggers ad break
SCTE35-OUT0xFC304E...SCTE35-OUT attrRaw SCTE-35 binary (hex-encoded)
Signal Typetime_signalProvider Placement Opportunity Start
Break TypeMid-rollBreak position within live stream
Ad Count2Number of ad slots filled in this break
AD POD SEGMENT URL PARAMETERS dai.google.com/linear/pods/v1/p/
Path SegmentValueDescription
{eventId}Sid4xiTQTkCT1SLu6rjUSQDAI event — identifies which live channel
{streamId}b16dc19f-...:CBF2Viewer's stream session for this channel
{breakId}0000408279Break reference — matches SCTE-35 break ID
{variant}(quality index)HLS variant stream — matches master playlist rendition
{segment}(segment index)Sequential segment number within the ad pod
Container.ts (MPEG-TS)Same container format as content segments — seamless stitching
VAST 4.0 RESPONSE PARAMETERS (FROM FREEWHEEL)
ParameterAd Slot 1Ad Slot 2Description
Ad SystemFreeWheelFreeWheelAd server / decision engine
VAST Version4.04.0VAST specification version
Ad Type<InLine><InLine>Inline (direct) vs Wrapper (redirect chain)
AdvertiserStamps.comCBS News (Star Trek: Starfleet Academy)Advertiser name
Creative ID68179315305071423Unique creative identifier
Duration30.03s30.03sAd slot duration
Creative FormatProgressive MP4Progressive MP4Ad creative container format
Renditions5 (375–25,000 kbps)7 (482–22,876 kbps)Available quality tiers for the creative
Creative CDNcdn1.extremereach.iop-ause1-adops-output.cbsivideo.comCDN serving the ad creative files
VerificationExtreme Reach OMIDViewability verification SDK
Click-ThroughURL (advertiser site)URL (P+ content page)Destination on ad click
AD TRACKING EVENTS & BEACONS
EventTracker(s)TriggerCount per Ad
impressionFreeWheel, DAI, Extreme Reach, AdvertiserAd render startUp to 10 beacons
startFreeWheel, Extreme ReachFirst frame displayed2–3
firstQuartileFreeWheel, Extreme Reach25% of ad played2–3
midpointFreeWheel, Extreme Reach50% of ad played2–3
thirdQuartileFreeWheel, Extreme Reach75% of ad played2–3
completeFreeWheel, Extreme Reach100% of ad played2–3
mute / unmuteFreeWheelMute/unmute during ad1 each
pause / resumeFreeWheelPause/resume during ad1 each
rewindFreeWheelUser rewinds during ad1
closeFreeWheelPlayer close during ad1
acceptInvitationFreeWheelUser clicks interactive ad overlay1
clickTrackingFreeWheel, DoubleClickAd click-through1–2
ID3 IN-BAND METADATA dai.google.com/.../id3-events.json — 35.9 KB
ParameterValueDescription
Total Tags22In-band ID3 metadata events for the observed ad break
Tags per Ad11start + progress×5 + firstQuartile + midpoint + thirdQuartile + complete
Progress Events5 per adFired at regular intervals within each quartile
Payload FormatJSONArray of timed events the player uses to fire tracking beacons
DeliveryPolled by clientPlayer fetches ID3 event manifest and fires beacons at specified times
PRIVACY PARAMETERS IN AD REQUESTS
ParameterValueStandardStatus
us_privacy1YNNCCPA (USP)✓ Populated — "1" notice given, "Y" yes opt-out, "NN" no sale/no sharing
gdpr0IAB TCF✓ Populated — not in EU jurisdiction
[GPPSTRING]Template placeholderIAB GPP✗ NOT populated — GPP integration incomplete
[GPPSECTIONID]Template placeholderIAB GPP✗ NOT populated
[IFA]Empty (web)Identifier for Advertising⚠ Expected — IMA SDK on web has no device ad ID (CTV/mobile only)
[IFATYPE]Empty (web)IFA Type⚠ Expected — no IFA on web browsers
AD TRACKING ENDPOINT STACK
TrackerEndpointPurposeBeacons per Break
FreeWheel7f077.v.fwmrm.netPrimary ad server — quartile events, completion, slot tracking~20+
Extreme Reachbeacons.extremereach.ioCreative tracking + OMID verification~10
Google DAIdai.google.com/view/p/service/linear/impression/Impression beacon1 per ad
Google DFPsecurepubads.g.doubleclick.netCompanion / display ad serving~2
Nielsensecure-dcr.imrworldwide.comAudience measurement (DCR) during ad playback~2
Stamps.com Horizonstamps.hrzn-nxt.comAdvertiser-specific conversion pixel (varies per creative)1
TV Scientifictvspix.comCTV/OTT ad attribution — live-only tracker1+
CMCD PARAMETERS (LIVE STREAMS)
ParamNameObserved Value(s)Description
blBuffer Level10,700 – 15,300 msCurrent buffer depth (higher than VOD — live safety margin)
brBitrate128 – 5,980 kbpsCurrent rendition bitrate (audio low, video high)
dDuration0 – 6,016 msSegment duration (0 for manifest, ~4–6s for segments)
mtpMeasured Throughput10,000 – 77,900 kbpsActual measured download speed (wider range than VOD)
otObject Typem, v, i, k, am=manifest, v=video, i=init, k=key (DRM), a=audio
sfStream Formath (HLS), d (DASH)Both formats observed on live — dual protocol
sidSession IDUUIDPlayer session — new UUID per channel switch
stStream Typel (live)Live stream indicator
tbTop Bitrate128 – 5,980 kbpsHighest available rendition
suStartuptruePresent on initial segment requests after channel switch
Live TV Summary: The Live TV page is architecturally the most complex — it loads both HLS.js and Shaka Player simultaneously to handle two different streaming protocols on the same page. CBS News uses HLS with server-side ad insertion (ads seamlessly stitched via SCTE-35 cue points), while entertainment channels like Survivor use DASH with full MPEG-CENC content protection (dual Widevine + PlayReady DRM). Ad breaks are signaled via SCTE-35 EXT-X-CUE-OUT with full DATERANGE metadata, triggering FreeWheel VAST 4.0 ad decisioning that returns creative IDs, advertiser names, renditions (up to 25,000 kbps), and OMID viewability verification. Each ad fires 11 ID3 tracking events across 7+ tracking endpoints (FreeWheel, Extreme Reach, DAI, DFP, Nielsen, advertiser pixels, TV Scientific). Privacy parameters show CCPA compliance (us_privacy=1YNN) but 4 GPP/IFA placeholders remain unpopulated. Extended analysis covers 13 total channels across 3 DAI events.
◆ Channel Strategy Analysis Market Differentiation
Paramount+'s FAST/linear channel lineup of 32+ channels is a key differentiator — Netflix has no linear offering, and Disney+ has limited live content. The channel mix spans 8 categories (News, Sports, Entertainment, Kids, Drama, Reality, Comedy, Franchise) and positions P+ competitively with Pluto TV (also Paramount-owned) and Tubi. The dual-protocol split — 9 HLS channels via Google DAI (news/sports/talk) and 23 DASH channels via AWS MediaPackage (entertainment/curated) — allows optimizing each pipeline independently. Dynamic CDN allocation across 23+ Akamai Airspace edge servers plus 14 CBS News local station feeds via SyncBak demonstrates mature infrastructure management at scale.
3,499
Total Requests
32
Channels Observed
54
DRM Requests
23
Airspace CDN Hosts
9
DAI Events (HLS)
14
CBS News Locals
3
Delivery Tiers
HLS — Google DAI (9 Channels)
# Channel Category DRM CDN Origin DAI Event ID
1 CBS News News None (clear) news20e7hhcb Sid4xiTQ...
2 CBS News Los Angeles News None (clear) losandd87138 K_2aA7OV...
3 CBS Sports HQ Sports None (clear) propee33f9c2 9Lq0ERvo...
4 Golazo Sports HLS AES-128 dai.google.com RGKIw3F7...
5 UEFA Champions League Sports HLS AES-128 dai.google.com e_J20hQl...
6 48 Hours Entertainment HLS AES-128 48hoa39aa69 JUr94WL2...
7 60 Minutes Entertainment None (clear) 60mi203g0hb nrb-l85C...
8 Entertainment Tonight Entertainment None (clear) enterbcef94b xrVrJYTm...
9 Inside Edition Entertainment None (clear) insidgfe884c Y2DMgfcl...
DASH — MediaPackage (23 Channels)
# Channel Category DRM Airspace CDN Host MediaPackage Output ID
1 Movies Entertainment Widevine (Irdeto) prope7000cg2 7327de9b...
2 All Day Drama Drama Widevine (Irdeto) propeeh880hf 6478afc2...
3 Crime & Justice Drama Widevine (Irdeto) propec8a8g5d ea5a1b95...
4 History Undiscovered Drama Widevine (Irdeto) prope828e699 51a87d4b...
5 Black Voices Drama Widevine (Irdeto) propehd52184 971649db...
6 SpongeBob Universe Kids Widevine (Irdeto) propehdbb66a 202a929c...
7 PAW Patrol Kids Widevine (Irdeto) prope326ef10 c66b469c...
8 Animation Favorites Kids Widevine (Irdeto) prope12dc513 9bf3c299...
9 Kids & Family Fun Kids Widevine (Irdeto) prope7da52h4 65122b02...
10 Preschool Corner Kids Widevine (Irdeto) propeh201d65 08d01a37...
11 RuPaul's Drag Race Reality Widevine (Irdeto) prope26af1ac 1cc5d232...
12 Survivor Reality Widevine (Irdeto) prope4h423g3 2dc3d623...
13 The Challenge Reality Widevine (Irdeto) prope4h4545h d79756ea...
14 Reality TV Competition Reality Widevine (Irdeto) prope1b2ebf3 eb303946...
15 Reality TV Shores Reality Widevine (Irdeto) prope6hd09cc 469ea5b2...
16 Adult Animation Comedy Widevine (Irdeto) prope97d0g68 f85f9f08...
17 80s Sitcoms Comedy Widevine (Irdeto) propeca301a3 d6c098d5...
18 90s Sitcoms Comedy Widevine (Irdeto) prope8hfb933 dfb5a1e6...
19 24/7 Laughs Comedy Widevine (Irdeto) prope7590e38 e782698a...
20 Nostalgic Hits Comedy Widevine (Irdeto) propef5ch9b2 79b99cd4...
21 TV Classics Comedy Widevine (Irdeto) propede8cf4h 10a73b1d...
22 Star Trek Franchise Widevine (Irdeto) prope4197c75 33c91e46...
23 CSI Franchise Widevine (Irdeto) prope664bgd7 0f983bdd...
Three-Tier Delivery Architecture
Attribute HLS — Google DAI DASH — AWS MediaPackage HLS — SyncBak Local
Channel TypesNews, Sports, Talk ShowsEntertainment, Kids, Drama, Reality, Comedy, FranchiseCBS Local Affiliates
Count9 channels23 channels14 stations
ProtocolHLS (MPEG-TS segments)DASH (fMP4 segments)HLS (master.m3u8)
Ad InsertionGoogle DAI SSAI (server-side stitching)FreeWheel / None observedLocal affiliate ads
DRMNone (clear) or AES-128 key rotationWidevine via IrdetoJWT auth token
License Serverdai.google.comcbsi.live.ott.irdeto.comcbsplaylistserver.aws.syncbak.com
Max Bitrate8,941 kbps (Golazo)~8,000 kbps60fps enabled
CDNAkamai Airspace + Google CDNAkamai Airspace (unique host per channel)SyncBak (AWS)
PlayerHLS.js v1.5.8Shaka v4.14.1Shaka v4.14.1
DAI Events9 unique event IDs
GeolocationDMA-based (lat/long)
CDN Host Map, DAI Events, CBS Locals & Technical Debt
CDN Host Map — 23 DASH Edge Servers
Airspace CDN Host Channel Category
prope7000cg2.airspace-cdn.cbsivideo.comMoviesEntertainment
propeeh880hf.airspace-cdn.cbsivideo.comAll Day DramaDrama
propec8a8g5d.airspace-cdn.cbsivideo.comCrime & JusticeDrama
prope828e699.airspace-cdn.cbsivideo.comHistory UndiscoveredDrama
propehd52184.airspace-cdn.cbsivideo.comBlack VoicesDrama
propehdbb66a.airspace-cdn.cbsivideo.comSpongeBob UniverseKids
prope326ef10.airspace-cdn.cbsivideo.comPAW PatrolKids
prope12dc513.airspace-cdn.cbsivideo.comAnimation FavoritesKids
prope7da52h4.airspace-cdn.cbsivideo.comKids & Family FunKids
propeh201d65.airspace-cdn.cbsivideo.comPreschool CornerKids
prope26af1ac.airspace-cdn.cbsivideo.comRuPaul's Drag RaceReality
prope4h423g3.airspace-cdn.cbsivideo.comSurvivorReality
prope4h4545h.airspace-cdn.cbsivideo.comThe ChallengeReality
prope1b2ebf3.airspace-cdn.cbsivideo.comReality TV CompetitionReality
prope6hd09cc.airspace-cdn.cbsivideo.comReality TV ShoresReality
prope97d0g68.airspace-cdn.cbsivideo.comAdult AnimationComedy
propeca301a3.airspace-cdn.cbsivideo.com80s SitcomsComedy
prope8hfb933.airspace-cdn.cbsivideo.com90s SitcomsComedy
prope7590e38.airspace-cdn.cbsivideo.com24/7 LaughsComedy
propef5ch9b2.airspace-cdn.cbsivideo.comNostalgic HitsComedy
propede8cf4h.airspace-cdn.cbsivideo.comTV ClassicsComedy
prope4197c75.airspace-cdn.cbsivideo.comStar TrekFranchise
prope664bgd7.airspace-cdn.cbsivideo.comCSIFranchise
Key insight: Unlike the previous session where CDN hosts were shared across channels, this extended session reveals a 1:1 mapping — each DASH channel gets its own dedicated Airspace CDN hostname. The hostname format is {hash}.airspace-cdn.cbsivideo.com backed by AWS MediaPackage with unique output UUIDs per channel.
HLS CDN Origins — Google DAI Channels
CDN Origin HostChannelType
news20e7hhcb.airspace-cdn.cbsivideo.comCBS NewsNews
losandd87138.airspace-cdn.cbsivideo.comCBS News Los AngelesNews
propee33f9c2.airspace-cdn.cbsivideo.comCBS Sports HQSports
48hoa39aa69.airspace-cdn.cbsivideo.com48 HoursEntertainment
60mi203g0hb.airspace-cdn.cbsivideo.com60 MinutesEntertainment
enterbcef94b.airspace-cdn.cbsivideo.comEntertainment TonightEntertainment
insidgfe884c.airspace-cdn.cbsivideo.comInside EditionEntertainment
Note: HLS channels route through dai.google.com for SSAI, but content segments originate from Airspace CDN hostnames. The hostname prefix encodes channel identity: news2 = CBS News, losand = LA, 48hoa = 48 Hours, 60mi = 60 Minutes, enter = ET, insid = Inside Edition.
DAI Event IDs — 9 National + 14 Local
DAI Event IDChannelDRM
Sid4xiTQTkCT1SLu6rjUSQCBS NewsNone
K_2aA7OVRTacJJli1oSi8wCBS News Los AngelesNone
9Lq0ERvoSR-z9AwvFS-xYACBS Sports HQNone
RGKIw3F7RVGzc5E9y8ElLQGolazoAES-128
e_J20hQlRxGS_kxonmgm3AUEFA Champions LeagueAES-128
JUr94WL2QAiVpGNHY5n5dA48 HoursAES-128
nrb-l85CR7SIr-rGXqz4zA60 MinutesNone
xrVrJYTmTfitfXBQfeZByQEntertainment TonightNone
Y2DMgfclT3S2nNxANeIawAInside EditionNone
CBS Local Stations — 14 DAI Feeds
Local StationDAI Event IDProvider
CBS News BaltimoreTMUt418sQMeu1QtneYJ9agGoogle DAI + SyncBak
CBS News Bay ArealaLJwH1nS2KQAUQTF8z1CgGoogle DAI + SyncBak
CBS News BostondHA193vxQ_WqZNVoC-W5MAGoogle DAI + SyncBak
CBS News Chicago_xQBtL7ZSEClkNebaXzn8wGoogle DAI + SyncBak
CBS News ColoradoE9CkyheTSKeGiOiICU_JBQGoogle DAI + SyncBak
CBS News DetroitxnyAMOsfSV2J1b-A3nROFQGoogle DAI + SyncBak
CBS News Los AngelesK_2aA7OVRTacJJli1oSi8wGoogle DAI + SyncBak (default)
CBS News Miami_yODrBHESGSzPe3dqW4gGgGoogle DAI + SyncBak
CBS News Minnesotac0XucO32RNKG8oeQ351a4QGoogle DAI + SyncBak
CBS News New YorkjeTDC610T-OSPdiWhcl0PgGoogle DAI + SyncBak
CBS News PhiladelphiaR2Kw0uvnQIW7fUmOseurzAGoogle DAI + SyncBak
CBS News Pittsburghmir-uZYjTu6-8JLMHBTKhQGoogle DAI + SyncBak
CBS News Sacramentoe7mp4YVGS7O_e7rqRNjKowGoogle DAI + SyncBak
CBS News TexasogzLhRCkRbG3lFHHJwqaNwGoogle DAI + SyncBak
Architecture note: Local stations are geo-targeted via DMA ID (e.g., DMA 803 = Los Angeles, KCBS). Stream authentication uses JWT tokens with baseChannelId: 29, mvpdId: pplusLCP, and 60FPS: true. CBS News LA and the default "locals" channel share the same DAI event ID, indicating the locals feed defaults to the user's nearest DMA.
Technical Debt Observations
TypeCountMessageImpact
Error 7 "Script error." — cross-origin ad SDK errors masked by CORS during channel switches Benign — playback unaffected
Warning 5 manifest.hls.useSafariBehaviorForLive deprecated in Shaka v4.14.1, removed in v5.0 Action required before Shaka v5.0 upgrade
Live Channels Summary: 32 channels across 8 categories organized into a three-tier delivery architecture: 9 HLS channels (news/sports/talk) via Google DAI with SSAI ad stitching (3 using AES-128 key rotation, 6 clear), 23 DASH channels (entertainment/kids/drama/reality/comedy/franchise) via AWS MediaPackage with Widevine DRM licensed through Irdeto, and 14 CBS News local station feeds via SyncBak with JWT authentication and DMA-based geolocation. Each DASH channel gets a dedicated Airspace CDN hostname (1:1 mapping). Session captured 3,499 requests including 54 DRM exchanges and 9 unique DAI event IDs. All channels share Shaka Player v4.14.1 with CMCD telemetry reporting.
1,348
Total Requests
30+
Tracking Pixels
6
Personalization Phases
108
Video Preview Clips
873
Image Requests (65%)
27s
Session Captured
Home Page: Personalization Engine + Tracking Ecosystem

A single Paramount+ home page load fires 30+ tracking pixels across analytics, ad attribution, social retargeting, and privacy consent — while simultaneously running a 6-phase personalization pipeline via Adobe AEP to determine what each user sees. The page generates 1,348 total requests in 27 seconds, with 873 image requests (65%) served through a CDN-edge resizing pipeline and 108 HLS video preview clips from Fastly. This is a textbook example of how modern streaming platforms balance content discovery (personalized carousels, video previews) with measurement infrastructure (cross-platform attribution, audience verification, QoE monitoring). Running Optimizely alongside Adobe Target indicates a dual-vendor experimentation strategy.

30+ Tracking Pixels 6-Phase Personalization Cross-Platform Retargeting CDN-Edge Image Pipeline HLS Video Previews OneTrust Consent
Personalization Pipeline — Adobe AEP Web SDK
Request Signals Scopes POST /interact Decisions Report ← propositionDisplay events
🖥
Browser
Page Load
AEP Web SDK
alloy("sendEvent")
👤
User Context
8 Signals
Tier • Tenure • Profile • Device
🎯
Scope & Surface
decisionScopes + surfaces
web://paramountplus.com/home
🌐
Adobe Edge Network
OR2 (Oregon)
ECID → Segments → Rules → Allocate
📝 DOM Patch
📋 JSON Feed
💬 In-App Msg
🔀 Redirect
🧪 A/B Test
💻
Client Render
Apply Offers
DOM + Feed + IAM + Redirect
📊
Measurement
propositionDisplay events
Request
Context
Targeting
Edge Processing
Decisions
Render
Measurement
Click any node for detailed phase breakdown
📡 Tracking & Analytics — 30+ Pixels per Page Load
Every home page load triggers this massive tracking ecosystem. Each category serves a distinct business function — from content analytics to ad attribution to privacy compliance.
Adobe AEP — Primary Analytics
25 requests per page load. Core behavioral analytics: page views, content impressions, carousel interactions, video preview starts. First-party domain (saa.paramountplus.com) masks Adobe collection server.
Dual SDK: AppMeasurement JS-2.23.0 + AEP Web SDK (Alloy)
Sparrow — Internal Telemetry
Paramount's proprietary first-party telemetry system. Captures granular UI events, feature flag evaluations, and client performance data independently of Adobe.
Endpoint: sparrow.paramountplus.com
New Relic — Performance Monitoring
20 requests per page load. Real User Monitoring (RUM): JS errors, page load timing, AJAX performance, Web Vitals (LCP, FID, CLS).
Endpoint: bam.nr-data.net
Conviva — Video QoE
Video Quality of Experience: buffering ratio, bitrate shifts, startup time, playback failures. Industry standard for streaming QoE benchmarking.
Endpoint: *.cws.conviva.com
Nielsen — Audience Measurement
Currency-grade audience measurement for ad sales. Enables Nielsen ONE cross-platform ratings — critical for advertising revenue and content valuation.
Endpoint: secure-dcr.imrworldwide.com
Doppler — Internal Beacon
Internal telemetry beacon and configuration service. Collects custom Paramount-specific metrics outside the Adobe ecosystem.
Endpoint: doppler-beacon.cbsivideo.com
Cross-Platform Retargeting
Pinterest (26 req), DoubleClick (13 req), Facebook Meta Pixel, Twitter/X Conversion API, Reddit Conversion Pixel, Bing Ads UET Tag — social & search retargeting via Tealium TMS.
Pinterest highest volume — suggests active paid acquisition
Attribution & Ad Verification
Kochava (mobile/CTV install attribution), Flashtalking (ad serving & viewability), ScoreCard Research (cross-publisher audience verification).
DoubleClick: 13 req for impression tracking & frequency capping
Privacy & Consent
OneTrust CMP (3 consent-api + 3 geolocation requests) gates all pixel firing. Paramount Privacy CDN serves privacy policy assets. GDPR/CCPA compliance at consent layer.
Consent resolved before any tracking pixels fire
⚠ Dual Analytics Pipeline Detected: Both legacy Adobe AppMeasurement (JS-2.23.0) and modern AEP Web SDK (Alloy) are firing simultaneously. This indicates an active migration — AppMeasurement will likely be deprecated once AEP coverage is validated.
Carousel Layout, Content APIs & Image/Video Delivery Pipeline
Content APIs
  • GET /movies/xhr/moviepage/extras/{contentId}/offset/0/limit/20/
  • GET /movies/xhr/moviepage/ymal/{contentId}/ (You May Also Like)
  • GET /in-app-messaging/?pageType=movies×tamp={ts}&availableForProfileTypesOnMovies=ADULT
Carousel API Structure
Content Delivery
🖼
Image Delivery — 873 Requests
wwwimage-us.pplusstatic.com
  • CDN Stack: OpenResty → Varnish (Chicago shield) → Varnish (Burbank edge)
  • Cache TTL: 30 days (max-age=2,592,000)
  • Format: WebP conversion at CDN edge (?format=webp)
  • Quality: q80 (80% JPEG quality equivalent)
  • CORS: access-control-allow-origin: *
IMAGE SIZE TIERS
w3200Hero marquee banners168–663 KB
w1920Responsive hero fallback~168 KB
w600Carousel thumbnails12–42 KB
w419Show logo overlays4–12 KB
w300Smaller carousel items10–24 KB
w200Profile avatars~6.7 KB
Video Preview System (HLS)
splice-media.paramountplus.com
  • Protocol: HLS with MPEG-TS segments
  • Packager: Shaka Packager v3.2.2
  • CDN: Fastly — Burbank edge, Chicago shield
  • Cache TTL: 15 minutes (max-age=900)
  • Cache Hits: 764,031+ (heavily cached)
VARIANT STREAMS
Video (low)514 kbps.ts segments
Video (high)3,133 kbps.ts segments
Audio128 kbps AAC.aac segments
14 segments/variant · ~84s total preview · ~6s segment duration
Image Resizing & Transformation Pipeline Detail
🖼 Image Pipeline
CDN-Edge
Resize Method
6 Tiers
Width Breakpoints
WebP
Output Format
30 days
Cache TTL
TRANSFORMATION FLOW
Client requests
w600-q80/...jpg?format=webp
Varnish Edge
cache-bur (Burbank)
Varnish Shield
cache-chi (Chicago)
OpenResty Origin
Resize + WebP convert
Resized output is cached at both Varnish tiers for 30 days. Subsequent requests for same width+quality hit cache directly.
URL PATTERN
https://wwwimage-us.pplusstatic.com/thumbnails/photos/w{WIDTH}-q80/{type}/{id}/{path}.jpg?format=webp
ParameterValueDescriptionWhere Applied
w{WIDTH}200, 300, 419, 600, 1920, 3200Responsive width resize — origin scales to exact pixel widthOpenResty origin
q8080JPEG quality factor (80% — balances visual fidelity vs file size)OpenResty origin
format=webpwebpOn-the-fly format conversion from JPEG source to WebP outputOpenResty origin
{type}marquee, show_asset, movie_asset, pplcrn, profileContent type prefix — routes to correct source image bucketOrigin path routing
TierWidthUse CaseTypical SizeRatio vs Hero
Hero XLw3200Full-width marquee banners168–663 KB1x (baseline)
Hero Responsivew1920Responsive fallback for smaller viewports~168 KB~0.4x
Carouselw600Show/movie thumbnail tiles12–42 KB~0.05x
Logo Overlayw419Show logo overlays on marquee4–12 KB~0.02x
Small Tilew300Smaller carousel items, content rows10–24 KB~0.03x
Avatarw200Profile avatars, micro icons~6.7 KB~0.01x
Carousel Architecture
The home page is a series of content carousels, each populated by a combination of editorial curation and algorithmic personalization. Here is how the observed content rows map to personalization strategies.
Hero Marquee
Full-width banners (School Spirits, Matlock) — editorially curated but A/B tested via Adobe Target DOM actions. Creative swap, CTA text, and banner order are all variant-eligible.
Images: w3200 hero (168–663 KB each)
Brand Channels Row
Showtime, Nickelodeon, MTV, BET, Comedy Central logos — segment-gated. Showtime shows only for users with Showtime add-on; Nickelodeon promoted for KIDS profiles.
Feed Item schema controls visibility per profile
Algorithmic Rows
"Because You Watched", "Trending Now", "You May Also Like" — populated by content affinity scores from the recommendation engine. Row order itself is personalized via CSS order property.
API: /movies/xhr/moviepage/ymal/{contentId}/
Curated Collections
"Tom Cruise Movies", "Transformers", "Gladiator", "Jack Reacher" — editorial collections that are time-gated around theatrical releases and cultural events.
Feed Items with metadata badges ("New Episode")
Sports & Live Content
UFC, NFL banners — geo-targeted and time-sensitive. Row visibility controlled by market (US-only for NFL), schedule proximity, and subscription tier.
AJO in-app messaging for live event alerts
Kids Programming
PAW Patrol, Transformers — profile-type gated. KIDS profiles see this promoted to top; ADULT profiles see it lower. Entire row hidden for non-family accounts.
profileCategory: KIDS triggers row promotion
📡 Media Session Tracking
Navigating between the video player and home page triggers session boundary events that close the measurement loop:
Video Player sessionEnd (playhead: 6s) stateEnd (streamFormatSDR) Home Page Load
Endpoint: POST /va/api/v1/sessions/{session_id}/events
These events feed into Conviva QoE dashboards and Adobe Analytics for content engagement scoring. The playhead position at session end (6s in this capture) indicates the user watched a preview clip, not a full episode — this data is used to distinguish browse-only sessions from viewing sessions in retention models.
Home Page Summary: The Paramount+ homepage is simultaneously a content discovery surface and a measurement data collection platform. In a single 27-second session, the page generates 1,348 requests: 873 images through a CDN-edge resizing pipeline (OpenResty + dual Varnish caches, 30-day TTL), 108 HLS video preview clips from Fastly (764,000+ cache hits), and 30+ tracking pixels spanning Adobe AEP (25 req), New Relic (20 req), Pinterest retargeting (26 req), DoubleClick (13 req), plus Sparrow, Conviva, Nielsen, Facebook, Twitter/X, Reddit, Bing, Kochava, and ScoreCard Research. Personalization is powered by a 6-phase Adobe AEP pipeline delivering 5 decision schema types that control carousel ordering, hero banners, in-app messaging, redirects, and A/B test variants. An Optimizely experiment concurrently tests video preview auto-play timing. Privacy consent is managed by OneTrust CMP with geolocation-based GDPR/CCPA compliance.
Service Ecosystem Analysis vs. Industry

Paramount+ relies on 30+ external services — typical for a major streamer (Netflix operates more in-house, Disney+ uses a similar vendor-heavy approach). The multi-CDN strategy across 4 providers (Fastly, Google Video Infra, Akamai, CBS Airspace) is industry best practice for resilience and geographic optimization. Irdeto DRM consolidation across all content paths (Widevine, PlayReady, HLS AES-128) shows good architectural discipline — many competitors split DRM across multiple vendors. The dual tag management (Tealium + GTM) and dual analytics (Adobe AEP + Google Analytics) suggest an active migration or vendor evaluation period.

30+ Services 4-Provider Multi-CDN Unified DRM (Irdeto) Dual Tag Management
Ad Tech & Monetization 9 services
ServiceDomain(s)RoleVODLiveHome
Google DAIdai.google.comSSAI — VOD + Live HLS
FreeWheel7f077.v.fwmrm.netAd server — VAST 4.0 (Live)
Google IMA SDKimasdk.googleapis.comClient-side ad SDK (VOD)
DoubleClickad.doubleclick.net, googleads.g.doubleclick.netAttribution & conversion38721
Google Adsadservice.google.comRemarketing & retargeting1806
Extreme Reachbeacons.extremereach.io, cdn1.extremereach.ioCreative delivery & OMID
Flashtalkingservedby.flashtalking.comCreative serving & attribution602
TV Scientifictvspix.comCTV attribution (live-only)30
Samba TVads.samba.tvTV attribution31
Analytics & Measurement 7 services
ServiceDomain(s)RoleVODLiveHome
Adobe AEPsaa.paramountplus.comAnalytics & personalization4425
Google Analyticswww.google.comWeb analytics (secondary)2711
Nielsensecure-dcr.imrworldwide.comTV measurement (DCR)881
Scorecard Researchsb.scorecardresearch.comAudience measurement146
Yahoo Analyticssp.analytics.yahoo.comSearch analytics pixel301
Sparrowsparrow.paramountplus.comInternal video telemetry (1P)3
Dopplerdoppler-beacon.cbsivideo.comVideo analytics (legacy)43
Video QoE 3 services
ServiceDomain(s)RoleVODLiveHome
Conviva*.cws.conviva.comVideo QoE (buffering, bitrate, errors)241991
New Relicbam.nr-data.netAPM2020
Scrapcranesscrapcranes.comLegacy monitoring31
Retargeting 6 services
ServiceDomain(s)RoleVODLiveHome
Pinterestct.pinterest.com, s.pinimg.comRetargeting (via Tealium)13728
Bing Adsbat.bing.comSearch retargeting (UET tag)8216
Facebookwww.facebook.com, connect.facebook.netRetargeting pixel75
Amazon Adss.amazon-adsystem.comE-commerce retargeting402
Twitter/Xanalytics.twitter.comSocial retargeting22
Redditalb.reddit.comSocial retargeting22
Attribution 3 services
ServiceDomain(s)RoleVODLiveHome
Branch.ioapi2.branch.io, cdn.branch.ioDeep linking & attribution (SDK v2.86.5)313
Kochavaassets.kochava.comMobile attribution (SDK v2.2)301
Impact Radiusd.impactradius-event.comAffiliate tracking11
Infra & Privacy 4 services
ServiceDomain(s)RoleVODLiveHome
OneTrustcdn.cookielaw.org, consent-api.onetrust.comConsent management (CMP)1617
Tealiumtags.tiqcdn.comTMS — orchestrates 3P pixels77
Google Tag Managerwww.googletagmanager.comTag management (secondary)33
Brazesdk.iad-03.braze.comCRM & messaging (SDK v4.10.2)653
Ad Parameters — VOD vs Live
📢 Ad Parameters — VOD vs Live
AD INSERTION MODEL COMPARISON
VOD — Client-Side (CSAI)
Ad Server: Google Ad Manager (GAM)
SDK: Google IMA SDK (client-side)
Stitching: Google DAI — server stitches ads into DASH stream
Config Source: FreeWheel /freewheel/fms.json
Segment Delivery: dai.google.com/segments/redirect/c/
Seamless — player can't distinguish ads from content
Live HLS — Server-Side (SSAI)
Ad Server: FreeWheel (VAST 4.0)
Stitching: Google DAI — ads spliced into HLS stream
Signaling: SCTE-35 markers in HLS playlist
Ad Pods: dai.google.com/linear/pods/v1/p/
Creatives: Extreme Reach + CBS CDN
Seamless mid-roll breaks stitched into stream
Live DASH — Minimal/None
Ad Server: FreeWheel (if present)
Observed: No ad breaks captured in DASH sessions
Delivery: Direct Akamai CDN (no DAI proxy)
Channels: Curated linear (Movies, SpongeBob, etc.)
Possible: Ad-free tier or ads not triggered
Possible SCTE-35 EventStream (not observed)
1. FREEWHEEL CONFIG Fetched pre-stream: GET /freewheel/fms.json
ParameterValue (Observed)DescriptionVODLive HLSLive DASH
dai0DAI mode flag — 0 = standard, 1 = DAI-only
coppa0COPPA compliance — 0 = not child-directed
userid11ccb273-ef8a-4023-a472-20c0ddb6a328User UUID — ad targeting ID
gdpr0GDPR flag — 0 = not in EU jurisdiction
gdpr_consentnullTCF consent string — null when GDPR=0
2. DAI SESSION Created on stream init
ParameterVOD ValueLive HLS ValueDescription
Stream ID3c76d9c3-93c7-41e2-9096-30d847cdd729b16dc19f-2b50-4a20-8e82-59963ee772b8:CBF2Stream session ID
Network ID82648264GAM network ID
Content ID2497752N/A (event-based)Content asset ID (GAM)
Event IDN/ASid4xiTQTkCT1SLu6rjUSQLive DAI event — maps to a live channel (CBS News, Golazo, etc.)
Service TypevodlinearDAI service path
DAI Session IDca3bd550-0f7e-40b0-b832-84b9108c13db(embedded in stream)Client session ID
3. IMPRESSION & TRACKING URLs
VOD IMPRESSION BEACON
GET dai.google.com/view/p/service/vod/impression/stream/{stream_id}/network/8264/content/2497752/vid/{video_id}/media/{media_id}/stream_ad_id/{ad_id}
stream_id network=8264 content=2497752 vid (video creative ID) media_id stream_ad_id
Response: HTTP 204 (fire-and-forget) · Each ad fires this on playback start
LIVE HLS IMPRESSION BEACON
GET dai.google.com/view/p/service/linear/impression/stream/{stream_id}/...
Similar structure but uses service/linear path · Stream-level impression tied to DAI event
4. VAST 4.0 RESPONSE (LIVE HLS) From FreeWheel ad server
ParameterValue (Observed)Extractable Data
Ad SystemFreeWheelAd server identity
VAST Version4.0VAST specification version
Ad Format<InLine>Inline (direct) vs Wrapper (redirect)
Creative ID68179315, 305071423Creative ID
AdvertiserStamps.com, CBS News (Star Trek promo)Advertiser name
Duration30.03s per slotSlot duration
Renditions5–7 per creative (375–25,000 kbps)Quality tiers
VerificationExtreme Reach OMIDViewability verification vendor + SDK
Click-ThroughURL per adDestination URL on ad click
Tracking Eventsstart, firstQuartile, midpoint, thirdQuartile, completeFull quartile tracking + mute/pause/resume/close
5. SCTE-35 SIGNALING (LIVE HLS)
ParameterValue (Observed)Description
Break ID0000408279Ad break ID
Planned Duration60.026633sTotal break duration (from EXT-X-CUE-OUT)
Break TypeMid-rollBreak position — mid-roll (during content)
Signal Typetime_signalSCTE-35 splice type — Provider Placement Opportunity Start
Number of Ads2Slots filled in this break
SCTE35-OUT0xFC304E...Raw SCTE-35 binary (hex-encoded)
Start Date2026-02-26T04:58:17.226433ZUTC timestamp of break start (from EXT-X-DATERANGE)
EXT-X-DATERANGE ID33075399-1772081897Unique break identifier in the HLS playlist
6. AD POD SEGMENT URLs
VOD — DAI REDIRECT SEGMENTS
dai.google.com/segments/redirect/c/{segment_number}.mp4 ?orig=https://{edge_server}.googlevideo.com/videoplayback &id={video_id}&itag={itag}&source=dclk_video_ads&requiressl=yes &mime={video/mp4|audio/mp4}&clen={content_length}&expire={timestamp}&signature={sig}
segment_number edge_server (Google CDN) video_id (ad creative) itag (quality tier) source=dclk_video_ads expire + signature (auth)
LIVE HLS — DAI AD POD SEGMENTS
dai.google.com/linear/pods/v1/p/{eventId}/{streamId}/{breakId}/0/0/{variant}/{segment}.ts
eventId (DAI event) streamId (session) breakId (SCTE-35 ref) variant (quality) segment (index)
7. PRIVACY & CONSENT
ParameterValue (Observed)StandardStatus
us_privacy1YNNCCPA/USP string✓ Populated
gdpr0IAB TCF GDPR flag✓ Populated
gdpr_consentnullIAB TCF consent stringN/A (GDPR=0)
[GPPSTRING]Placeholder (not populated)IAB GPP consent string✗ Empty
[GPPSECTIONID]Placeholder (not populated)IAB GPP section ID✗ Empty
[IFA]Empty (web)Identifier for Advertising⚠ Expected — IMA SDK on web has no device ad ID (CTV/mobile only)
[IFATYPE]Empty (web)IFA type (DPID, SSID, etc.)⚠ Expected — no IFA on web browsers
8. ID3 EVENT TAGS (LIVE HLS) From dai.google.com/.../id3-events.json — 35.9 KB payload
ParameterValueDescription
Total Tags22In-band metadata events for ad tracking
Tags per Ad11start, progress×5, firstQuartile, midpoint, thirdQuartile, complete
Event Typesstart, progress, firstQuartile, midpoint, thirdQuartile, completeVAST-standard quartile tracking events embedded as ID3 tags
DeliveryJSON payload via DAI APIClient polls for ID3 events to fire tracking beacons at correct times
9. TRACKING ENDPOINTS
TrackerEndpointPurposeVODLive
Google DAIdai.google.com/view/p/service/.../impression/Impression beacon
FreeWheel7f077.v.fwmrm.netPrimary ad server — quartile events, completion
Extreme Reachbeacons.extremereach.ioCreative tracking + OMID
Google DFPsecurepubads.g.doubleclick.netCompanion/display ads
DoubleClickad.doubleclick.netAttribution & conversion
Nielsensecure-dcr.imrworldwide.comAudience measurement
Advertiser Pixelstamps.hrzn-nxt.com (example)Conversion pixel (per creative)
TV Scientifictvspix.comCTV attribution (live-only)
10. CREATIVE DELIVERY
SourceHostContentRenditions
Google Video CDNr{n}---sn-*.googlevideo.comVOD ad segments (stitched via DAI redirect)Matched to content quality
Extreme Reach CDNcdn1.extremereach.ioThird-party ad creatives (e.g., Stamps.com)5 renditions (375–25,000 kbps)
CBS Internal CDNp-ause1-adops-output.cbsivideo.comHouse ads / promos (e.g., Star Trek)7 renditions (482–22,876 kbps)
Google DAI Podsdai.google.com/linear/pods/v1/p/Live HLS ad pod segments (.ts)Matched to stream variant
11. ADS OBSERVED
PipelineAdVideo/Creative IDDurationCDN / Edge ServerAdvertiser
VODAd 12222756b23a632d9~30sr4---sn-qja5mc-5j.googlevideo.com
VODAd 2b0c790e1d45c7b2d~30sr3---sn-a5msen7s.googlevideo.com
VODAd 381f568a32f216810~30sr5---sn-a5meknzr.googlevideo.com
Live HLSSlot 16817931530.03scdn1.extremereach.ioStamps.com
Live HLSSlot 230507142330.03sp-ause1-adops-output.cbsivideo.comCBS (Star Trek promo)
⚠ Privacy Template Gaps: [GPPSTRING] and [GPPSECTIONID] FreeWheel macros are unpopulated (GPP is sent via DoubleClick but not wired to VAST templates). [IFA] and [IFATYPE] are expected empty on web — the IMA SDK has no device ad ID in browsers; IFA is populated only on CTV (Roku RIDA, Fire TV Ad ID) and mobile (IDFA, GAID).
CDN Architecture — Multi-CDN
CDN Provider Hostname(s) Content Type Protocol Cache Strategy
Fastly (Varnish)wwwimage-us.pplusstatic.comImagesHTTPS30 days
Fastly (Varnish)splice-media.paramountplus.comHLS previewsHTTPS15 min
Fastly (Varnish)player-services.paramountplus.comPlayer JS/CSSHTTPS5 min + stale-while-revalidate 5 min + stale-if-error 24 h
Google Video Infrar3/r4/r5---sn-*.googlevideo.comVOD segmentsHTTP/3 QUICPrivate, signed URLs
Akamaiprope4h423g3.airspace.cdn.cbsivideo.comSurvivor DASHHTTPSno-cache
Akamaipropede8cf4h.airspace.cdn.cbsivideo.comLinear DASHHTTPSno-cache
Akamaipropefe9ga3a.airspace.cdn.cbsivideo.comLinear DASHHTTPSno-cache
Akamaiprope34d46hh.airspace.cdn.cbsivideo.comGolazo (HLS)HTTPSno-cache
Akamaipropee33f9c2.airspace.cdn.cbsivideo.comCBS Sports HQHTTPSno-cache
Akamaiprope7000cg2.airspace.cdn.cbsivideo.comMovies, CBS Sports HQHTTPSno-cache
Akamaipropeeh880hf.airspace.cdn.cbsivideo.comMovies, All Day DramaHTTPSno-cache
Akamaipropehdbb66a.airspace.cdn.cbsivideo.comSpongeBob UniverseHTTPSno-cache
Akamaiprope12dc513.airspace.cdn.cbsivideo.comSpongeBob, Animation FavHTTPSno-cache
Akamaiprope26af1ac.airspace.cdn.cbsivideo.comRuPaul's Drag RaceHTTPSno-cache
Akamaiprope828e699.airspace.cdn.cbsivideo.comHistory UndiscoveredHTTPSno-cache
Akamaipropeca301a3.airspace.cdn.cbsivideo.comHistory, 80s SitcomsHTTPSno-cache
Akamaiprope97d0g68.airspace.cdn.cbsivideo.com80s Sitcoms, Adult AnimHTTPSno-cache
CBS Airspace (Fastly)news20e7hhcb.airspace-cdn.cbsivideo.comCBS News HLSHTTPSno-cache, no-store
Google DAIdai.google.comAd pods + proxyHTTPSno-store
Extreme Reachcdn1.extremereach.io3rd party ad creativesHTTPSStandard
CBS Internalp-ause1-adops-output.cbsivideo.comHouse ads/promosHTTPSStandard
DRM & Player Components
🔒 DRM Detail Table
Parameter VOD Live HLS Live DASH Golazo (HLS AES-128)
DRM SystemWidevineWidevineWidevine + PlayReadyHLS AES-128
License ServerIrdetoIrdetoIrdetoIrdeto
Endpointcbsi.live.ott.irdeto.comcbsi.live.ott.irdeto.comcbsi.live.ott.irdeto.comcbsi.live.ott.irdeto.com
License Path/widevine/getlicense/widevine/getlicense/widevine/getlicense/licenseServer/hls/v1/cbsi/key
CrmId/AccountIdcbsi/cbsicbsi/cbsicbsi/cbsicbsi/cbsi
Protection MethodSigned URLs + expiryDAI session tokensMPEG-CENC (dual PSSH)AES-128 key fetch
Content-Typeapplication/x-protobufapplication/x-protobufapplication/x-protobufapplication/octet-stream
Widevine Scheme URIedef8ba9-...edef8ba9-...
PlayReady Scheme URI9a04f079-...
CDM Version19.0.619.0.6
License Challenge4,296 bytes4,296 bytesN/A (key fetch)
License Response672 bytes672 + 720 bytesRaw AES key bytes
Server Namealcatraz_test_drm_serveralcatraz_test_drm_server
Player Components Detail
Component File Size (gzip) Version Used In
Smart TV SDK (Core)smart.tag.js418 KBv1.39.4Live TV
Smart TV SDK (Skin)smart.tag.skin.js194 KBv1.39.4Live TV
Smart TV CSSsmart.tag.skin.css252 KBv1.39.4Live TV (433 cache hits)
Smart TV Plugin (Sidebar)smart.tag.skin.plugin.sidebar.js53 KBv1.39.4Live TV
Smart TV Plugin (Multi)smart.tag.skin.plugin.multi.stream.js62 KBv1.39.4Live TV
Smart TV SVG Pluginsmart.tag.skin.plugin.sidebar.svg.js525 KBv1.39.4Live TV
HLS.jshls.js124 KBv1.5.8Live TV (News)
Shaka Playershaka-player230 KBv4.14.1Live TV (Linear) + VOD
Avia Loaderavia.js83 KBv2.54.0Live TV
Google IMA SDKimasdk.googleapis.comVOD
Movie Player (Top Edge)movieVideoTopEdge-*.min.jsVOD
Movie Player (Bottom)moviesBottom-*.min.jsVOD
Shared Services Summary: Across all three pipelines, Paramount+ relies on 30+ shared services: Irdeto for all DRM (Widevine, PlayReady, and HLS AES-128), OneTrust for consent, Conviva for video QoE, Adobe AEP for analytics, Tealium for tag management, Recurly for billing, Braze for messaging, Sparrow for internal telemetry, and TV Scientific for CTV ad attribution (live-only). The CDN strategy is multi-vendor: Fastly for images/previews/player assets, Google Video Infra for VOD segments, Akamai (14 edge hosts) for live linear/event channels, CBS Airspace for news. Smart Tag v1.39.4 (1.3+ MB) orchestrates live playback with Shaka Player v4.14.1 and HLS.js v1.5.8 running simultaneously.
Protocol & Header Analysis

Key protocol insights: VOD segments are served over HTTP/3 (QUIC) via Google Video Infra — cutting-edge transport that reduces latency vs. Netflix's HTTP/2 approach. Live channels use aggressive no-cache, no-store directives (correct for real-time content), while images leverage 30-day cache TTL with two-tier Varnish caching (best practice). Player assets use stale-while-revalidate + stale-if-error patterns for resilience. DRM license requests use bearer token auth with binary protobuf payloads through Irdeto.

HTTP/3 QUIC (VOD) Aggressive Live Caching 30-Day Image TTL Bearer Token DRM
Header Reference Tables
📥 VOD Segment Request Headers
Header Value
User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/145.0.0.0
Originhttps://www.paramountplus.com
Refererhttps://www.paramountplus.com/
Accept-Encodinggzip, deflate, br, zstd
Sec-Fetch-Sitecross-site
Sec-Fetch-Modecors
Sec-Fetch-Destempty
📥 VOD Segment Response Headers
Header Value
Content-Typevideo/mp4 or audio/mp4
Cache-Controlprivate, max-age=86400
Client-Protocolquic (HTTP/3)
X-CDNFastly (page), Google Video Infra (segments)
📥 HLS Segment Headers (CBS News)
Request Headers:
Similar to VOD but Sec-Fetch-Site varies based on cross-origin context
Response Headers:
Header Value
Cache-Controlno-cache, no-store, max-age=0, must-revalidate (manifest)
Content-Typevideo/mp2t (segments)
📥 DASH Segment Headers (Linear)
Header Value
Cache-Controlmax-age=0, no-cache
X-CDNAkamai
📥 DRM License Headers
Request Headers:
Header Value
MethodPOST
Authorization[bearer token]
Content-Typeapplication/octet-stream (binary protobuf)
Response Headers:
Header Value
Content-Typeapplication/octet-stream
Access-Control-Allow-Credentialstrue
Access-Control-Expose-HeadersX-Irdeto-StreamId
📥 Fastly CDN Headers (Images)
Header Value
x-real-serverus_www_web_prod_vip1
x-cacheHIT, HIT (shield + edge)
x-cache-hits764031, 6
Cache-Controlmax-age=2592000
access-control-allow-origin*
📥 Fastly CDN Headers (Player Assets)
Header Value
Cache-Controlmax-age=300, stale-while-revalidate=300, stale-if-error=86400
x-cacheHIT (multi-tier)
💾 User Profile API Endpoints
  • GET /user-profile/xhr/user/?fetch=false
  • GET /user-profile/xhr/watchlist-ids/?nocache={timestamp}
  • GET /user-profile/xhr/content-preference-ids/?nocache={timestamp}
  • GET /user-profile/xhr/available-avatars/
💾 FreeWheel & Content APIs
  • GET /freewheel/fms.json?dai=0&coppa=0&userid={uuid}&gdpr_consent=null&gdpr=0
  • GET /movies/xhr/moviepage/extras/{contentId}/offset/0/limit/20/
  • GET /movies/xhr/moviepage/ymal/{contentId}/
  • GET /in-app-messaging/?pageType=movies×tamp={ts}&availableForProfileTypesOnMovies=ADULT
💾 VOD Segment URL Parameters
Parameter Description Example Value
idVideo identifierdQw4w9WgXcQ
itagFormat tag340
sourceSource origindclk_video_ads
requiresslEnforce HTTPSyes
mimeMIME typevideo/mp4 or audio/mp4
xtagsCodec detailsvc:avc, vccf:high, vfr:23.976, vsz:1024x576, vtbr:2600
clenContent length in bytes8472916
expireToken expiration timestamp1739289600
signatureRequest authentication signature[base64 encoded]
💾 Live TV DASH MPD Parameters
  • MPD Type: dynamic (live)
  • Profile: urn:mpeg:dash:profile:isoff-live:2011
  • Min Update Period: 15 seconds
  • Min Buffer Time: 10 seconds
  • Suggested Presentation Delay: 20 seconds
  • Time-Shift Buffer Depth: 55.5 seconds
  • Availability Start: 2025-02-11T22:36:40Z
💾 Google DAI Parameters
VOD:
Stream ID: 3c76d9c3-93c7-41e2-9096-30d847cdd729
Network: 8264
Content: 2497752
Live — 3 DAI Events:
CBS News: Sid4xiTQTkCT1SLu6rjUSQ
CBS Sports HQ: RGKIw3F7RVGzc5E9y8ElLQ
Golazo: 9Lq0ERvoSR-z9AwvFS-xYA
Network ID: 8264
Endpoint: dai.google.com/linear/hls/pa/event/
💾 Privacy Parameters
Parameter Value / Status Description
us_privacy1YNNCCPA: Yes notice, No opt-out, No restriction
GDPR0Not in EU (US user)
GPP[GPPSTRING]Template placeholder — NOT POPULATED
GPPSECTIONID[GPPSECTIONID]Template placeholder — NOT POPULATED
IFA[IFA]IFA — empty on web (expected)
IFATYPE[IFATYPE]IFA type — empty on web (CTV only)
API Headers Summary: Paramount+ uses HTTP/3 QUIC for VOD segment delivery from Google Video Infra, with CORS enabled. Live TV manifests use aggressive no-cache headers while segments use shorter TTLs. DRM license requests use binary protobuf in POST bodies with custom Irdeto headers. Fastly-delivered images maintain extremely high cache hit ratios (764,031+) with 30-day TTLs. Google DAI parameters are present for both VOD and live, with network ID 8264. Privacy parameters are partially incomplete (GPP, IFA placeholders not populated), indicating an incomplete Global Privacy Platform implementation.
📺 CTV Platform Architecture Matrix

How Paramount+ adapts its streaming stack per CTV platform — each with distinct rendering engines, DRM requirements, and certification processes.

Platform Rendering Engine Video Player DRM Streaming Protocol Memory Limit Certification Cycle
Roku BrightScript / SceneGraph roVideoPlayer (native) PlayReady HLS (primary), DASH (fallback) ~512 MB (varies by model) 2-4 weeks
Amazon Fire TV Android (forked AOSP) ExoPlayer / Shaka Widevine L1 DASH (primary), HLS 1-2 GB 1-2 weeks
Apple TV tvOS (UIKit + SwiftUI) AVPlayer (native) FairPlay HLS (required) ~3 GB 5-10 days (App Store review)
Samsung Tizen Tizen Web Engine (Chromium-based) AVPlay / Shaka Player Widevine L1 + PlayReady DASH + HLS ~1 GB (2018+ models) 3-5 weeks
LG webOS webOS Web Engine (Chromium-based) Luna Service / Shaka Player Widevine L1 + PlayReady DASH + HLS ~1 GB 3-5 weeks
Android TV / Google TV Android (full AOSP) ExoPlayer / Shaka Widevine L1 DASH (primary), HLS 1.5-4 GB 1-2 weeks (Play Store)
Chromecast / Built-in Cast Web Receiver (Chromium) Cast CAF (Shaka-based) Widevine L1 DASH (primary) ~512 MB Self-certified (Google Cast SDK)
CTV Summary: Paramount+ supports 7+ CTV platforms with a multi-player strategy (Shaka Player for web-based CTV, native players for Roku/Apple TV). Unified DRM via Irdeto reduces per-platform integration complexity. Key differentiators include FAST channel integration (vs. Netflix/Disney+), multi-CDN resilience (4 providers), and dual-protocol support (HLS + DASH) maximizing device compatibility.
📢 Ad Tech Architecture

Paramount+ runs a triple ad insertion architecture — VOD uses Google DAI (SSAI) with client-side IMA SDK integration, Live HLS uses SCTE-35 → FreeWheel VAST 4.0 → DAI stitching, and Pause Ads serve static PNG display creatives via FreeWheel VAST 4.1 on each user pause. Each Live DAI request sends 9+ identity signals (LiveRamp, UID2, PAIR, ConnectID, VIANT, Tinuiti) for cookie-less programmatic targeting. The ad tracking stack fires beacons to 7+ endpoints per ad (FreeWheel, Extreme Reach, Google DAI, DoubleClick, Nielsen, TV Scientific, advertiser pixels). 2 GPP template macros remain unpopulated in FreeWheel requests, while IFA/IFAType are expected empty on web (CTV/mobile only).

Triple Ad Pipeline 13+ Ad Services 7+ Tracking Endpoints 9+ Identity Signals Pause Ads (FreeWheel) GPP Template Gap
13+
Ad Tech Services
3
Insertion Models
12
Ads Captured
387
DoubleClick Reqs (Live)
20+
Tracking Endpoints
178
DAI Reqs (VOD)
Ad Insertion Model Comparison
VOD — Client-Side (CSAI)
Ad Server: Google Ad Manager (GAM)
SDK: Google IMA SDK (client-side)
Stitching: Google DAI — server stitches ads into DASH stream
Config Source: FreeWheel /freewheel/fms.json
Segment Delivery: dai.google.com/segments/redirect/c/
Seamless — player can't distinguish ads from content
Live HLS — Server-Side (SSAI)
Ad Server: FreeWheel (VAST 4.0)
Stitching: Google DAI — ads spliced into HLS stream
Signaling: SCTE-35 markers in HLS playlist
Ad Pods: dai.google.com/linear/pods/v1/p/
Creatives: Extreme Reach + CBS CDN
Seamless mid-roll breaks stitched into stream
Pause Ads — Display (FreeWheel)
Ad Server: FreeWheel (VAST 4.1)
Format: Static PNG images (1018×674)
Slot: slid=pause_ads-1018x674
Trigger: On-demand per pause event (not pre-fetched)
Class: tpcl=PAUSE_MIDROLL, slau=PAUSE_AD
Overlay with dismiss button
Live DASH — Minimal/None
Ad Server: FreeWheel (if present)
Observed: No ad breaks captured in DASH sessions
Delivery: Direct Akamai CDN (no DAI proxy)
Channels: Curated linear (Movies, SpongeBob, etc.)
Possible: Ad-free tier or ads not triggered
Possible SCTE-35 EventStream (not observed)
VOD Ad Pipeline
VOD AD INSERTION PIPELINE
STEP 1 — AD CONFIG
FreeWheel
/freewheel/fms.json
userid, coppa, gdpr
Privacy flags fetched
STEP 2 — DAI SESSION
Google DAI
Network: 8264
Content: 2497752
Service: vod
STEP 3 — SERVER DECISION
Segment Routing
dai.google.com/segments/redirect/c/
Each segment = ad OR content
STEP 4 — DELIVERY
Google Video CDN
HTTP/3 (QUIC)
r3/r4/r5 edge servers
Signed URLs + expiry
Live Ad Break — SCTE-35 → FreeWheel → DAI
SCTE-35 CUE-OUT 60s FreeWheel VAST 4.0 Ad 1: Stamps.com (30s) Ad 2: Star Trek (30s) CUE-IN ✓
Tracking per ad: 11 ID3 events (start → progress×5 → quartiles → complete) fired to 6+ endpoints
FreeWheel Extreme Reach (OMID) Google DAI DoubleClick Nielsen Advertiser Pixels TV Scientific
Pause Ad — FreeWheel Overlay
PAUSE AD INSERTION PIPELINE
TRIGGER
User Pause
btn-play-pause
SAA: pauseStart event
Comscore: ns_st_ev=pause
VAST REQUEST
FreeWheel VAST 4.1
slid=pause_ads-1018x674
tpcl=PAUSE_MIDROLL
slau=PAUSE_AD
CREATIVE DELIVERY
S3 + CloudFront
s1.fwmrm.net/m/1/520311/
PNG images (40–371 KB)
CDN: CloudFront (LAX54-P10)
OVERLAY
Pause Panel
.pause-panel-return-button
“Click to return to the video”
Dismiss → SAA: play
FreeWheel Extreme Reach Samba TV iSpot.tv DoubleClick Demdex / LiveRamp StickyAdsTV (410 Gone)
Key Insight: Pause ads represent a 3rd ad insertion model alongside VOD CSAI and Live SSAI. Each user pause triggers a fresh FreeWheel VAST 4.1 request — not pre-fetched. The creative is a static PNG (not video), served from FreeWheel’s S3/CloudFront CDN. 5 creatives rotate: 2 external advertisers (Expedia, Bayer Aspirin) + 3 internal cross-promotions (Star Trek Shop). StickyAdsTV sync calls return 410 Gone — a deprecated endpoint still referenced in the ad response.
⚙ Ad Tech Services, FreeWheel Config & DAI Session Parameters
Ad Tech Stack 9 services
ServiceDomain(s)RoleVODLiveHome
Google DAIdai.google.comSSAI — VOD + Live HLS
FreeWheel7f077.v.fwmrm.netAd server — VAST 4.0/4.1 (Live + Pause)
Google IMA SDKimasdk.googleapis.comClient-side ad SDK (VOD)
DoubleClickad.doubleclick.net, googleads.g.doubleclick.netAttribution & conversion38721
Google Adsadservice.google.comRemarketing & retargeting1806
Extreme Reachbeacons.extremereach.io, cdn2.extremereach.ioCreative delivery & OMID verification29
Flashtalkingservedby.flashtalking.comCreative serving & attribution602
TV Scientifictvspix.comCTV attribution (live-only)30
Samba TVpixel.mtrcs.samba.tvTV attribution101
DoubleVerifytpsc-uw1.doubleverify.comAd verification & brand safety46
IASdt.adsafeprotected.comAd verification & viewability26
Innovidag.innovid.comInteractive TV ad serving8
TradeDeskenduser.adsrvr.orgProgrammatic DSP24
🔧 FreeWheel Config
Fetched pre-stream: GET /freewheel/fms.json — shared across VOD and Live pipelines
ParameterValue (Observed)DescriptionVODLive HLSLive DASH
dai0DAI mode flag — 0 = standard, 1 = DAI-only
coppa0COPPA compliance — 0 = not child-directed
userid11ccb273-ef8a-4023-a472-20c0ddb6a328Paramount+ user UUID — primary ad targeting identifier
gdpr0GDPR flag — 0 = not in EU jurisdiction
gdpr_consentnullTCF consent string — null when GDPR=0
🔗 DAI Session Parameters
ParameterVOD ValueLive HLS ValueDescription
Stream ID3c76d9c3-93c7-41e2-9096-30d847cdd729b16dc19f-2b50-4a20-8e82-59963ee772b8:CBF2Stream session ID
Network ID82648264GAM network ID
Content ID2497752N/A (event-based)Content asset ID (GAM)
Event IDN/ASid4xiTQTkCT1SLu6rjUSQ (CBS News)
K_2aA7OVRTacJJli1oSi8w (CBS News LA)
9Lq0ERvoSR-z9AwvFS-xYA (CBS Sports HQ)
RGKIw3F7RVGzc5E9y8ElLQ (Golazo)
DAI event ID — per-channel ad schedule
Service TypevodlinearDAI service path
DAI Session IDca3bd550-0f7e-40b0-b832-84b9108c13db(embedded in stream)Client session ID
📡 SCTE-35 Signaling, VAST 4.0 & URL Structures
📡 SCTE-35 Signaling Live HLS Only
ParameterValue (Observed)HLS TagDescription
Break ID0000408279Ad break ID
DATERANGE ID33075399-1772081897#EXT-X-DATERANGE:IDHLS break ID for player sync
Start Date2026-02-26T04:58:17.226433ZSTART-DATEBreak start time (UTC)
Planned Duration60.026633 secondsPLANNED-DURATIONBreak duration
CUE-OUT Duration60.026633#EXT-X-CUE-OUTSplice-out marker
SCTE35-OUT0xFC304E...SCTE35-OUT attrRaw SCTE-35 binary (hex-encoded)
Signal Typetime_signalProvider Placement Opportunity Start
Break TypeMid-rollBreak position within live stream
Ad Count2Number of ad slots filled in this break
📰 VAST 4.0 Parameters From FreeWheel
ParameterAd Slot 1Ad Slot 2Description
Ad SystemFreeWheelFreeWheelAd server / decision engine
VAST Version4.04.0VAST specification version
Ad Type<InLine><InLine>Inline (direct) vs Wrapper (redirect chain)
AdvertiserStamps.comCBS News (Star Trek: Starfleet Academy)Advertiser name
Creative ID68179315305071423Unique creative identifier
Duration30.03s30.03sAd slot duration
Renditions5 (375–25,000 kbps)7 (482–22,876 kbps)Available quality tiers for the creative
Creative CDNcdn1.extremereach.iop-ause1-adops-output.cbsivideo.comCDN serving the ad creative files
VerificationExtreme Reach OMIDViewability verification SDK
Click-ThroughURL (advertiser site)URL (P+ content page)Destination on ad click
📊 Tracking URL Structures
VOD IMPRESSION BEACON
GET dai.google.com/view/p/service/vod/impression/stream/{stream_id}/network/8264/content/2497752/vid/{video_id}/media/{media_id}/stream_ad_id/{ad_id}
stream_id network=8264 content=2497752 vid (video creative ID) stream_ad_id
Response: HTTP 204 (fire-and-forget) · Each ad fires this on playback start
LIVE HLS IMPRESSION BEACON
GET dai.google.com/view/p/service/linear/impression/stream/{stream_id}/...
Similar structure but uses service/linear path · Stream-level impression tied to DAI event
🔗 Ad Pod Segments
VOD — DAI REDIRECT SEGMENTS
dai.google.com/segments/redirect/c/{segment_number}.mp4 ?orig=https://{edge_server}.googlevideo.com/videoplayback &id={video_id}&itag={itag}&source=dclk_video_ads&requiressl=yes &mime={video/mp4|audio/mp4}&expire={timestamp}&signature={sig}
segment_number edge_server (Google CDN) video_id (ad creative) itag (quality tier) expire + signature (auth)
LIVE HLS — DAI AD POD SEGMENTS
dai.google.com/linear/pods/v1/p/{eventId}/{streamId}/{breakId}/0/0/{variant}/{segment}.ts
eventId (DAI event) streamId (session) breakId (SCTE-35 ref) variant (quality) segment (index)
📈 Tracking Events, Measurement Endpoints & Creative Delivery
📈 Tracking Events & Beacons
EventTracker(s)TriggerCount per Ad
impressionFreeWheel, DAI, Extreme Reach, AdvertiserAd render startUp to 10 beacons
startFreeWheel, Extreme ReachFirst frame displayed2–3
firstQuartileFreeWheel, Extreme Reach25% of ad played2–3
midpointFreeWheel, Extreme Reach50% of ad played2–3
thirdQuartileFreeWheel, Extreme Reach75% of ad played2–3
completeFreeWheel, Extreme Reach100% of ad played2–3
mute / unmuteFreeWheelMute/unmute during ad1 each
pause / resumeFreeWheelPause/resume during ad1 each
closeFreeWheelPlayer close during ad1
clickTrackingFreeWheel, DoubleClickAd click-through1–2
📡 Measurement Endpoints
TrackerEndpointPurposeVODLive
Google DAIdai.google.com/view/p/service/.../impression/Impression beacon
FreeWheel7f077.v.fwmrm.netAd server — quartile & completion
Extreme Reachbeacons.extremereach.ioCreative tracking + OMID
Google DFPsecurepubads.g.doubleclick.netCompanion/display ads
DoubleClickad.doubleclick.netAttribution & conversion
Nielsensecure-dcr.imrworldwide.comAudience measurement
Advertiser Pixelstamps.hrzn-nxt.com (example)Conversion pixel (per creative)
TV Scientifictvspix.comCTV/OTT ad attribution
Innovidag.innovid.comInteractive video ads
Flashtalkingservedby.flashtalking.comCreative serving & optimization
The Trade Deskenduser.adsrvr.orgDSP user sync & conversion
Amazon Adss.amazon-adsystem.comDSP attribution
Samba TVads.samba.tvCross-device TV attribution
iSpot.tvpi.ispot.tvTV measurement
Tataritatari-direct-*.telemetry.vaultdcr.comTV attribution & reach
🎵 ID3 In-Band Metadata Live HLS Only
dai.google.com/.../id3-events.json — 35.9 KB payload per ad break
ParameterValueDescription
Total Tags22In-band ID3 metadata events for the observed ad break
Tags per Ad11start + progress×5 + firstQuartile + midpoint + thirdQuartile + complete
Progress Events5 per adFired at regular intervals within each quartile
Payload FormatJSONArray of timed events the player uses to fire tracking beacons
DeliveryPolled by clientPlayer fetches ID3 event manifest and fires beacons at specified times
🌐 Creative Delivery
SourceHostContentRenditions
Google Video CDNr{n}---sn-*.googlevideo.comVOD ad segments (stitched via DAI redirect)Matched to content quality
Extreme Reach CDNcdn1.extremereach.ioThird-party ad creatives (e.g., Stamps.com)5 renditions (375–25,000 kbps)
CBS Internal CDNp-ause1-adops-output.cbsivideo.comHouse ads / promos (e.g., Star Trek)7 renditions (482–22,876 kbps)
Google DAI Podsdai.google.com/linear/pods/v1/p/Live HLS ad pod segments (.ts)Matched to stream variant
🔒 Privacy, Consent & Identity Resolution (9+ Identity Signals)
🔒 Privacy & Consent
ParameterValue (Observed)StandardStatus
us_privacy1YNNCCPA (USP)✓ Populated — notice given, opt-out yes, no sale/no sharing
gdpr0IAB TCF✓ Populated — not in EU jurisdiction
gdpr_consentnullIAB TCF consent stringN/A (GDPR=0)
[GPPSTRING]Placeholder (not populated)IAB GPP consent string✗ Empty
[GPPSECTIONID]Placeholder (not populated)IAB GPP section ID✗ Empty
[IFA]Empty (web context)Identifier for Advertising⚠ Expected — IMA SDK on web has no device ad ID (see note below)
[IFATYPE]Empty (web context)IFA Type (DPID, SSID, etc.)⚠ Expected — no IFA means no IFAType to declare
💡 IFA / IFAType — IMA SDK Web Behavior: The [IFA] and [IFATYPE] placeholders are expected to be empty on web. The Google IMA SDK on desktop browsers has no access to a device advertising identifier — IFA is a CTV/mobile concept (Roku RIDA, Amazon Ad ID, Apple IDFA, Android GAID). The ad request templates are cross-platform (shared between web, mobile, and CTV), so these macros exist for CTV/mobile but correctly resolve to empty strings on web. On CTV, these would be populated by the native app SDK.
CTV / Mobile (IFA populated)
Roku → RIDA • Fire TV → Amazon Ad ID • Apple TV → IDFA • Android TV → GAID
Web Browser (IFA empty — expected)
No device ad ID • Relies on first-party cookies, PPID, Topics API • IMA SDK correctly omits IFA
⚠ GPP Template Gap: The [GPPSTRING] and [GPPSECTIONID] FreeWheel template macros remain unpopulated, despite GPP being sent separately via DoubleClick (gpp=DBABLA~BVQqAAAAAWA.QA, gpp_sid=7). This suggests the FreeWheel ↔ CMP (OneTrust) integration may not be fully wired to pass GPP into the VAST request template.
👥 Identity Resolution — Ad Targeting IDs in Live DAI Requests
Extracted from POST pubads.g.doubleclick.net/ssai/event/{eventId}/streams — each live channel switch sends 6+ identity types for cross-platform ad targeting
Identity TypeParameterProviderPurpose
LiveRamp RampIDimafw_fms_ramp_idLiveRampDeterministic cross-device identity — people-based targeting
LiveRamp Household IDimafw_fms_hh_ramp_idLiveRampHousehold-level targeting — frequency cap across family devices
Unified ID 2.0imafw_fms_uid2The Trade Desk (UID2)Open-source encrypted email identity for programmatic buying
Google PAIR IDimafw_fms_pairGoogle (PAIR)Publisher Advertiser Identity Reconciliation — 1:1 match without 3P cookies
Yahoo ConnectIDimafw_fms_connectidYahoo DSPYahoo’s identity solution for demand-side buying
RampID Envelopeimafw_fms_ramp_envelopeLiveRampEncrypted envelope containing full RampID for DSP decryption
VIANTP__fw_3P_UID: VIANTPVIANT (Adelphic DSP)VIANT’s people-based identity for programmatic CTV
TINUITI__fw_3P_UID: TINUITITinuitiPerformance marketing agency identity for unified reporting
IDL (LiveRamp)__fw_3P_UID: IDLLiveRamp (IdentityLink)Legacy IdentityLink envelope — interoperable with FreeWheel
VCId2imafw__fw_vcid2FreeWheel / LiveRampVideo context identity — cookie-less cross-site targeting
Bid ID Typesimafw_fms_bididtypeFreeWheelSupported bid ID formats: 1010, 1030, 1040, 1050, 1070, 1080
Rule IDimafw_fms_ruleidFreeWheelIdentity resolution rule: 10000 — determines priority cascade
Key Insight: Paramount+ sends 9+ identity signals per live stream request, making it one of the most identity-rich ad implementations observed. This multi-ID strategy ensures ad targeting works across cookie-less environments (CTV, Safari ITP) and maximizes programmatic demand by supporting every major identity provider: LiveRamp (deterministic), UID2 (Trade Desk), PAIR (Google), ConnectID (Yahoo), VIANT (CTV DSP), and Tinuiti (agency). The __fw_3P_UID field bundles multiple IDs in a single FreeWheel parameter with IDL:, PAIRID:, connectid:, UID2:, VIANTP:, and TINUITI: prefixes.
🎬 Ads Observed in Captured Sessions
PipelineAdVideo/Creative IDDurationCDN / Edge ServerAdvertiser
VODAd 12222756b23a632d9~30sr4---sn-qja5mc-5j.googlevideo.com
VODAd 2b0c790e1d45c7b2d~30sr3---sn-a5msen7s.googlevideo.com
VODAd 381f568a32f216810~30sr5---sn-a5meknzr.googlevideo.com
VODAd 466266564 (reid: 276502044)~5sr4---sn-qja5mc-5j.googlevideo.com
VODAd 57df398c869b72aec (reid: 1164819249)~15sr4---sn-a5mekn6s.googlevideo.com
Live HLSSlot 16817931530.03scdn1.extremereach.ioStamps.com
Live HLSSlot 230507142330.03sp-ause1-adops-output.cbsivideo.comCBS (Star Trek promo)
PausePause 190598183 (reid: 1202013972)PNG 1018×674s1.fwmrm.net → CloudFrontExpedia (BEX Q1 2026)
PausePause 290597745 (reid: 1165760354)PNG 1018×674s1.fwmrm.net → CloudFrontBayer Aspirin
PausePause 3193124147 (reid: 754599923)PNG 1018×674s1.fwmrm.net → CloudFrontStar Trek Shop (TOS Uniforms)
PausePause 4309603850 (reid: 1201710563)PNG 1018×674s1.fwmrm.net → CloudFrontStar Trek Shop (Tricorder)
PausePause 5150591479 (reid: 604234729)PNG 1018×674s1.fwmrm.net → CloudFrontStar Trek Shop (Badges)
⚙ CMCD (Common Media Client Data) — ABR Metrics in Ad Segment Requests
📈 CMCD Parameters — VOD vs Live
VOD CMCD
br = 2,699 kbps (video), 132 (audio)
mtp = 19,800–28,700 kbps throughput
bl = 9,600–10,000 ms buffer
d = 5,005 ms segment duration
tb = 5,805 kbps top bitrate
sf = d (DASH) · st = v (VOD)
nor = prefetch hints ("2.mp4", "3.mp4")
13 metrics per segment request
Live CMCD
br = 128–5,980 kbps
mtp = 10,000–77,900 kbps throughput
bl = 10,700–15,300 ms buffer (higher safety margin)
d = 0–6,016 ms (0 for manifest)
tb = 128–5,980 kbps
sf = h (HLS), d (DASH) · st = l (live)
ot = m (manifest), v, i, k (DRM key), a
10 metrics per segment request
Advertisement Summary: Paramount+ operates a sophisticated dual ad insertion pipeline — VOD content uses Google DAI (SSAI) with FreeWheel config to seamlessly stitch ads into DASH segments (player can't distinguish ad from content), while Live HLS channels use SCTE-35 signaling → FreeWheel VAST 4.0 → DAI stitching for mid-roll breaks. The tracking stack is extensive: each ad fires up to 11 ID3 events across 7+ measurement endpoints including FreeWheel, Extreme Reach OMID, Google DAI, DoubleClick, Nielsen, TV Scientific, and advertiser-specific pixels. Ad creatives are delivered from 4 CDN sources (Google Video CDN, Extreme Reach, CBS internal CDN, DAI Pods). The most notable finding is the incomplete GPP privacy integration — four IAB GPP/IFA template placeholders remain unpopulated in ad request URLs, creating potential compliance risk for CTV ad operations under evolving state privacy laws.