Architecture Analysis — VOD, Live TV & Home Page Pipelines
3
Streaming Pipelines
13+
Live Channels Analyzed
14+
CDN Edge Hosts
30+
Tracking Services
3
DRM Methods
2
Ad Insertion Methods
◈ Master Architecture — Three Pipelines
Architecture Overview: Paramount+ operates three distinct streaming pipelines, each optimized for its use case: VOD uses DASH with fMP4 segments, Google DAI for ad insertion, and Google Video Infra for delivery; Live TV branches into two sub-pipelines — HLS for event channels (CBS News, Golazo, CBS Sports HQ) with Google DAI SSAI, and DASH for 8+ curated linear channels via Akamai; Home Page is image-heavy (1,348 requests) with Fastly CDN and separate HLS preview system. All three pipelines converge on Irdeto DRM using three distinct methods: Widevine (VOD + DASH linear), PlayReady (DASH linear dual-stack), and HLS AES-128 key delivery (Golazo). The infrastructure spans 14+ CDN edge hosts across 4 providers (Google Video, Akamai, Fastly, CBS Airspace), orchestrated by Smart Tag v1.39.4 with Shaka Player v4.14.1 and HLS.js v1.5.8 running simultaneously. 30+ tracking services including Adobe AEP, Conviva, Nielsen, and the newly observed TV Scientific (tvspix.com) and Sparrow internal telemetry feed a comprehensive analytics stack.
⚠ Notable Findings & Action Items
!
Shaka v5.0 Deprecation Risk
Action Required
manifest.hls.useSafariBehaviorForLive fires on every HLS channel load. Deprecated in v4.14.1 and will break when Shaka upgrades to v5.0. Smart Tag player integration must update to use liveSync config instead.
★
Golazo: Unique DRM Path
Architectural Anomaly
Only channel using HLS AES-128 key delivery instead of Widevine. Endpoint: /licenseServer/hls/v1/cbsi/key. Streams at 8,941 kbps — nearly 50% higher than other HLS channels. Enables per-stream key rotation for live sports.
◈
TV Scientific — New Tracker
Live-Only
tvspix.com (TV Scientific) appears only in live TV sessions, not VOD or home. This is a CTV/OTT ad attribution platform, indicating live channels have a separate ad measurement stack from the rest of the platform.
◉
Sparrow — Internal Telemetry
First-Party Analytics
sparrow.paramountplus.com runs alongside Conviva and Nielsen as Paramount's first-party video quality beacon. Endpoint: /streamer/v1.0/ingest/beacon.json. Only observed in live TV sessions.
🔒
GPP Privacy Placeholders
Incomplete Implementation
Global Privacy Platform (GPP) parameters are template placeholders — not populated with actual values. [GPPSTRING], [GPPSECTIONID], [IFA], and [IFATYPE] all pass through as raw text to ad servers, indicating GPP integration is not yet complete.
☁
Dynamic CDN Allocation
11 Akamai Hosts Observed
Live linear channels don't have dedicated CDN hostnames — they draw from a dynamic pool. Adjacent channels share edge servers (e.g., propeca301a3 serves both History Undiscovered and 80s Sitcoms). CDN selection appears optimized by geolocation and load.
GET /user-profile/xhr/user/?fetch=false GET /user-profile/xhr/watchlist-ids/?nocache={ts} GET /user-profile/xhr/content-preference-ids/?nocache={ts} GET /user-profile/xhr/available-avatars/
CONTENT METADATA
GET /movies/xhr/moviepage/extras/Alcn0hcGx0H.../offset/0/limit/20/ GET /movies/xhr/moviepage/ymal/Alcn0hcGx0H.../ GET /in-app-messaging/?pageType=movies
GET /freewheel/fms.json
?dai=0 &coppa=0
&userid=11ccb273-ef8a-...
&gdpr=0 &gdpr_consent=null
COMMON XHR HEADERS
Origin:https://www.paramountplus.com Sec-Fetch-Mode: cors Accept: application/json
▽
PHASE 3Google DAI Creates Stream Session (Server-Side Ad Stitching)
IMA SDK sends: Network 8264, Content 2497752, User ID, Service=vod
➜
← 200 OK — Stream ID: 3c76d9c3-... · Session: ca3bd550-...
SSAI: The player does NOT fetch ads separately. DAI stitches ad segments into the content timeline server-side. The player requests 1.mp4, 2.mp4, ... from one endpoint — some are content, some are ads. Player cannot distinguish.
Stream ID: 3c76d9c3-93c7-41e2-9096-30d847cdd729
DAI Session: ca3bd550-0f7e-40b0-b832-84b9108c13db
Segment URL: dai.google.com/segments/redirect/c/
Ads pre-selected by Google Ad Manager
DASH MPD manifest embedded/inline
GET dai.google.com/view/p/service/vod/impression/
stream/3c76d9c3-.../network/8264/content/2497752/
vid/{video_id}/media/{media_id}/stream_ad_id/{ad_id} ← 204 No Content(fire-and-forget)
Method: Signed URLs + expiry (lighter than MPEG-CENC) Auth: Cryptographic signature Expiry: Time-limited access tokens Transport: HTTPS required No Widevine/PlayReady for VOD segments (DRM handled at DAI session level)
🎬 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:
r3---sn-a5msen7s
r4---sn-qja5mc-5j
r5---sn-a5meknzr
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 — Full Extraction
PRE-STREAM: FREEWHEEL AD CONFIGGET /freewheel/fms.json
Parameter
Value
Type
Description
dai
0
Integer
DAI mode — 0 = standard CSAI flow via Google IMA SDK
coppa
0
Integer
COPPA flag — 0 = not child-directed content
userid
11ccb273-ef8a-4023-a472-20c0ddb6a328
UUID
Paramount+ user ID — primary ad targeting key
gdpr
0
Integer
GDPR applicability — 0 = not in EU
gdpr_consent
null
String
IAB TCF consent string — null when GDPR=0
DAI STREAM SESSIONCreated after FreeWheel config fetched
Parameter
Value
Type
Description
Stream ID
3c76d9c3-93c7-41e2-9096-30d847cdd729
UUID
DAI stitched-stream identifier — ties all segments + ads together
Network ID
8264
Integer
Google Ad Manager network — Paramount's GAM publisher account
Content ID
2497752
Integer
GAM content asset ID — used for content-level ad targeting
DAI Session ID
ca3bd550-0f7e-40b0-b832-84b9108c13db
UUID
Client-side session ID for correlating requests
Service
vod
String
DAI service type — determines URL path structure
DAI SEGMENT URL PARAMETERSdai.google.com/segments/redirect/c/{n}.mp4
Video/creative ID — unique per ad or content asset
itag
340
Google quality tier index (maps to resolution + codec)
source
dclk_video_ads
Source identifier — "dclk_video_ads" = DoubleClick ad creative
requiressl
yes
Force HTTPS for segment delivery
mime
video/mp4 or audio/mp4
MIME 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 BEACONFired per ad on playback start → HTTP 204
URL Path Segment
Value
Description
service
vod
Service 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}
8264
GAM network (Paramount's publisher ID)
content/{id}
2497752
Content asset being watched
vid/{id}
2222756b23a632d9
Ad 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 ID
Edge Server
CDN Region
Source
Ad 1
2222756b23a632d9
r4---sn-qja5mc-5j.googlevideo.com
US (Google POP)
dclk_video_ads
Ad 2
b0c790e1d45c7b2d
r3---sn-a5msen7s.googlevideo.com
US (Google POP)
dclk_video_ads
Ad 3
81f568a32f216810
r5---sn-a5meknzr.googlevideo.com
US (Google POP)
dclk_video_ads
CMCD (COMMON MEDIA CLIENT DATA) — ABR METRICS IN EVERY SEGMENT REQUEST
Param
Name
Observed Value(s)
Description
br
Bitrate
2699 (video), 132 (audio)
Current selected bitrate (kbps)
mtp
Measured Throughput
19,800 – 28,700 kbps
Actual measured download speed
bl
Buffer Level
9,600 – 10,000 ms
Current buffer depth in milliseconds
d
Duration
5,005 ms
Segment duration in milliseconds
nor
Next Object Request
"2.mp4", "3.mp4"
Prefetch hint — next segment filename
tb
Top Bitrate
5,805 (video), 143 (audio)
Highest available rendition bitrate
rtp
Requested Throughput
6,800 – 7,000 kbps
Throughput the player is requesting from CDN
dl
Deadline
9,600 – 10,000 ms
Time available before buffer underrun
ot
Object Type
v=video, a=audio, i=init
Type of media object being requested
sf
Stream Format
d (DASH)
Streaming protocol identifier
st
Stream Type
v (VOD)
Content type: v=VOD, l=live
sid
Session ID
ca3bd550-...
Player session UUID — correlates all segment requests
su
Startup
true (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.
DoubleClick, Pinterest, Bing, Nielsen, Braze, New Relic...
Full API endpoints, analytics params & tracker breakdown
CHANNEL GUIDE APIs
GET /live-tv/stream/channelCategories.json GET /live-tv/channels/{slug}/metadata.json GET /live-tv/live-event/{slug}/{id}/metadata.json
ADOBE ANALYTICS
POST saa.paramountplus.com/b/ss/cnetcbscomsite/ POST saa.paramountplus.com/ee/or2/v1/interact
pageName=/live-tv/ · pageType=live_tv
userType=SUBSCRIBER · userStatus=sb|22
Advertiser-specific conversion pixel (varies per creative)
1
TV Scientific
tvspix.com
CTV/OTT ad attribution — live-only tracker
1+
CMCD PARAMETERS (LIVE STREAMS)
Param
Name
Observed Value(s)
Description
bl
Buffer Level
10,700 – 15,300 ms
Current buffer depth (higher than VOD — live safety margin)
br
Bitrate
128 – 5,980 kbps
Current rendition bitrate (audio low, video high)
d
Duration
0 – 6,016 ms
Segment duration (0 for manifest, ~4–6s for segments)
mtp
Measured Throughput
10,000 – 77,900 kbps
Actual measured download speed (wider range than VOD)
ot
Object Type
m, v, i, k, a
m=manifest, v=video, i=init, k=key (DRM), a=audio
sf
Stream Format
h (HLS), d (DASH)
Both formats observed on live — dual protocol
sid
Session ID
UUID
Player session — new UUID per channel switch
st
Stream Type
l (live)
Live stream indicator
tb
Top Bitrate
128 – 5,980 kbps
Highest available rendition
su
Startup
true
Present 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.
1,186
Total Requests
10
Channels Visited
35
DRM Requests
172
DASH Segments
20
HLS Segments
11
CDN Hosts
3
DAI Events
☆ All Live Channels — Master Table
#
Channel
Category
Protocol
DRM
CDN Host(s)
Content ID
DAI Event
1
Golazo
Sports
HLS
HLS AES-128
prope34d46hh
f87a2f4c-...
9Lq0ERvo...
2
CBS Sports HQ
Sports
HLS+DASH
Widevine+PlayReady
propee33f9c2, prope7000cg2
—
RGKIw3F7...
3
Movies
Entertainment
DASH
Widevine+PlayReady
prope7000cg2, propeeh880hf
6ceba331-...
—
4
All Day Drama
Drama
DASH
Widevine+PlayReady
propeeh880hf
ee714c11-...
—
5
SpongeBob Universe
Kids
DASH
Widevine+PlayReady
propehdbb66a, prope12dc513
99cc29a9-...
—
6
Animation Favorites
Kids
DASH
Widevine+PlayReady
prope12dc513
6257e5c9-...
—
7
RuPaul's Drag Race
Reality
DASH
Widevine+PlayReady
prope26af1ac
8348b3ef-...
—
8
History Undiscovered
Drama
DASH
Widevine+PlayReady
prope828e699, propeca301a3
091f4804-...
—
9
80s Sitcoms
Comedy
DASH
Widevine+PlayReady
prope97d0g68, propeca301a3
a551b933-...
—
10
Adult Animation
Comedy
DASH
Widevine+PlayReady
prope97d0g68
5fbf71e9-...
—
⚖ Protocol & Pipeline Comparison
Attribute
HLS Event Pipeline
DASH Linear Pipeline
Channels
Golazo, CBS Sports HQ
Movies, All Day Drama, SpongeBob Universe, Animation Favorites, RuPaul's Drag Race, History Undiscovered, 80s Sitcoms, Adult Animation
Count
2
8
Protocol
HLS (MPEG-TS segments)
DASH (fMP4 segments)
Ad Insertion
Google DAI SSAI
FreeWheel / None observed
DRM
HLS AES-128 (Golazo) / Widevine (CBS Sports HQ)
Widevine + PlayReady (MPEG-CENC dual PSSH)
License Path
/licenseServer/hls/v1/cbsi/key
/widevine/getlicense
Max Bitrate
8,941 kbps (Golazo)
~8,000 kbps
CDN
Akamai Airspace
Akamai Airspace
Player
Shaka v4.14.1 + Smart Tag v1.39.4
Shaka v4.14.1 + Smart Tag v1.39.4
DAI Events
9Lq0ERvo... / RGKIw3F7...
—
☁ CDN Host Map — 11 Akamai Edge Servers
Akamai Edge Host
Serving Channels
Shared?
prope34d46hh.airspace.cdn.cbsivideo.com
Golazo
No
propee33f9c2.airspace.cdn.cbsivideo.com
CBS Sports HQ
No
prope7000cg2.airspace.cdn.cbsivideo.com
Movies, CBS Sports HQ
Yes
propeeh880hf.airspace.cdn.cbsivideo.com
Movies, All Day Drama
Yes
propehdbb66a.airspace.cdn.cbsivideo.com
SpongeBob Universe
No
prope12dc513.airspace.cdn.cbsivideo.com
SpongeBob Universe, Animation Favorites
Yes
prope26af1ac.airspace.cdn.cbsivideo.com
RuPaul's Drag Race
No
prope828e699.airspace.cdn.cbsivideo.com
History Undiscovered
No
propeca301a3.airspace.cdn.cbsivideo.com
History Undiscovered, 80s Sitcoms
Yes
prope97d0g68.airspace.cdn.cbsivideo.com
80s Sitcoms, Adult Animation
Yes
★ Google DAI Events (All Sessions)
DAI Event ID
Channel
Source
Sid4xiTQTkCT1SLu6rjUSQ
CBS News
Session 1
RGKIw3F7RVGzc5E9y8ElLQ
CBS Sports HQ
Session 2
9Lq0ERvoSR-z9AwvFS-xYA
Golazo
Session 2
⚠ Console Issues & Warnings
Type
Count
Message
Impact
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: 10 channels across 5 categories split into two pipelines: 2 HLS event channels (Golazo, CBS Sports HQ) with Google DAI SSAI, and 8 DASH linear channels with Widevine+PlayReady MPEG-CENC. Golazo is architecturally unique — the only channel using HLS AES-128 key delivery at 8,941 kbps peak. All channels are served via 11 Akamai Airspace edge servers (5 shared across channels), orchestrated by Smart Tag v1.39.4 with Shaka Player v4.14.1. Session generated 1,186 requests including 35 DRM exchanges and 192 media segments.
Tells Adobe Target exactly what to personalize and where
DECISION SCOPES
"decisionScopes": ["__view__"]
__view__ = Adobe Target's built-in scope for page-level activities. Evaluates all active Target activities (A/B tests, experience targeting, automated personalization) assigned to this page.
TARGET SURFACES
"surfaces": ["web://www.paramountplus.com/home"]
Surface URI = identifies the specific page context. Allows Adobe Journey Optimizer (AJO) to deliver surface-specific content — different surfaces get different offers, messages, and experiments.
Structured content payloads for carousel items and content cards — delivers personalized metadata, not raw HTML.
Carousel Selection
Which shows/movies populate each row
Content Ordering
Sort priority for tiles within a carousel
Tile Metadata
Custom titles, badges ("New Episode"), CTAs
Row Visibility
Show/hide entire content rows per segment
➜ Page impact: "Tom Cruise Movies" row for action fans, "Kids Programming" promoted for family profiles
💬 In-App MessagingAJO
Schema: adobe/ajo/in-app-message
Adobe Journey Optimizer (AJO) delivers overlay messages — banners, modals, toasts — triggered by journey rules or segment membership.
Upsell Banner
"Upgrade to ad-free" for Essential tier users
Promo Modal
Showtime bundle offer for long-tenure subscribers
Feature Announcement
New feature toast — e.g., "Live channels now available"
Win-Back Offer
Discount overlay for CANCELLED/EXPIRED users
➜ Page impact: Overlays, banners, and modals rendered on top of home page content
↺ Redirect ItemsNAVIGATION
Schema: adobe/target/redirect-item
Full-page redirects to alternative experiences. Evaluated before page render — user is seamlessly routed to a different URL.
Win-Back Landing
Redirect churned users to /offers/comeback
Geo-Specific Home
Route international users to localized landing pages
Onboarding Flow
Route new signups to guided content tour
Campaign Landing
Redirect from /home to event-specific page (e.g., NFL)
➜ Page impact: User never sees /home/ — immediately redirected to personalized alternative
⚙ Ruleset ItemsA/B TESTING
Schema: adobe/target/ruleset-item
Conditional logic bundles for A/B and multivariate tests. Contains the rules themselves (not just outcomes) — evaluated client-side for low-latency decisions.
Traffic Split
50/50 or weighted allocation across variants
Audience Rules
Segment conditions: IF tenure > 12mo AND platform = desktop
Variant Payloads
Each variant carries its own DOM actions or content
Goal Metrics
Conversion events: clicks, video starts, signups
➜ Active experiment observed:web_minimize_delay_on_loading_video_previews (variant: 0_sec) via Optimizely
▽
PHASE 6 — CLIENT-SIDE RENDERING & MEASUREMENT
SDK applies decisions to the live DOM and reports impressions back to AEP
▶ APPLY DECISIONS
1. DOM Actions execute immediately — hero swap, row reorder
2. Feed Items populate carousel data model
3. In-App Messages render overlays via AJO SDK
4. Redirects fire window.location (pre-render)
5. Rulesets evaluate client-side, then apply nested actions
📈 MEASURE & REPORT
1. display notification → AEP (proposition rendered)
2. interact notification → AEP (user clicked/engaged)
3. dismiss notification → AEP (message dismissed)
4. Conversion events sent to Adobe Target for A/B test scoring
5. All events also forwarded to Tealium → 3rd party pixels
⚠ PARALLEL: OPTIMIZELY
Runs independently alongside Adobe Target:
Experiment:web_minimize_delay_on_loading_video_previews Variant: 0_sec (no delay) Controls: Video preview auto-play timing on hover Goal: Optimize engagement / reduce bounce
⚠ 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.
📡 Media Session Tracking
Transitioning from video to home triggers session end events:
Home Page Summary: The homepage is an image-heavy front door generating 1,348 requests in 27 seconds, with 65% being image loads. Images are served through a CDN-edge resizing pipeline — the client specifies width (6 tiers from w200 to w3200), quality (q80), and format (WebP) directly in the URL, and the OpenResty origin resizes on-the-fly with results cached at two Varnish tiers for 30 days. Video previews use a separate HLS pipeline via Fastly (764,000+ cache hits). Personalization is powered by Adobe Target via AEP Web SDK — the home page sends user context (subscription tenure, profile type, platform, locale) and receives 5 types of personalization decisions (DOM actions, feed items, in-app messaging, redirects, ruleset A/B tests) that dynamically control carousel ordering, hero banners, and promotional messaging. An Optimizely experiment is concurrently testing video preview auto-play timing. Billing is managed externally through Recurly.
★ Ad Tech & Monetization 9 services
Service
Domain(s)
Role
VOD
Live
Home
Google DAI
dai.google.com
Server-side ad stitching (SSAI) for VOD + Live HLS
✓
✓
—
FreeWheel
7f077.v.fwmrm.net
Primary ad server — VAST 4.0 ad pods (Live)
—
✓
—
Google IMA SDK
imasdk.googleapis.com
Client-side ad SDK (VOD player integration)
✓
✓
—
DoubleClick
ad.doubleclick.net, googleads.g.doubleclick.net
Ad attribution & conversion tracking
—
63
21
Google Ads
adservice.google.com
Ad tracking & remarketing
—
18
6
Extreme Reach
beacons.extremereach.io, cdn1.extremereach.io
Creative delivery, verification & OMID
—
✓
—
Flashtalking
servedby.flashtalking.com
Ad serving & creative attribution
—
6
2
TV Scientific
tvspix.com
CTV/OTT ad attribution (live-only)
—
✓
—
Samba TV
ads.samba.tv
Connected TV attribution
—
3
1
◉ Analytics & Measurement 7 services
Service
Domain(s)
Role
VOD
Live
Home
Adobe AEP
saa.paramountplus.com
Primary analytics + personalization (A/B tests)
—
44
25
Google Analytics
www.google.com
Web analytics (secondary)
—
27
11
Nielsen
secure-dcr.imrworldwide.com
TV audience measurement (DCR)
—
8
1
Scorecard Research
sb.scorecardresearch.com
Cross-platform audience measurement
—
14
6
Yahoo Analytics
sp.analytics.yahoo.com
Search analytics
—
3
1
Sparrow
sparrow.paramountplus.com
P+ internal video telemetry beacon (first-party)
—
3
—
Doppler
doppler-beacon.cbsivideo.com
Internal video analytics (CBS legacy)
—
4
3
◎ Video QoE & Monitoring 3 services
Service
Domain(s)
Role
VOD
Live
Home
Conviva
*.cws.conviva.com
Video QoE monitoring — buffering, bitrate, errors
24
18
1
New Relic
bam.nr-data.net
Application performance monitoring (APM)
—
20
20
Scrapcranes
scrapcranes.com
Unknown / legacy monitoring
—
5
—
★ Retargeting & Social Pixels 6 services
Service
Domain(s)
Role
VOD
Live
Home
Pinterest
ct.pinterest.com, s.pinimg.com
Retargeting pixels
—
24
28
Bing Ads
bat.bing.com
Search retargeting
—
22
16
Facebook
www.facebook.com, connect.facebook.net
Social retargeting pixel
—
—
5
Amazon Ads
s.amazon-adsystem.com
E-commerce retargeting
—
6
2
Twitter/X
analytics.twitter.com
Social retargeting
—
1
2
Reddit
alb.reddit.com
Social retargeting
—
1
2
● Attribution & Deep Linking 3 services
Service
Domain(s)
Role
VOD
Live
Home
Branch.io
api2.branch.io, cdn.branch.io
Deep linking & mobile attribution
—
3
3
Kochava
assets.kochava.com
Mobile attribution
—
3
1
Impact Radius
d.impactradius-event.com
Affiliate tracking
—
—
1
⚙ Infrastructure, Privacy & Messaging 4 services
Service
Domain(s)
Role
VOD
Live
Home
OneTrust
cdn.cookielaw.org, consent-api.onetrust.com
Consent management (GDPR, CCPA, COPPA)
—
11
17
Tealium
tags.tiqcdn.com
Tag management system (TMS)
—
7
7
Google Tag Manager
www.googletagmanager.com
Tag management (secondary)
—
3
3
Braze
sdk.iad-03.braze.com
Push notifications & in-app messaging
—
8
3
📢 Ad Parameters — VOD vs Live Extraction Guide
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/
• 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 CDN + CBS internal 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 in-stream ads not triggered
• DASH MPD may contain SCTE-35 EventStream (not observed)
1. FREEWHEEL AD CONFIG PARAMETERSFetched pre-stream: GET /freewheel/fms.json
Parameter
Value (Observed)
Description
VOD
Live HLS
Live DASH
dai
0
DAI mode flag — 0 = standard, 1 = DAI-only
✓
✓
—
coppa
0
COPPA compliance — 0 = not child-directed
✓
✓
—
userid
11ccb273-ef8a-4023-a472-20c0ddb6a328
Paramount+ user UUID — primary ad targeting identifier
✓
✓
—
gdpr
0
GDPR flag — 0 = not in EU jurisdiction
✓
✓
—
gdpr_consent
null
TCF consent string — null when GDPR=0
✓
✓
—
2. GOOGLE DAI SESSION PARAMETERSCreated on stream init
Parameter
VOD Value
Live HLS Value
Description
Stream ID
3c76d9c3-93c7-41e2-9096-30d847cdd729
b16dc19f-2b50-4a20-8e82-59963ee772b8:CBF2
Unique stream session — tracks all segments + ads for this viewer
Network ID
8264
8264
Google Ad Manager network — Paramount's GAM account ID
Content ID
2497752
N/A (event-based)
VOD content asset ID in GAM for targeting
Event ID
N/A
Sid4xiTQTkCT1SLu6rjUSQ
Live DAI event — maps to a live channel (CBS News, Golazo, etc.)
Service Type
vod
linear
DAI service path — determines segment/impression URL structure
DAI Session ID
ca3bd550-0f7e-40b0-b832-84b9108c13db
(embedded in stream)
Client-side session ID for correlating segment requests
3. IMPRESSION & TRACKING URL PARAMETERS
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}
VAST-standard quartile tracking events embedded as ID3 tags
Delivery
JSON payload via DAI API
Client polls for ID3 events to fire tracking beacons at correct times
9. AD TRACKING & MEASUREMENT ENDPOINTS
Tracker
Endpoint
Purpose
VOD
Live
Google DAI
dai.google.com/view/p/service/.../impression/
Stream-level impression beacon
✓
✓
FreeWheel
7f077.v.fwmrm.net
Primary ad server — quartile events, completion
—
✓
Extreme Reach
beacons.extremereach.io
Creative-level tracking + OMID viewability
—
✓
Google DFP
securepubads.g.doubleclick.net
Companion/display ads alongside video
✓
✓
DoubleClick
ad.doubleclick.net
Ad attribution & conversion tracking
✓
✓
Nielsen
secure-dcr.imrworldwide.com
Audience measurement during ad playback
✓
✓
Advertiser Pixel
stamps.hrzn-nxt.com (example)
Per-advertiser conversion pixel (varies per creative)
—
✓
TV Scientific
tvspix.com
CTV/OTT ad attribution (live-only)
—
✓
10. AD CREATIVE DELIVERY SOURCES
Source
Host
Content
Renditions
Google Video CDN
r{n}---sn-*.googlevideo.com
VOD ad segments (stitched via DAI redirect)
Matched to content quality
Extreme Reach CDN
cdn1.extremereach.io
Third-party ad creatives (e.g., Stamps.com)
5 renditions (375–25,000 kbps)
CBS Internal CDN
p-ause1-adops-output.cbsivideo.com
House ads / promos (e.g., Star Trek)
7 renditions (482–22,876 kbps)
Google DAI Pods
dai.google.com/linear/pods/v1/p/
Live HLS ad pod segments (.ts)
Matched to stream variant
11. ADS OBSERVED IN CAPTURED SESSIONS
Pipeline
Ad
Video/Creative ID
Duration
CDN / Edge Server
Advertiser
VOD
Ad 1
2222756b23a632d9
~30s
r4---sn-qja5mc-5j.googlevideo.com
—
VOD
Ad 2
b0c790e1d45c7b2d
~30s
r3---sn-a5msen7s.googlevideo.com
—
VOD
Ad 3
81f568a32f216810
~30s
r5---sn-a5meknzr.googlevideo.com
—
Live HLS
Slot 1
68179315
30.03s
cdn1.extremereach.io
Stamps.com
Live HLS
Slot 2
305071423
30.03s
p-ause1-adops-output.cbsivideo.com
CBS (Star Trek promo)
⚠ GPP Privacy Gap:Four privacy template placeholders ([GPPSTRING], [GPPSECTIONID], [IFA], [IFATYPE]) are present in ad request URLs but never populated with actual values. This suggests the GPP (Global Privacy Platform) integration is incomplete — ad requests may not be fully compliant with IAB GPP specifications.
☁ CDN Architecture — Multi-Vendor Strategy
CDN Provider
Hostname(s)
Content Type
Protocol
Cache Strategy
Fastly (Varnish)
wwwimage-us.pplusstatic.com
Images
HTTPS
30 days
Fastly (Varnish)
splice-media.paramountplus.com
HLS previews
HTTPS
15 min
Fastly (Varnish)
player-services.paramountplus.com
Player JS/CSS
HTTPS
5 min + stale-while-revalidate 5 min + stale-if-error 24 h
Google Video Infra
r3/r4/r5---sn-*.googlevideo.com
VOD segments
HTTP/3 QUIC
Private, signed URLs
Akamai
prope4h423g3.airspace.cdn.cbsivideo.com
Survivor DASH
HTTPS
no-cache
Akamai
propede8cf4h.airspace.cdn.cbsivideo.com
Linear DASH
HTTPS
no-cache
Akamai
propefe9ga3a.airspace.cdn.cbsivideo.com
Linear DASH
HTTPS
no-cache
Akamai
prope34d46hh.airspace.cdn.cbsivideo.com
Golazo (HLS)
HTTPS
no-cache
Akamai
propee33f9c2.airspace.cdn.cbsivideo.com
CBS Sports HQ
HTTPS
no-cache
Akamai
prope7000cg2.airspace.cdn.cbsivideo.com
Movies, CBS Sports HQ
HTTPS
no-cache
Akamai
propeeh880hf.airspace.cdn.cbsivideo.com
Movies, All Day Drama
HTTPS
no-cache
Akamai
propehdbb66a.airspace.cdn.cbsivideo.com
SpongeBob Universe
HTTPS
no-cache
Akamai
prope12dc513.airspace.cdn.cbsivideo.com
SpongeBob, Animation Fav
HTTPS
no-cache
Akamai
prope26af1ac.airspace.cdn.cbsivideo.com
RuPaul's Drag Race
HTTPS
no-cache
Akamai
prope828e699.airspace.cdn.cbsivideo.com
History Undiscovered
HTTPS
no-cache
Akamai
propeca301a3.airspace.cdn.cbsivideo.com
History, 80s Sitcoms
HTTPS
no-cache
Akamai
prope97d0g68.airspace.cdn.cbsivideo.com
80s Sitcoms, Adult Anim
HTTPS
no-cache
CBS Airspace (Fastly)
news20e7hhcb.airspace-cdn.cbsivideo.com
CBS News HLS
HTTPS
no-cache, no-store
Google DAI
dai.google.com
Ad pods + proxy
HTTPS
no-store
Extreme Reach
cdn1.extremereach.io
3rd party ad creatives
HTTPS
Standard
CBS Internal
p-ause1-adops-output.cbsivideo.com
House ads/promos
HTTPS
Standard
🔒 DRM Detail Table
Parameter
VOD
Live Event (HLS)
Live Linear (DASH)
Golazo (HLS AES-128)
DRM System
Widevine
Widevine
Widevine + PlayReady
HLS AES-128
License Server
Irdeto
Irdeto
Irdeto
Irdeto
Endpoint
cbsi.live.ott.irdeto.com
cbsi.live.ott.irdeto.com
cbsi.live.ott.irdeto.com
cbsi.live.ott.irdeto.com
License Path
/widevine/getlicense
/widevine/getlicense
/widevine/getlicense
/licenseServer/hls/v1/cbsi/key
CrmId/AccountId
cbsi/cbsi
cbsi/cbsi
cbsi/cbsi
cbsi/cbsi
Protection Method
Signed URLs + expiry
DAI session tokens
MPEG-CENC (dual PSSH)
AES-128 key fetch
Content-Type
application/x-protobuf
application/x-protobuf
application/x-protobuf
application/octet-stream
Widevine Scheme URI
—
edef8ba9-...
edef8ba9-...
—
PlayReady Scheme URI
—
—
9a04f079-...
—
CDM Version
—
19.0.6
19.0.6
—
License Challenge
—
4,296 bytes
4,296 bytes
N/A (key fetch)
License Response
—
672 bytes
672 + 720 bytes
Raw AES key bytes
Server Name
—
alcatraz_test_drm_server
alcatraz_test_drm_server
—
▶ Player Components Detail
Component
File
Size (gzip)
Version
Used In
Smart TV SDK (Core)
smart.tag.js
418 KB
v1.39.4
Live TV
Smart TV SDK (Skin)
smart.tag.skin.js
194 KB
v1.39.4
Live TV
Smart TV CSS
smart.tag.skin.css
252 KB
v1.39.4
Live TV (433 cache hits)
Smart TV Plugin (Sidebar)
smart.tag.skin.plugin.sidebar.js
53 KB
v1.39.4
Live TV
Smart TV Plugin (Multi)
smart.tag.skin.plugin.multi.stream.js
62 KB
v1.39.4
Live TV
Smart TV SVG Plugin
smart.tag.skin.plugin.sidebar.svg.js
525 KB
v1.39.4
Live TV
HLS.js
hls.js
124 KB
v1.5.8
Live TV (News)
Shaka Player
shaka-player
230 KB
v4.14.1
Live TV (Linear) + VOD
Avia Loader
avia.js
83 KB
v2.54.0
Live TV
Google IMA SDK
imasdk.googleapis.com
—
—
VOD
Movie Player (Top Edge)
movieVideoTopEdge-*.min.js
—
—
VOD
Movie Player (Bottom)
moviesBottom-*.min.js
—
—
VOD
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.
📥 VOD Segment Request Headers
Header
Value
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/145.0.0.0
Origin
https://www.paramountplus.com
Referer
https://www.paramountplus.com/
Accept-Encoding
gzip, deflate, br, zstd
Sec-Fetch-Site
cross-site
Sec-Fetch-Mode
cors
Sec-Fetch-Dest
empty
📥 VOD Segment Response Headers
Header
Value
Content-Type
video/mp4 or audio/mp4
Cache-Control
private, max-age=86XXX
Client-Protocol
quic (HTTP/3)
X-CDN
Fastly (page), Google Video Infra (segments)
📥 Live TV — HLS Segment Headers (CBS News)
Request Headers:
Similar to VOD but Sec-Fetch-Site varies based on cross-origin context
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.