CallGrid

Roku Ads Manager Conversions API Integration

Send call conversions from CallGrid to Roku Ads Manager with the Roku Advertising webhook template, and test that they arrive.

Updated 5 min read

Browse the knowledge base
On this page

Roku Ads Manager is a self-service connected TV (CTV) advertising platform. CallGrid's Roku Advertising webhook template sends call conversions to Roku's Conversions API (CAPI) so advertisers can measure and optimize CTV campaigns against real phone-call outcomes.

The webhook fires server to server on the call event you choose. The template sends a LEAD event with the caller's phone number hashed as [[hash:InboundNumberNoPlus]], event_time from [[tag:UTCUnixTime]], and the visitor IP address and user agent tags. Its only fields are API Key and event_group_id.


Prerequisites#

  • Admin access in CallGrid.
  • Organization or Account Admin access in Roku Ads Manager.
  • Your Roku Event Group ID.
  • A Roku CAPI API key (bearer token).

Find the Roku Event Group ID#

Roku's interface is third party and may change; if a step below does not match what you see, use the help in Roku Ads Manager for the current Events page.

  1. Sign in to Roku Ads Manager at https://ads.roku.com.
  2. Open the Events page (https://ads.roku.com/pixels).
  3. Find or create the Event Group you want to use.
  4. Copy the Event Group ID.

Generate the Roku CAPI API key#

  1. On the Events page, select CAPI.
  2. Click Generate an API key (requires Organization or Account Admin in Roku).
  3. Copy the key.

If a key is compromised, revoke it in Roku, create a new one and update the CallGrid webhook.


Setup#

Create the webhook, optionally limit which calls it reports, then attach it to each campaign that carries Roku traffic.

1. Create the webhook#

Webhook Event dropdown
  1. In CallGrid, go to Integrations > Webhooks and click New Webhook.
  2. Name: a descriptive name, for example Roku CAPI - Converted.
  3. Event: the call event that counts as a Roku conversion. Common choices:
    • Call Inbound: every inbound call.
    • Call Answered: when the destination answers.
    • Call Billable: when the call meets the billable criteria.
    • Call Converted: when the call is marked converted, for example by a postback.
  4. Template Mode: choose Conversion Pixel (or All), then select Roku Advertising.
  5. Fill the template fields:
    • API Key: the Roku CAPI API key.
    • event_group_id: the Roku Event Group ID.
  6. Click Save Webhook.

The template builds the request to Roku's Conversions API, maps call data and sends the API key as a bearer token. No manual JSON or headers are needed.

All webhook events: Call Inbound, Call Initiated, Call Ended, Call Error, Call Answered, Call Billable, Call Paid, Call Converted, Insights Completed, Transcription Completed, Recording Completed, Bid Received, Postback Received.

Transitions: billable, paid and converted webhooks fire when a call transitions into that state, including through a bulk edit in Reports or PATCH /api/call. Correcting past calls to billable can therefore send conversions to Roku for those calls.

2. Limit which calls report (optional)#

To send only some traffic to Roku, for example one vendor's CTV sources:

  • Recommended: attach the webhook only to the campaigns that carry Roku traffic (step 3), or split Roku sources into their own campaign.
  • Per-webhook tag filters: integration webhooks support tag filters (for example SourceName, BuyerName, CampaignName or InboundState) so the webhook fires only for matching calls. Buyer and destination tags exist only from Call Initiated onward, not on Call Inbound.

3. Attach the webhook to the campaign#

A webhook fires only on campaigns it is attached to.

  1. Go to Campaigns and open the campaign that receives Roku traffic.
  2. On the General tab, add the Roku webhook in the Webhooks field.
  3. Save the campaign.

Repeat for each campaign that should report to Roku.


Testing#

  1. Open the webhook, fill in the Test Variables for the detected tags under Webhook Testing, and click Run Webhook.
  2. Confirm the response returns a success status.
  3. Check Roku Ads Manager for the conversion. Test events can take time to appear.
  4. For an end-to-end check, place a live test call into a campaign with the webhook attached, let it reach the chosen event, and confirm the conversion lands in Roku.

What CallGrid sends to Roku#

The template sends a POST to Roku's Conversions API endpoint (https://events.ads.rokuapi.net/v1/events) with the header Authorization: Bearer <API Key> and one event:

Roku field

Value sent

event_group_id

The event_group_id you entered

event_name

LEAD

event_type

conversion

event_source

other

event_time

[[tag:UTCUnixTime]]

user_data.is_hashed

true

user_data.ph

[[hash:InboundNumberNoPlus]] (SHA-256 hash of the caller's number)

user_data.client_ip_address

[[tag:VisitorIpAddress]]

user_data.client_user_agent

[[tag:VisitorUserAgent]]

Macro reference: [[tag:Name]] inserts a tag value, [[hash:Name]] a SHA-256 hash, [[lchash:Name]] a SHA-256 of the lowercased, whitespace-stripped value, [[number:Name]] a numeric value, [[b64:value]] the base64 of a tag's value when a tag with that name exists, otherwise of the text itself.

Other webhook options#

  • Timeout: configure the request timeout on the webhook. The default is 5 seconds.
  • Authorization: for endpoints that need an OAuth token fetch before the main request. Not needed for Roku, which uses the static API key.
  • Use Static IP: sends requests from 3.232.249.88 and 54.160.65.103 for endpoints that allowlist IPs. Not normally needed for Roku.

Best practices#

  • Match the Event to the advertiser's conversion definition: Call Billable or Call Converted for qualified calls, Call Inbound for every call.
  • Attach the webhook only to campaigns carrying Roku traffic so unrelated calls do not inflate CTV conversions.
  • Confirm the webhook is attached to every Roku campaign; an unattached webhook never fires.
  • Keep the Event Group ID and API key current; update the webhook after rotating the key.
  • Test with a live call before scaling spend.

Troubleshooting#

Symptom

Check

No conversions in Roku

Webhook attached on the campaign General tab; correct Event; calls actually reach that event

401 or authentication errors

API key pasted without spaces and not revoked in Roku

Conversions in the wrong Event Group

Event Group ID matches the group you are viewing in Roku

Too many or too few conversions

Event choice; which campaigns the webhook is attached to

Conversions appear late

Roku reporting delay; allow time before assuming failure

A burst of conversions for old calls

Calls bulk-edited to billable or converted fire transition webhooks

Getting help#

Contact CallGrid support through live chat in the dashboard or at support@callgrid.com.

Do it with AI#

Ask Griddy, Claude or ChatGPT. Try: "Did the Roku webhook fire on my last billable call, and what status did Roku return?" Claude and ChatGPT need the CallGrid connector turned on (setup guides for Claude and ChatGPT).

The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.

Was this article helpful?

Still stuck on a setup step?

Email support@callgrid.com with this article and where it stopped matching. A CallGrid specialist will help you get it working.