Kayzen is a mobile-first demand-side platform (DSP) for performance advertising across mobile and Connected TV (CTV) apps. It enables advertisers, agencies, and app developers to run and optimize data-driven campaigns with full transparency, control, and real-time insights across global inventory.
The Kayzen platform supports a wide range of performance objectives across both mobile and CTV app environments, including user acquisition, app growth, lead generation, and more. Kayzen is accessible through both APIs and a self-serve user interface.
This article is for admin users. The tools used in the integration are included with all subscription packages.
This article contains the following sections:
- Integrating Ringba with Kayzen
- How to Integrate Your Ringba Account with Kayzen
- Kayzen Integration Resources and FAQ
Integrating Ringba with Kayzen
This guide explains how to configure Ringba to send tracking data about calls generated by your TV ads to Kayzen. This integration lets you see your call tracking data along with your other data in Kayzen for unified reporting.
In this integration, you set up pixels in your Ringba account to send tracking data about call events to a Kayzen API endpoint. You create six pixels in Ringba for six events in a call lifecycle. Each pixel includes Ringba's inbound call ID so Kayzen can associate all of the tracking data to the correct call.
Prerequisites
For this integration, you must have:
- Admin access in your Ringba account
- A Ringba campaign set up to manage your CTV call traffic, including a Ringba tracking number assigned to the campaign. This is the number you show in your TV ad.
Note: You should have exactly one tracking number per campaign/creative. - A Kayzen ad set up to show your tracking number.
- Your Kayzen API key. You can get this key from your Kayzen account manager.
How to Integrate Your Ringba Account with Kayzen
This section explains how to set up and test your Ringba pixels.
How to Set Up Your Pixels in Ringba
You set up six pixels for this integration. All six pixels send data to the same Kazen endpoint, but each is triggered by a different event in the call life cycle. The first five pixels cover the standard call life cycle, and the sixth is an exception path that helps diagnose call routing issues.
Use the following steps to create a pixel in your Ringba account:
- Navigate to Integrations > Pixels and click the Create Pixel button.
- Use the configuration information in the following sections and then click Create.
- Click Create Pixel again and complete the steps with the next set of configuration information.
Tip: Toggle on the Advanced Options switch to display HTTP Method field, which you need to set. - Repeat this process until all six pixels are complete.
The Pixels screen is straightforward and easy to use. You can learn more about pixels and find step-by-step instructions for creating them in the Pixels article.
Pixel 1: Incoming
This pixel fires as soon as the call appears in Ringba. This pixel sends information about every inbound call regardless of outcome.
Start the pixel creation process and enter the following information in the fields:
- Name: Kayzen CTV - Incoming Postback
- Fire Pixel On: Incoming
- HTTP Method: GET
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Pixel 2: Connected
This pixel fires when the call is answered by a call center agent. This pixel always fires fewer times than pixel 1, since this Connected pixel does not fire unless the incoming call is answered.
- Name: Kayzen CTV - Connected Postback
- Fire Pixel On: Connected (Answered)
- HTTP Method: GET
- URL:
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Pixel 3: Call Complete
This pixel fires when the call ends after connecting to a target. This pixel sends some of the same information as the Connected pixel.
- Name: Kayzen CTV - Completed Postback
- Fire Pixel On: Completed
- HTTP Method: GET
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Pixel 4: Call Converted
This pixel fires only when the call meets your campaign's conversion criteria. For example, if you set your campaign to identify a call as "converted" if it lasts 120 seconds, then this pixel fires once the call has been connected for 120 seconds. This pixel sends the conversion_amount (gross revenue including margin) to Kayzen.
- Name: Kayzen CTV - Converted Postback
- Fire Pixel On: Converted
- HTTP Method: GET
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Pixel 5: Payout
This pixel fires when a payout is credited to the publisher. Not all converted calls generate a payout. Check your Ringba campaign settings if you expect payout events but are not receiving them.
- Name: Kayzen CTV - Payout Postback
- Fire Pixel On: Payout
- HTTP Method: GET
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Pixel 6: Error
This pixel fires when Ringba encounters a system error while trying to route or connect the call. For example, if Ringba dials the target's number and the target system responds with an error instead of picking up, then this pixel fires.
- Name: Kayzen CTV - Error Postback
- Fire Pixel On: Error
- HTTP Method: GET
-
URL:
https://api-events.eventstracker.io/v1/ev?tp=ringba&api_key=KAYZEN_PROVIDED&app_event=incoming&caller_id=[Call:CallerNumber]&number=[Call:NumberDialed]&call_id=[Call:InboundCallId]&event_ts=[Call:CallDateTime]&is_duplicate=[Call:IsDuplicate]&caller_state=[tag:InboundNumber:State]&can_claim=1
Important: Replace KAYZEN_PROVIDED in this URL with the API key you received from Kayzen.
Note: Revenue, duration, and the duplicate flag are not available on Error calls because the call never reached the stage where those values exist. Error events do not contribute to conversion or revenue reporting; they are diagnostic only. If you see a high volume of Error events, contact Ringba Support or your Ringba account manager to investigate the target routing configuration.
How to Add Your Pixels to Your Campaign
Use the following steps to add the six pixels you just created to your Ringba campaign:
- in Ringba, navigate to Campaigns and open the campaign that manages the calls you're getting from your CTV campaign.
- Scroll to the Tracking Pixels section and click Add Pixel.
- Select one of the six tracking pixels and click Add. Repeat for the remaining five pixels.
- Save the campaign.
How to Test Your Setup
After creating all six pixels and adding them to your Ringba campaign, use the following steps to confirm the integration is working:
- Place a test call to the Ringba tracking number that appears in your CTV campaign.
- In Ringba, navigate to Reporting > Default to open the Reporting screen.
- Scroll to the Call Details section and find the row with your test call.
Tip: If you have a lot of rows, you can use the filtering tools at the top of the Reporting screen to help you find the row for your test call. - Click the down arrow on the left side of the row to expand the call row. The Events tab is open by default.
- Scroll through the events and look for the Pixel Fire events. The Error pixel will only appear if the test call encountered a routing error.
- Confirm each Pixel Fire event shows 200 as the Response Status Code.
A non-200 status indicates Kayzen's endpoint rejected the request. If this happens, contact Kayzen support with a screenshot of the pixel fire logs. - Share the test call's inbound call ID with your Kayzen account manager so they can verify that Kayzen is successfully receiving the data from all the pixels.
Tip: The inbound call ID is available as a column in the Call Details report. If you don't see it, you may need to enable the column. See How do I find the Inbound Call ID? for step-by-step instructions.
Troubleshooting, Resources, and FAQ
What should I do if the call event aren't appearing in Kayzen?
Check that all six pixels are added to the Ringba campaign. Verify that you replaced the value of the api_key parameter in the pixel URL with the value Kayzen provided.
What do I do if my pixel test doesn't show 200 status?
The postback URL might have a formatting error. Try copying the URL from this article again and making sure you didn't leave any parts of it out or introduce line breaks. Don't forget to replace the value of the api_key parameter with the value Kayzen provided.
Ringba's reporting is showing more calls than Kayzen. Is that a problem?
No, this may be fine. Ringba's reporting includes calls that were blocked before they fired any pixel, so Kayzen would not have any information about these calls. Calls might be blocked for a number of reasons. See these articles for more information about reasons a call might be blocked:
- What is Stir/Shaken Attestation?
- TCPA Shield by Ringba [Video]
- Duplicate Call Routing - Buyers and Duplicate Call Routing - Targets
- The Spam Filter section within the Campaign Filters Tab section of the Campaigns article.
Why aren't my Converted events appearing in Kayzen?
Converted only fires when the call meets the campaign conversion threshold. Confirm your conversion criteria is set in Ringba.
Also check whether the call is a duplicate, since duplicate calls might not convert depending on your campaign settings.
Why am I seeing 0.00 revenue on calls?
The revenue value comes from your Ringba campaign configuration. If you're seeing 0.00 in Kayzen, your Ringba campaign might not be correctly configured. Contact your Ringba account manager or Ringba Support if you need help.
What do I do if I have a lot of Error events?
The error pixel fires when there's a problem getting the call connected to a target. Contact your Ringba account manager or Ringba Support if you need help.
How do I get help with issues during setup?
Please reach out to your Kayzen account manager or contact Kayzen support. When reporting an issue, include:
- A screenshot of the pixel fire log from Ringba's Call Details report
- The call_id of the test call
- The HTTP status code returned for each pixel
What should I do if I need help with my pixels?
If you have any questions or need additional help, please reach out to our support team via chat or email at support@ringba.com.