> For the complete documentation index, see [llms.txt](https://help.branch.io/llms.txt).

# Enable Roku SAN (New)

> Integrate Roku Ads Manager with Branch for optimized ad campaigns, tracking installs, and in-app events seamlessly.

## Overview

Roku Ads Manager is Roku's self-attributing network (SAN), providing third-party measurement partners with access to attribution data for installs and in-app events for advertisers running campaigns on Roku's streaming media platform. This integration enables Branch to receive attribution data from Roku Ads Manager and forward conversion events for campaign optimization, audience segmentation, and retargeting.

As a SAN, Roku reports attribution to Branch directly via its API. For more information about integrating ad partners in general, visit our [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

> **Note: this guide is for new Branch**
>
> Please note that this guide is about integrating Roku in the [new Branch experience](https://help.branch.io/marketer-hub/new-branch-overview.md). For information on Roku in legacy Branch, visit our [legacy guide](https://help.branch.io/marketer-hub/roku.md).

### Partner capabilities

| Capability | Details |
| --- | --- |
| Company type | Self-attributing network (SAN) |
| Deep linking | Not supported |
| Attribution | Click-through, view-through |
| Ad campaign types | Video ads |
| Supported platforms | Roku OS (CTV/OTT) |
| Cost ingestion support | Supported (via API) |
| Pricing models | CPM |
| Engagement Builder Ad Partner Integration | Not available |

> **Caution**
>
> Cost ingestion via API is currently available only for Roku self-serve advertisers. Support for managed service (direct IO) advertisers is planned for a future release when the Roku Ads API expands to support reporting for managed service activity.

## Before you begin

To set up the Roku SAN integration, you need:

- Branch's **Household Measurement** enabled for your Branch account. Household Measurement requires a premium plan. Contact your Branch account manager or visit <https://branch.io/pricing>.
- A Branch account with access to **Configuration > Ad Partners** and admin permissions to enable and configure integrations.
- A Roku Ads Manager account with admin access.

## Enable Roku SAN

Enabling Roku SAN involves two steps: obtaining a Roku Event Group ID and connecting your account in Branch. You can obtain an Event Group ID either through Roku Ads Manager or through Roku managed services.

### Find your Roku Event Group ID

#### Via Roku Ads Manager

To obtain an Event Group ID through Roku Ads Manager:

1. Sign in to [Roku Ads Manager](https://ads.roku.com/campaigns).
2. Navigate to the Events page.
3. Identify an existing Event Group or create a new one.
4. Copy the Event Group ID.
5. Email Roku at [adsmanagersupport@roku.com](mailto:adsmanagersupport@roku.com) with the following information:

   - Your MMP name: **Branch**
   - Your Event Group ID

#### Via managed services

If you are using Roku managed services, Roku will provide your Event Group ID directly. Contact your Roku representative to request it.

### Connect Roku SAN in Branch

To begin, navigate to **Configuration > Ad Partners > Roku SAN**.

> **Caution: select the correct partner**
>
> Search for and select **Roku SAN**. Do not select the **Roku** option (it is a separate integration).

1. Enter your **Roku SAN user name** and **Roku SAN user ID**.
2. Under **Account Settings**, enter your **Roku Event Group ID**.
3. Select **Save**.

## Integrate the Branch Roku SDK

To measure in-app events and forward them to Roku Ads Manager, your development team must integrate the Branch Roku SDK into your Roku app. Without SDK integration, Branch cannot receive in-app event data to forward to Roku.

Your development team will need your Branch Key, which you can find at **Configuration > Security & Access >** [**Credentials**](https://help.branch.io/account-hub/credentials-new.md).

For full SDK implementation instructions, visit Developer Hub:

- [Roku SDK: Basic Integration](https://help.branch.io/developer-hub/sdk-roku-basic-integration.md)
- [Roku SDK reference](https://help.branch.io/developer-hub/sdk-roku-full-reference.md)

## Configure attribution

To configure attribution windows, select the **Attribution windows** tab on the Roku SAN page.

To minimize discrepancies when comparing Branch and Roku Ads Manager reporting, match your Branch attribution windows to the settings in your Roku Ads Manager account.

| Attribution type | Default | Roku's recommendation |
| --- | --- | --- |
| Click to session start | 1 day | 1 day |
| Click to install | 7 days | 7 days |
| Click to conversion event | 1 day | 1 day |
| Impression to session start | 1 day | 1 day |
| Impression to install | 1 day | 1 day |
| Impression to conversion event | 1 day | 1 day |
| Deep linking duration | 120 minutes | — |

## Configure events

To configure event mappings, select the **Event config** tab on the Roku SAN page.

Branch forwards in-app events to Roku Ads Manager based on the mappings configured here. For guidance on setting up event mappings, see the general [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md#map-events).

> **Note: event forwarding delay**
>
> Events can take up to 4 hours to appear in Roku Ads Manager after being forwarded from Branch.

## Verify your data

After enabling the integration and running campaigns, verify that attribution data is flowing correctly.

- **In Branch** [**Liveview**](https://app.branch.io/testing-and-monitoring/events): confirm that events from your app appear in real time. This is the fastest way to confirm SDK events are firing.
- **In Branch** [**Analysis dashboards**](https://help.branch.io/marketer-hub/analysis-data-sources-new.md#skadnetwork): review attributed installs, events, and cost data where `Ad Partner Name = OTT Roku SAN`.
- **In Roku Ads Manager**: Confirm that forwarded events are appearing in your Roku Ads Manager attribution reporting.

## Data mappings

### Campaign data

Branch maps the following data fields from Roku to Branch.

| Branch field | Roku data | Possible values |
| --- | --- | --- |
| `~advertising_partner_name` | — | `OTT Roku SAN` |
| `last_attributed_touch_type` | Touch Type | CLICK or IMPRESSION |
| `~advertising_account_id` | Account ID | The ID of your Roku Ads Manager account |
| `~advertising_account_name` | Account Name | The name of your Roku Ads Manager account |
| `~campaign_id` | Campaign ID | The ID of your Roku campaign |
| `~campaign` | Campaign Name | The name of your Roku campaign |
| `~creative_id` | Creative ID | The ID of your Roku creative |
| `~creative_name` | Creative Name | The name of your Roku creative |
| `~ad_set_id` | Flight ID | The ID of the Roku line item |
| `~ad_set_name` | Flight Name | The name of the Roku line item |
| `last_attributed_touch_timestamp` | Timestamp | Timestamp of the ad impression or click |

### Event names

Branch forwards in-app events to Roku using the following event name mappings. Configure these on the **Event config** tab.

| Branch event name | Roku event name |
| --- | --- |
| ACHIEVE_LEVEL | ACHIEVE_LEVEL |
| ADD_PAYMENT_INFO | ADD_PAYMENT_INFO |
| ADD_TO_CART | ADD_TO_CART |
| ADD_TO_WISHLIST | ADD_TO_WISHLIST |
| COMPLETE_REGISTRATION | COMPLETE_REGISTRATION |
| COMPLETE_REGISTRATION | SIGN_UP |
| CONTACT | CONTACT |
| CUSTOMIZE_PRODUCT | CUSTOMIZE_PRODUCT |
| DONATE | DONATE |
| DOWNLOAD | DOWNLOAD |
| FIND_LOCATION | FIND_LOCATION |
| FIRST_VIDEO_VIEW | FIRST_VIDEO_VIEW |
| INITIATE_PURCHASE | INITIATE_CHECKOUT |
| INITIATE_STREAM | VIDEO_STREAM |
| INSTALL | APP_INSTALL |
| LEAD | LEAD |
| OPEN | SESSION_START |
| PAGEVIEW | PAGE_VIEW |
| PURCHASE | EST_TRANSACTION |
| PURCHASE | PURCHASE |
| QSS | QSS |
| SCHEDULE | SCHEDULE |
| SEARCH | SEARCH |
| SEARCH | TEXT_SEARCH |
| START_TRIAL | START_TRIAL |
| SUBMIT_APPLICATION | SUBMIT_APPLICATION |
| SUBSCRIBE | SUBSCRIBE |
| SUBSCRIBE | SUBSCRIPTION_RENEWAL |
| SUBSCRIPTION_CANCELLATION | SUBSCRIPTION_CANCELLATION |
| UNLOCK_ACHIEVEMENT | UNLOCK_ACHIEVEMENT |
| VIDEO_VIEW | VIDEO_VIEW |
| VIEW_AD | AD_INITIATED |
| VIEW_AD | AD_VIEW |
| VIEW_CONTENT | VIEW_CONTENT |
| VIEW_CART | VIEW_CART |
| VOICE_SEARCH | VOICE_SEARCH |

## Data limitations

Roku last-attributed data is wiped at the log level. This means Roku attribution data will appear as **null/blank** in [Custom Exports](https://help.branch.io/apidocs/custom-exports/overview.md) and [Daily Exports](https://help.branch.io/apidocs/daily-exports/overview.md). Roku attribution data is still accessible through aggregate exports via the [Aggregate API](https://help.branch.io/apidocs/aggregate/overview.md) or [Query API](https://help.branch.io/apidocs/query/overview.md).

To configure your Branch time zone setting, navigate to **Configuration > App Settings >** [**General**](https://help.branch.io/account-hub/general-new.md#timezone).

## Troubleshooting

> **Attribution data is not appearing in Branch**
>
> If attribution data from Roku is not appearing in Branch, check the following:
>
> - Confirm that Household Measurement is enabled for your Branch account.
> - Verify that you selected **Roku SAN** (not **Roku**) in Branch and that you are looking for `Ad Partner = Roku SAN` in analytics.
> - Confirm that your Roku Event Group ID is entered correctly in Branch. Navigate to **Configuration > Ad Partners > Roku SAN** and select **Partner settings** to verify your credentials.
> - Ensure you emailed Roku ([adsmanagersupport@roku.com](mailto:adsmanagersupport@roku.com)) your MMP name (Branch) and Event Group ID if using Roku Ads Manager. Attribution will not flow until Roku has activated the MMP connection.

> **Events are not appearing in Roku Ads Manager**
>
> If events forwarded from Branch are not appearing in Roku Ads Manager:
>
> - Confirm that event mappings are configured on the **Event config** tab and that **Save Changes** was selected after mapping.
> - Allow up to 4 hours for events to appear in Roku Ads Manager after they are forwarded from Branch.
> - Verify that the Branch BrightScript SDK is correctly integrated in your Roku app and that events are firing. Use [Branch Liveview](https://app.branch.io/testing-and-monitoring/events) to confirm events are being received by Branch.

> **Roku attribution data appears as null in exports**
>
> This is expected behavior. Roku last-attributed data is wiped at the log level and will appear as null/blank in Custom Exports and Daily Exports. To access Roku attribution data, use the [Aggregate API](https://help.branch.io/apidocs/aggregate/overview.md) or [Query API](https://help.branch.io/apidocs/query/overview.md) instead.

## Additional resources

For more information on the Roku SAN integration and related topics, see the following articles:

- [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md)
- [Household Measurement Overview](https://help.branch.io/marketer-hub/household-measurement.md)
- [Roku SDK: Basic Integration](https://help.branch.io/developer-hub/sdk-roku-basic-integration.md)
- [Roku SDK Reference](https://help.branch.io/developer-hub/sdk-roku-full-reference.md)
