Tracking setup for TONIC

This guide is for the search arbitrage provider TONIC.


Search arbitrage tracking in general can be quite tricky given the presence of keywords and various required data parameters.

Depending on how you want to pass this data, there are also multiple approaches.

Below we'll describe the basic setup using our offer source template, and the two approaches you can use for testing different keywords.


Creating the TONIC offer source

Firstly, create a new offer source and use our TONIC template.

Note the data passing section:

Here there are some very important things to consider:

  • We are passing adtitle and site using a {data-xxx} token. This means the values will come from your traffic source via the link you use there -- so it's important that your traffic source has corresponding URL tracking fields of title and site_id, and that these always pass appropriate values to TONIC. We are also passing network using a source_type value
  • So for the above, for any traffic source you are going to use with Tonic offers, make sure to manually add ad_title, source_type and site_id as URL tracking fields.
  • For ad_title, you should pass the title/headline of your ad, using a token, or manually. If you need to do this manually we'd recommend putting REPLACE as the token/placeholder
  • For site_id, likewise, pass some dynamic site ID value from the source
  • For source_type, Tonic requires you pass a lowercase text value from their list of approved sources. So you should set one of these as the placeholder (refer to Tonic for further guidance on this):
taboola
outbrain
yahoonative
mgid
revcontent
tiktok
facebook
twitter
website-facebook
website-tiktok
website-snapchat
website-pinterest
website-twitter
website-bingads
website-adwords
website-gdnnative
website-outbrain
website-taboola

Additionally:

  • We are passing our unique hit ID for tracking under subid4 - so the postback used in TONIC must pass this value back
  • Note that in Tonic, you set your own keywords on their side - so here, we are not dynamically passing keywords from the ads/traffic source or even at the offer level

Now, checking the conversion tracking tab, you can see the templated postback, which you should place at TONIC:

Here we are using {keyword} as the transaction ID, which will send back the converting keyword (that you set on the Tonic side).

This is important to:

  • Separate conversion events for different keywords, as they will be worth different revenues. We don't want conversion number two to overwrite conversion number one.
  • By passing it back in the tx parameter, you can use the "Transaction ID" attribute in reporting to see what keywords converted

Configuring traffic sources used

As mentioned earlier, we need to pass custom data (ad title and site IDs, and source type) from the traffic source, and it's these values that are passed through to TONIC.

Check the earlier picture -- we use the {data-ad_title}, {data-site_id} and {data-source_type} token.

So, I would recommend making a new traffic source dedicated to search arbitrage via Tonic, e.g. TikTok (TONIC). You can use the appropriate template, then add or adjust the parameters. Taking our TikTok template as an example:

Here I added site_id and set it to the placement token, and added the ad_title tracking field with REPLACE as the value. 

For source_type, I hardcoded it to one of the allowed values from Tonic.

Because TikTok has no ad titles/headlines, you would need to manually replace this in your URL, per ad, to pass an appropriate title parameter through.

Taking another example of Taboola:

Here, Taboola does have data passing for ad titles and site IDs. The ad_title and site_id fields already exist in our template, so I just added the source_type one and hardcoded it's value.

Note that we might change templates over time, and whether you could pass data automatically with tokens or not depends on the traffic source.

Facebook for example does not have site IDs, nor passing of headlines via the URL, so you would always need to manually configure data if doing search arbitrage between Facebook and TONIC.


Passing keyword data to offers

For TONIC offers, you would create an offer then use your arbitrage domain as the base page URL. The rest of the URL structure would be handled by the data passing section.

TONIC doesn't expect keywords to be passed (other search arbitrage partners do) -- rather you pass network/site/adtitle and they presumably generate search results based on this adtitle parameter.

So, there's two ways to vary these ad title values.

Option 1: Pass in the URL from the traffic source

This is the configuration you are using above.

With this, your offer would just be a single offer (the search arbitrage domain URL) and you would create different ads --> which can pass different ad title values --> generate different search results.

In reporting, you would break down by this ad title tracking field to analyse performance.

Option 2: Passing at the offer level

Now, since this is all data passing configured by the offer source/offer, you could instead opt to hard-code it at the offer level.

So you could create your offer, pick TONIC as the offer source, then go to data passing and add an offer-level override for the adtitle field, using the custom string option.

In this way you could create multiple offers for different ad titles and rotate these in your funnels like any offer.

Now, the values would not depend on your ads in the traffic source and are controlled inside FunnelFlux:

Now in reporting you could have your keywords separated into different offers.

The upside here is more control within FunnelFlux and being able to change these at any time or add/remove pages from rotation without touching your ads.

The downside is more manual work with creating offers and configuring your funnel, and potential lack of congruency between your ads and your search arbitrage pages.

You'll also need to consider compliance, and whether for sources with ad titles, the search arbitrage partner is OK with you passing various keywords that may not match the ad displayed to users.

Was this article helpful?