Roku

Datafly Signal delivers conversion events to Roku server-to-server for CTV and streaming ad attribution, audience measurement, and cross-screen campaign performance analysis.

Why route Roku through Datafly Signal

  • Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Roku optimises against are not filtered by the browser.
  • Email and phone number are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Roku receives match keys rather than raw personal data.
  • Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Roku needs to attribute the event to the right session.
  • Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Roku rate limit, and retries on 429 or transient failure rather than dropping the event.
  • Presets for Retail and Media & Subscription. The mapping starts from a working configuration for your vertical instead of a blank field map.
  • One consent decision governs every destination. Roku is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
  • No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.

Prerequisites

Before configuring Roku in Signal, you need a Roku Advertising account with your application registered and API credentials generated.

Create a Roku Advertising Account

  1. Go to advertising.roku.com and click Get Started or Sign In.
  2. If you are a new advertiser, complete the registration form with your business details.
  3. Once approved, you will have access to the Roku Advertising Manager dashboard.

Register Your Application

  1. In the Roku Developer Console (developer.roku.com), navigate to Manage My Channels.
  2. If you have an existing Roku channel or app, note the App ID from the channel settings.
  3. If you are tracking web or mobile conversions (not a Roku channel), you can leave the app_id field empty in Signal — it is optional.

The app_id field is optional. It is only required when attributing conversions to a specific Roku channel or application. For web-based conversion tracking, you can omit it.

Get API Credentials

  1. In the Roku Advertising Manager, go to Account Settings > API Access.
  2. Note your Advertiser ID from the account settings page.
  3. Click Generate API Key to create a new key for server-side event delivery.
  4. Copy the API Key immediately — it may only be shown once.
⚠️

Store the API key securely. If you lose it, you will need to generate a new one.

Configure in Signal

Now that you have your Advertiser ID and API key, configure the integration in Signal.

Configuration Fields

FieldRequiredDescription
advertiser_idYesYour Roku advertiser ID. Found in the Roku Advertising Manager under Account Settings.
api_keyYesAPI key for authenticating server-side event delivery. Generated in the Roku Advertising Manager under API Access.
app_idNoOptional Roku channel/app ID for app-specific conversion attribution. Found in the Roku Developer Console.

Management UI Setup

  1. Go to Integrations > Add Integration > Roku.
  2. Enter your advertiser_id and api_key.
  3. Optionally enter app_id if attributing to a specific Roku channel.
  4. Select consent categories (typically advertising).
  5. Click Save.

Management API Setup

curl -X POST http://localhost:8084/v1/admin/integrations \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source_id": "src_abc123",
    "vendor": "roku",
    "name": "Roku Production",
    "enabled": true,
    "config": {
      "advertiser_id": "roku-adv-12345",
      "api_key": "ak_roku_abc123..."
    },
    "consent_categories": ["advertising"]
  }'

API endpoint

POST https://events.ads.rokuapi.net/v1/events

Allow egress to events.ads.rokuapi.net from the network your delivery workers run on.

Event Mapping

The default Retail preset maps a minimal set of conversion events:

Signal eventRoku event
pagepage_view
Product Viewedview_content
Product Addedadd_to_cart
Order Completedpurchase

To customise or extend, edit the integration’s Field Mappings in the Management UI.

Testing Your Integration

Step 1: Send a Test Event

  1. Trigger a page view or conversion event on your website or application.
  2. Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.

Step 2: Verify in Roku Advertising Manager

  1. In the Roku Advertising Manager, navigate to Reporting or Events.
  2. You should see events arriving within a few minutes.
  3. Verify that events are attributed to the correct campaign.

Step 3: Validate Cross-Screen Attribution

  1. If using app_id, verify that conversions are attributed to the correct Roku channel.
  2. Review cross-screen attribution reports to confirm web-to-CTV conversion tracking.

Troubleshooting

ProblemSolution
Events not appearing in RokuVerify the advertiser_id and api_key are correct. Check that the API key has not been revoked.
Authentication errorsRegenerate the API key in Roku Advertising Manager and update the integration config in Signal.
App-specific attribution not workingVerify the app_id matches your registered Roku channel in the Developer Console.
Events delayedRoku may take up to 15 minutes to display server-side events. Allow time before investigating further.
Invalid advertiser errorConfirm your Roku Advertising account is active and the advertiser ID is correct.

Visit Roku Advertising documentation for full API documentation and credential setup instructions.