Skip to content
adscapi

Roku CAPI Payload Preview

The server-side request adscapi builds when you track() a purchase and Roku is configured. Secrets and hashed values show as placeholders.

Request

POST
Endpoint
https://events.ads.rokuapi.net/v1/events
Headers
Authorization: Bearer {ROKU_ADS_TOKEN}
Accept: application/json
Content-Type: application/json
Body (purchase example)
{
  "event_group_id": "{ROKU_EVENT_GROUP_ID}",
  "events": [
    {
      "event_id": "order_1001",
      "event_name": "PURCHASE",
      "event_type": "conversion",
      "event_time": 1739452800,
      "event_source": "website",
      "user_data": {
        "is_hashed": true,
        "em": "<sha256(normalized-email)>",
        "ph": "<sha256(e164-phone)>",
        "client_ip_address": "203.0.113.10"
      },
      "custom_data": {
        "value": 49.99,
        "currency": "USD",
        "order_id": "order_1001"
      }
    }
  ]
}

Verified against the library dispatcher (src/dispatchers/roku.ts). See the Roku setup guide for where to get each secret.

Required secrets

ROKU_ADS_TOKENROKU_EVENT_GROUP_ID

Roku activates when every secret is present. One missing key and the platform no-ops — the rest still receive the event.

Event-name mapping

Canonical eventRoku receives
page_viewPAGE_VIEW
leadLEAD
signup_startSIGN_UP
signupSIGN_UP
checkout_createdINITIATE_CHECKOUT
purchasePURCHASE
reply_generatedreply_generated (custom event passthrough)
upgrade_clickedupgrade_clicked (custom event passthrough)

Good to know

  • Single-event batch: one event wrapped in events[] with event_group_id at the top level; Roku accepts up to 1000 per request.
  • user_data.em and .ph are single SHA-256 strings (not arrays) under is_hashed:true; plus-addressing is stripped from the email before hashing, matching Roku.
  • IP and external_id go raw; all user_data fields send only with adUserData consent.
  • event_id deduplicates repeats within a 10-minute window.

Frequently Asked Questions

Related Tools

Discover more free tools to fix your tracking

Event Payload Playground

Pick a canonical conversion event, fill the fields, and see the exact JSON payload adscapi builds — before you write a line of code.

Try it now

PII Hash Previewer

Type a raw email or phone number and see the normalized value plus its SHA-256 hash — the exact rules adscapi applies per platform. Nothing leaves the browser.

Try it now

Platform Coverage Explorer

Search all 26 ad platforms adscapi dispatches to — support level, required secrets, and setup docs, always in sync with the library registry.

Try it now

Ready to track Roku conversions server-side?

adscapi is free and open source. Set your platform tokens, call track() once, and every configured Conversions API receives the event — hashed the way each platform expects.