Samsung Tizen
LG WebOS
HbbTV
Overview
Web-based CTV platforms run JavaScript applications in embedded browser engines. Permutive’s JavaScript SDK integrates with these platforms through the CTV addon, which provides specialized video tracking capabilities for streaming content. Supported Platforms:Prerequisites
1
Permutive Workspace
An active Permutive workspace. If you’re not yet a customer, get in touch.
2
Public API Key
Your API key from the Dashboard.
3
CTV Addon
Enable the CTV addon in your Dashboard integrations.
Setup
The JavaScript Tag
Deploy the Permutive JavaScript tag in your CTV web application. The tag initializes the SDK and downloads your workspace-specific bundle.<WORKSPACE_API_KEY>- Your workspace API key<WORKSPACE_ID>- Your workspace ID<ORGANIZATION_ID>- Your organization ID<CTV_PLATFORM>- The platform identifier (e.g.,hbbtv,lg-webos-24)
Deployment Considerations
CTV Browser Limitations: CTV platforms use embedded browser engines with different JavaScript capabilities than desktop browsers. Always use the platform-specific SDK bundle that matches your target platform version.
- Use the correct platform bundle - Each platform version has a specific SDK bundle optimized for its JavaScript engine
- Initialize before video playback - Ensure the SDK is loaded before initializing the CTV addon
- Test on device - Emulators may not reflect actual device behavior; test on physical CTV hardware
- Configure network access - Add required domains to your app’s external access policy (especially on Tizen)
Samsung Tizen
Platform Version SDKs
Tizen requires platform-specific SDK bundles. Select the bundle matching your target Tizen platform version:Privileges
Configure the required Tizen privileges in your application:External Access Policy
Add Permutive’s CDN and APIs to your external access policy inconfig.xml:
TIFA (Tizen ID for Advertising)
Samsung provides TIFA as a unique advertising identifier. To use TIFA with Permutive:- Add
tifaas an identifier in your Dashboard identifiers settings - Identify users using the TIFA ID:
LG WebOS
Platform Version SDKs
LG WebOS requires platform-specific SDK bundles. Select the bundle matching your target WebOS platform version:Script Example
HbbTV
HbbTV (Hybrid Broadcast Broadband TV) applications use the standard CTV script path:CTV Addon
The CTV addon provides video-specific tracking APIs. Initialize it when video content starts:Initialization
permutive.addons.ctv.
Addon Methods
Video Properties
The following properties are available for video events. All are optional but tracking more enables richer cohort building:Output shape: Pass these properties under
eventProperties.video; they appear under the video parent in the resulting Videoview event. The same nested shape (video.*) is what you’ll see in the dashboard and use for cohort building. See CTV Video Tracking for the canonical schema.Properties are sanitized to match expected types. Invalid types are removed rather than causing errors.
Ad Properties
The CTV addon does not have a typed ad-tracking API — publishers track ad events manually using.track() (see Manual Events below). To produce events that match the schema, wrap these properties under an ad parent in the .track() properties argument.
Output shape: When passed under an
ad key in .track(), these become ad.* properties in the resulting event (e.g., ad.title, ad.campaign_id).Complete Example
Event Tracking
Automatic Events
The CTV addon automatically tracks:Manual Events
Track additional video events using.track():
JavaScript SDK Reference
For advanced use cases, the full JavaScript SDK is available. Key APIs include:permutive.identify([...])- Set user identitiespermutive.track(eventName, properties)- Track custom eventspermutive.segments()- Get current cohort membershipspermutive.ready(callback)- Execute code when SDK is ready
Troubleshooting
SDK not loading
SDK not loading
Problem: Permutive SDK fails to load on CTV device.Solutions:
- Verify external access policy includes Permutive domains
- Check network connectivity on the device
- Ensure correct platform-specific script URL
- Verify API key and workspace ID are correct
Events not being tracked
Events not being tracked
Problem: Events don’t appear in the dashboard.Solutions:
- Verify CTV addon is enabled in dashboard settings
- Check browser console for JavaScript errors
- Ensure events match your workspace schema
- Wait 5-10 minutes for events to process
Engagement time incorrect
Engagement time incorrect
Problem: Engagement metrics don’t match expected values.Solutions:
- Ensure
.play()is called when video plays - Ensure
.pause()is called when video pauses or buffers - Call
.stop()when video ends or user exits - Set correct duration before calling
.stop()
GAM targeting not working
GAM targeting not working
Problem: Google Ad Manager targeting values not applied.Solutions:
- Ensure GPT library loads before Permutive
- Verify
_pdfpsexists in localStorage - Check that ad requests fire after Permutive initializes
Related Documentation
CTV Overview
Platform selection guide
Video Tracking
Video event best practices
JavaScript SDK
Full JavaScript SDK reference
Google Ad Manager
GAM integration guide