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
- Go to advertising.roku.com and click Get Started or Sign In.
- If you are a new advertiser, complete the registration form with your business details.
- Once approved, you will have access to the Roku Advertising Manager dashboard.
Register Your Application
- In the Roku Developer Console (developer.roku.com), navigate to Manage My Channels.
- If you have an existing Roku channel or app, note the App ID from the channel settings.
- If you are tracking web or mobile conversions (not a Roku channel), you can leave the
app_idfield 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
- In the Roku Advertising Manager, go to Account Settings > API Access.
- Note your Advertiser ID from the account settings page.
- Click Generate API Key to create a new key for server-side event delivery.
- 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
| Field | Required | Description |
|---|---|---|
advertiser_id | Yes | Your Roku advertiser ID. Found in the Roku Advertising Manager under Account Settings. |
api_key | Yes | API key for authenticating server-side event delivery. Generated in the Roku Advertising Manager under API Access. |
app_id | No | Optional Roku channel/app ID for app-specific conversion attribution. Found in the Roku Developer Console. |
Management UI Setup
- Go to Integrations > Add Integration > Roku.
- Enter your
advertiser_idandapi_key. - Optionally enter
app_idif attributing to a specific Roku channel. - Select consent categories (typically
advertising). - 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/eventsAllow 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 event | Roku event |
|---|---|
page | page_view |
Product Viewed | view_content |
Product Added | add_to_cart |
Order Completed | purchase |
To customise or extend, edit the integration’s Field Mappings in the Management UI.
Testing Your Integration
Step 1: Send a Test Event
- Trigger a page view or conversion event on your website or application.
- Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.
Step 2: Verify in Roku Advertising Manager
- In the Roku Advertising Manager, navigate to Reporting or Events.
- You should see events arriving within a few minutes.
- Verify that events are attributed to the correct campaign.
Step 3: Validate Cross-Screen Attribution
- If using
app_id, verify that conversions are attributed to the correct Roku channel. - Review cross-screen attribution reports to confirm web-to-CTV conversion tracking.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in Roku | Verify the advertiser_id and api_key are correct. Check that the API key has not been revoked. |
| Authentication errors | Regenerate the API key in Roku Advertising Manager and update the integration config in Signal. |
| App-specific attribution not working | Verify the app_id matches your registered Roku channel in the Developer Console. |
| Events delayed | Roku may take up to 15 minutes to display server-side events. Allow time before investigating further. |
Invalid advertiser error | Confirm your Roku Advertising account is active and the advertiser ID is correct. |
Visit Roku Advertising documentation for full API documentation and credential setup instructions.