Tracking Click to Call Campaigns with Ringba

Ringba is a call tracking platform often used for click-to-call campaigns.

Typically, their platform provides dynamic phone numbers that are embedded on a landing page using JavaScript.

Their JS snippet captures user info (like browser, IP etc.) and dynamically serves a number. When users call, they are able to match the information of the caller to previously captured data + the phone number served to accomplish tracking.

To integrate Ringba with FunnelFlux, you need to pass our hit ID to Ringba and send this back to us in a pixel/callback.

There's two ways to accomplish this and we'll go through the core setup + both approaches below.


Before you get started, you must have a Ringba Campaign with at least one Publisher and Tracking Number assigned to them. You will also need a page with a click-to-call action and the ability to add custom scripts. This page should be an offer in FunnelFlux.

Note: The Ringba Number assigned to the Publisher must be present on the webpage, Ringba's Call Tracking Tag will automatically replace it with a number from a Number Pool.

Core tracking setup in Ringba

Within Ringba, we first need to define URL parameters for data you want to track -- only hit ID is necessary, but you could technically add others like funnel ID, traffic source ID etc. if you really wanted to.

In the Ringba UI, go to Integrations > URL Parameters.

Here, add a new parameter:

Let's create a URL parameter of ffhit:

Now that this has been added, we want to ensure we pass ffhit to any pages where the Ringba code is running.

You can do this by creating an offer source for your Ringba offers and adding a field in the data passing, or do it at the offer level. 

We have an offer source template for Ringba (even though it's more of a platform not an offer source), which assumes you are using the ffhit parameter like above.

Note: since conversions will be happening on this page, it should be an offer in your funnel, not a lander.

Now that you have defined a URL parameter, add a pixel:

In the pixel section, give it a name and then use your FunnelFlux postback URL in the box. Here we then need to make it use the token for the FunnelFlux Hit ID URL parameter we created.

If you click tokens, you can see this in the list:

In general, you want to make sure your postback URL is something like:[URL param tag]&rev=[commission tag]&tx=[some useful transaction ID]

Taking my example above, after clicking these various items in the tokens dropdown, I get:[tag:FunnelFlux Hit ID:FunnelFlux Hit ID]&rev=[Call:ConversionPayout]&tx=[Call:ProviderCallId]

Additionally I turned on advanced options and selected "GET" as the HTTP method to ensure it does a normal postback.

Once you have that sorted, save!

Campaign setup in Ringba

Now that you have set up the basic tracking, you need to configure some basic campaign properties in Ringba.

Before starting this, you should have created a publisher, a number, and you will need a number pool for tracking data -- in addition to the single number.

From here, create a campaign. In the campaign, add your publisher and select their number.

Once you have done this, you can add a call tracking tag:

Here, Ringba rotates numbers to users dynamically and uses this to link user data with a call.

The generated tracking tag information will look like this:

Next, go down to URL parameters and add your previously created ffhit parameter. 

Then secondly, add your previously created tracking pixel.

Now you have two options -- will you be using a redirect link to send users to the offer page with Ringba code on it, or direct linking?

If you are using platforms like Google Ads you'd need to direct link. If you are using other traffic sources where you can redirect, your life is easier, or if you are using a lander before, the same.

Redirect-based links

If you can use a redirect link (including an action) to route users to your Ringba page, you can place the option 1 script above on your page and everything should work fine.

For your offer (or offer source), you just need to configure ffhit to pass hit ID, like so:

When a user is being redirected through FunnelFlux by a tracking or action link, the URL should have ...&ffhit=xxxxx in it, and Ringba will capture this parameter and send it in postbacks. Done!

Direct linking

Now, if users are getting to your page directly, where FunnelFlux JS is going to track the arriving visitor, you have a sequencing challenge.

You have Ringba JS on the page that loads, tracks the current URL, logs data and serves a call number to the user.

However, the FunnelFlux hit ID is not in the URL as it doesn't exist until tracking completes.

So, we need to use some JS to manipulate the flow here, and create this sequence:

  1. FunnelFlux JS loads and returns a hit ID in the response (not default behaviour)
  2. We update the browser URL to have ffhit=xxxx in it
  3. Once complete we tell the Ringba JS to load

This requires a few things:

  • Adding FunnelFlux and Ringba JS
  • Modifying FunnelFlux JS to return hit IDs
  • Making the Ringba JS not load automatically
  • Making a function to wait for the FunnelFlux JS to complete, then get the hit ID, update the URL, and then trigger the Ringba JS

Sound complex? Well, thankfully you can just steal our code.

Firstly, go back to your tracking tag and get the second option:

Within this JS, the important part you need is the ringba_com_tag value, as this is something unique to this tag.

You will need to replace this in the JS we provide.

On your page, here is the sequence of JS we want to achieve:

  1. Override for FunnelFlux JS defaults, telling it to return hit ID (not part of the normal response)
  2. Custom JS to wait for the FunnelFlux view, then update the URL, then trigger Ringba JS
  3. The universal FunnelFlux tracking snippet

Numbers 1/2 can be provided directly by us with a custom snippet, which you can find HERE.

So, take the custom code and replace the ringba_com_tag value in it with the value you have in your unique JS from the Ringba UI. We have set it as REPLACE_ME in our script to make it easier for you.

Place this completed script code on your lander before your universal FunnelFlux tracking snippet.

Now, to test, you should generate a direct link to your page from your funnel builder. You can use the "Full Direct URL" to test, and do so in an incognito window.

On load, you should see the URL update to add ffhit=value in it, and the Ringba JS will execute immediately afterward -- it will then update the phone number on your page and capture the ffhit value in the URL.

Note that this tracking would only work if FunnelFlux JS tracking is working, so it's important to ensure you use the correct links to send users to your page.

If you have any questions or need help with implementation, just reach out!

Was this article helpful?