Tracking setup for System1

This guide is for the search arbitrage provider System1. See their documentation here.

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

System1 has one of the more complex data passing configurations. Rather than passing IDs to them, which they fire in postbacks, they expect you to pass them pre-computed URL strings to call.

So instead of passing them something like click_id=xxx, they expect your to pass something like

Confused already? Be sure to follow the guide below and pay careful attention to the data passing setup.

Creating the System1 offer source

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

Note the data passing section:

Here there are some very important things to consider:

  • We are passing compkey and rskey 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 ad_title and keyword, and that these always pass appropriate values to System1
  • We are passing a postback URL under click_track_url - this will be fired by System1 later
  • We are passing another URL, in this case an action link, under search_track_url - this one is entirely optional and requires adding a dummy lander to our funnel. It will allow you to simulate CTR on the search arb page but is not particularly necessary, after all with search arb you will have high rates of views > conversions anyway, so intermediate clicks are not so important. It's your choice to add this or not. If you do add it, see the later section on tracking initial CTR.
  • The specific string for the above is https://{tracking-domain}/action/1?vid={visitor}&rn={current-node-id}

Note that because we pass pre-computed URLs to System1, there is nothing to do in the conversion tracking tab, and no postback to set on the System1 side.

Configuring traffic sources used

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

Check the earlier picture -- we use the {data-ad_title} and {data-keyword} token.

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

Here I added ad_title and set it to REPLACE, and added the keyword tracking field with REPLACE as the value as well.

Because TikTok has no ad titles/keywords, 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 titles so we can use that as is. However, there are no keywords again, so we should add a new keyword field and set it's value to REPLACE.

The goal here is to generate ad URLs and change data from REPLACE --> something else in those URLs. However, you can also override it at the offer level later, as below.

Passing keyword data to offers

For System1 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.

For each ad you run you'll be passing ad title and keyword values. There's two ways to vary these ad title/keyword 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 values --> generate different search arbitrage page 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 System1 as the offer source, then go to data passing and add an offer-level override for the compkey or rskey fields, using the custom string option.

In this way you could create multiple offers for different keywords 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.

Tracking initial CTR

This part is optional.

If you want, you can try to track the CTR of the initial search arbitrage page. If you don't want to do this, you can delete the search_track_url parameter from your System1 offer source.

So, in your funnel you can have the traffic node --> offer node (the System1 offer) --> dummy lander, like so:

The point of this is just to create the action, so that a click can actually happen on the offer page -- otherwise there's no way to trigger a clickthrough.

The dummy lander can be anything, but I would suggest making a new page like "Dummy CTR Page" and setting it's URL to something like

The page itself is not going to get loaded in the browser but we don't want to be potentially spamming some real website like or with lots of random server-side URL requests if System1's servers were to follow the redirect chain.

Now, when a user goes from your ad > FunnelFlux URL > System1 offer page, they will generally be presented with various buttons to click. On click, it will fire an action event to FunnelFlux, tracking a clickthrough. If they click something on the next page, then it will send a conversion.

This will give you some insight into the CTR of the initial page, which could be important for understanding angles/congruence. 

I would only recommend doing this if you really want the data, as it's extra steps/complication that you can otherwise avoid.

Was this article helpful?