> ## Documentation Index
> Fetch the complete documentation index at: https://docs.permutive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connected TV Overview

> Integrate Permutive across Connected TV platforms for audience targeting and video engagement tracking

<CardGroup cols={4}>
  <Card title="Web CTV" href="/sdks/ctv/web-ctv" icon="browser" />

  <Card title="tvOS" href="/sdks/ctv/tvos" icon="apple" />

  <Card title="Android TV" href="/sdks/ctv/android-tv" icon="android" />

  <Card title="Roku" href="/sdks/ctv/roku" icon="tv" />
</CardGroup>

## Overview

Connected TV (CTV) encompasses a variety of devices and platforms that deliver streaming content to televisions. Permutive provides comprehensive support across the CTV ecosystem, enabling you to track user engagement, build audience segments, and target ads effectively.

<Info>
  **Permutive's CTV Philosophy:** Rather than building separate SDKs for each CTV platform, Permutive extends existing SDKs to work seamlessly in CTV environments. This means you get the same reliable APIs and features you're already familiar with from web and mobile.
</Info>

## Platform Selection Guide

Choose your integration approach based on your CTV platform:

| Platform               | Technology              | SDK to Use                 | Documentation                      |
| ---------------------- | ----------------------- | -------------------------- | ---------------------------------- |
| Samsung Tizen          | Web/JavaScript          | JavaScript SDK + CTV addon | [Web CTV](/sdks/ctv/web-ctv)       |
| LG WebOS               | Web/JavaScript          | JavaScript SDK + CTV addon | [Web CTV](/sdks/ctv/web-ctv)       |
| HbbTV                  | Web/JavaScript          | JavaScript SDK + CTV addon | [Web CTV](/sdks/ctv/web-ctv)       |
| tvOS                   | Native iOS/Swift        | iOS SDK                    | [tvOS](/sdks/ctv/tvos)             |
| Android TV / Google TV | Native Android/Kotlin   | Android SDK                | [Android TV](/sdks/ctv/android-tv) |
| Roku                   | BrightScript/SceneGraph | Permutive Roku Client      | [Roku](/sdks/ctv/roku)             |

## CTV Environment Types

Understanding your CTV environment helps determine the right integration approach:

<Tabs>
  <Tab title="Web-Based CTV Apps">
    Many CTV platforms run web-based applications using embedded browsers. These include:

    * **Samsung Tizen** - Uses a Chromium-based web engine
    * **LG WebOS** - Uses a WebKit-based web engine
    * **HbbTV** - Standard for hybrid broadcast/broadband TV

    For these platforms, deploy the [JavaScript SDK](/sdks/web/javascript-sdk) with the **CTV addon** enabled. The CTV addon provides specialized video tracking APIs designed for streaming content.

    **Key Consideration:** Web-based CTV environments have stricter JavaScript engine limitations than desktop browsers. Permutive provides platform-specific SDK bundles optimized for each platform version.
  </Tab>

  <Tab title="Native CTV Apps">
    Some CTV platforms use native application frameworks:

    * **tvOS** - Native Swift/Objective-C apps using UIKit/SwiftUI
    * **Android TV / Google TV** - Native Kotlin/Java apps

    For these platforms, use the corresponding mobile SDK:

    * tvOS apps use the [iOS SDK](/sdks/mobile/ios/overview) (supports tvOS 12.0+)
    * Android TV apps use the [Android SDK](/sdks/mobile/android/overview)

    **Key Consideration:** Native CTV apps benefit from full SDK capabilities including MediaTracker for video engagement tracking.
  </Tab>

  <Tab title="Dedicated Streaming Platforms">
    **Roku** operates on its own platform (BrightScript/SceneGraph) and requires a dedicated client:

    * **Roku** - Uses the Permutive Roku Client component

    The [Roku Client](/sdks/ctv/roku) is a SceneGraph Task component that provides event tracking, identity management, and Google Ad Manager targeting.
  </Tab>
</Tabs>

## Video Tracking Across Platforms

All CTV platforms support Permutive's video event schema for consistent audience analytics:

| Event                 | Description                   | Automatic |
| --------------------- | ----------------------------- | --------- |
| **Videoview**         | User initiated video playback | Yes       |
| **VideoCompletion**   | User finished or exited video | Yes       |
| **VideoAdView**       | Video ad started playing      | Manual    |
| **VideoAdCompletion** | Video ad finished             | Manual    |
| **VideoAdClicked**    | User clicked on video ad      | Manual    |

See [CTV Video Tracking](/sdks/ctv/video-tracking) for implementation details across all platforms.

## Prerequisites

Before integrating CTV, ensure you have:

<Steps>
  <Step title="Permutive Workspace">
    An active Permutive workspace. Contact [support@permutive.com](mailto:support@permutive.com) if you need one.
  </Step>

  <Step title="API Credentials">
    Your workspace API key and ID from the [Dashboard](https://dash.permutive.com/settings/keys/).
  </Step>

  <Step title="CTV Addon (Web-based only)">
    For web-based CTV platforms, enable the CTV addon in your [Dashboard integrations](https://dash.permutive.com/settings/integrations/).
  </Step>

  <Step title="Video Event Schema">
    Ensure your video events conform to your workspace schema. Work with [Technical Services](mailto:technical-services@permutive.com) to configure this.
  </Step>
</Steps>

## Features by Platform

| Feature              | Web CTV      | tvOS              | Android TV      | Roku             |
| -------------------- | ------------ | ----------------- | --------------- | ---------------- |
| Video event tracking | CTV addon    | MediaTracker      | MediaTracker    | Manual           |
| Engagement time      | Automatic    | Automatic         | Automatic       | Manual           |
| User identity        | `identify()` | `setIdentities()` | `setIdentity()` | `identity` field |
| Cohort retrieval     | `segments()` | `cohorts`         | `cohorts`       | `cohorts`        |
| GAM targeting        | Automatic    | Manual            | Manual          | `gamKeyValues`   |
| Contextual cohorts   | URL-based    | URL-based         | URL-based       | Not available    |

## Getting Started

<CardGroup cols={2}>
  <Card title="Web-Based CTV" icon="browser" href="/sdks/ctv/web-ctv">
    Samsung Tizen, LG WebOS, HbbTV integration with JavaScript SDK
  </Card>

  <Card title="tvOS" icon="apple" href="/sdks/ctv/tvos">
    Native tvOS integration using the iOS SDK
  </Card>

  <Card title="Android TV" icon="android" href="/sdks/ctv/android-tv">
    Native Android TV integration using the Android SDK
  </Card>

  <Card title="Roku" icon="tv" href="/sdks/ctv/roku">
    Roku channel integration with the Permutive Roku Client
  </Card>
</CardGroup>

## Additional Resources

<CardGroup cols={2}>
  <Card title="Video Tracking Best Practices" icon="video" href="/sdks/ctv/video-tracking">
    Unified video event implementation guide
  </Card>

  <Card title="JavaScript SDK Reference" icon="code" href="/sdks/web/javascript-sdk">
    Full JavaScript SDK documentation
  </Card>

  <Card title="iOS SDK Reference" icon="apple" href="/sdks/mobile/ios/overview">
    Full iOS/tvOS SDK documentation
  </Card>

  <Card title="Android SDK Reference" icon="android" href="/sdks/mobile/android/overview">
    Full Android SDK documentation
  </Card>
</CardGroup>

## Getting Help

* **Customer Success Manager** - Your primary contact for strategy and planning
* **[Technical Services](mailto:technical-services@permutive.com)** - Technical integration support
* **[Support](mailto:support@permutive.com)** - Troubleshooting and help
