Skip to main content
FlexOffers and ClickFlare Integration FlexOffers is an affiliate network for advertiser programs, mostly paid as a commission on each sale. As a publisher you apply to each program, then copy your tracking link for it from your FlexOffers account. To track FlexOffers offers in ClickFlare, two links have to carry the ClickFlare click ID in both directions:
  • The offer URL sends the ClickFlare click ID to FlexOffers in fobs.
  • The postback URL sends it back to ClickFlare with every transaction, together with your commission and the order number. FlexOffers calls it a global postback URL: you set it once and it covers all your programs.
This guide covers the setup, why the payout must be #ca# and not #sa#, what to use as the transaction ID, and how to check that it all works.
Only need the two values? The Click ID & postback macros page has them ready to copy with your tracking domain.

At a glance

To set up FlexOffers with ClickFlare:
  1. Set the domain and reporting time.
  2. Create the FlexOffers affiliate network.
  3. Create the offer.
  4. Add the global postback.
Each step is explained in Setup.

How the data flows

The two links mirror each other:
Offer URL = their parameter + your token. Postback URL = your parameter + their variable. FlexOffers writes the click ID into fobs on the way in and reads it back with #fobs# on the way out. FlexOffers variables are wrapped in #, not braces.

What you’ll need

  • An active ClickFlare account with your own tracking domain set up. Shared domains get flagged by networks and blocked by browsers. See Tracking domains.
  • An approved FlexOffers publisher account, approved in the programs you want to promote.
  • Access to Flex Apps → Postback URLs in your FlexOffers account.

What the FlexOffers template contains

ClickFlare has a FlexOffers affiliate network template. It fills in the FlexOffers variables ClickFlare needs. The FlexOffers template in ClickFlare: Click Id is #fobs#, Payout is #ca# and Transaction ID is #on#
Make sure Payout is #ca#. #sa# is the sale amount, the value of the whole order. With #sa#, ClickFlare records the customer’s order value as your revenue, and ROI looks far better than it is. Older copies of the template used #sa#, so check affiliate networks you created before.

Setup

Everything in ClickFlare is done from inside the campaign editor. Create the offer and the affiliate network inline as you go.
1

Set up your own tracking domain

Add a custom tracking domain before anything else, for example trk.yourdomain.com. The postback URL is built on this domain, so changing it later means updating the postback in FlexOffers too. See Tracking domains.
2

Report conversions by postback time

Go to Settings → General Settings and set Conversion registration time reporting to Postback Timestamp.FlexOffers reports a transaction on the day it happened. With the default Visit Timestamp, ClickFlare reports it on the day of the original click, so a sale that comes in days later lands on a different date in each platform. See Conversion registration time.
This is an account-wide setting. It changes the date conversions are reported on for every campaign.
3

Create the campaign

Go to Campaigns → New Campaign, choose Redirect tracking, pick your traffic source and select your tracking domain. See Creating a campaign.
4

Create the FlexOffers affiliate network

While creating the offer for the campaign, create a new affiliate network in its Affiliate Network field. You can also create it first under Affiliate Networks → + New. Either way:
  1. Search for FlexOffers and pick the FlexOffers template.
  2. Name it, for example “FlexOffers”. The global postback covers every program, so one affiliate network is enough.
  3. Check that Click Id is #fobs#, Payout is #ca# and Transaction ID is #on#.
  4. Leave Event Type empty.
  5. Under Conversion tracking, select your own Tracking Domain and keep S2S Postback URL as the tracking method.
  6. Set Payout currency to the currency FlexOffers pays you in.
ClickFlare builds the postback URL from these fields:
The Conversion tracking section of the FlexOffers network in ClickFlare, with the generated postback URL: click_id=#fobs#&payout=#ca#&txid=#on#Copy the postback URL and save the network.
5

Get the tracking link from FlexOffers

In your FlexOffers account, copy the tracking link for the program you want to promote. FlexOffers ties postbacks to the traffic sources registered in your account, so note which traffic source the link belongs to.
6

Create the offer in ClickFlare

In the offer form:
  1. Name the offer, for example after the advertiser.
  2. Select the FlexOffers affiliate network you just created.
  3. Paste the FlexOffers link into Offer URL and turn on Append Click ID to Offer Url. ClickFlare adds fobs={cf_click_id} from the template. You can also add &fobs={cf_click_id} yourself. Use one or the other, not both. The Offer URL field of the ClickFlare New Offer form with a FlexOffers link ending in fobs={cf_click_id}
Write {cf_click_id} with braces. Without them FlexOffers stores the literal text cf_click_id, the postback returns that text, and the conversion cannot be matched to a click.
Set the payout to Auto so ClickFlare uses the payout value from the postback.
7

Add the global postback in FlexOffers

In your FlexOffers account:
  1. Click the Flex Apps menu, then Postback URLs.
  2. Click Create Postback.
  3. Select the traffic source or sources the postback is for. Pick every source whose links you’ll run through ClickFlare.
  4. Paste the ClickFlare postback URL into Postback URL. Keep the variables exactly as written: #fobs#, #ca#, #on#.
  5. Select the Request Method. Choose GET, so FlexOffers fills the variables into the URL that ClickFlare reads.
  6. Click Save.
The postback only works if the tracking link carries your click ID in fobs. FlexOffers can’t send back a click ID it never received.
8

Add a lander (optional)

If you send traffic through a lander before the offer, the lander’s CTA must use the ClickFlare click URL, not the FlexOffers link. ClickFlare then fills in the click ID when it redirects to the offer. See Paths with landers and offers.
9

Save the campaign and launch

Save the campaign, copy the campaign URL from the Tracking tab and use it in your ads. Before you spend money on traffic, run the checks in Verify the setup.

The transaction ID

By default ClickFlare keeps one conversion per click ID. If several postbacks arrive with the same click ID and no transaction ID, ClickFlare treats them as the same conversion and keeps only the last one received. The txid parameter tells ClickFlare that each postback is a separate conversion, so its value has to be different on every transaction. The order number comes from the advertiser. If you see conversions arrive with an empty txid, or two sales on one click collapse into one, ask FlexOffers support whether #flx_salesid# is unique per sale. If it is, switch Transaction ID to #flx_salesid# in the affiliate network and in the FlexOffers postback.

More FlexOffers variables

Turn on Include additional parameters in the postback URL to send more values with each conversion. ClickFlare accepts param1 to param20. Useful ones: fobs2 to fobs5 work like fobs. Keep the click ID in fobs and use the others for your own labels, for example &fobs2=native on the offer URL. They show up in FlexOffers’ reports too.

Verify the setup

1

Click through the campaign

Open the ClickFlare campaign URL (with a lander, also click the CTA). When the offer loads, the first request goes to FlexOffers. In the address bar or your browser’s network tab, check that it has fobs= followed by a real ClickFlare click ID, not the literal text {cf_click_id}.
2

Test the postback by hand

Copy a real click ID from ClickFlare. Open the postback URL in your browser with that click ID and test values in place of the variables, for example https://trk.yourdomain.com/cf/cv?click_id=REAL_CLICK_ID&payout=1&txid=test1. The conversion should show on the campaign. This tests ClickFlare’s side only.
3

Check the first real transaction

When the first sale comes in, check Logs → Event Logs in ClickFlare: it should arrive with the commission and an order number as txid. Compare it with the Transaction Details page in FlexOffers.

Troubleshooting

Work through these in order:
  • The postback isn’t attached to the right traffic source. Open Flex Apps → Postback URLs and check the postback covers the traffic source your links belong to.
  • The click ID isn’t in the link. The offer URL is missing fobs={cf_click_id}, or the lander CTA links straight to FlexOffers instead of using the ClickFlare click URL.
  • The click ID went into another sub ID. If the link uses fobs2 but the postback reads #fobs#, ClickFlare gets an empty value. Both sides must use the same one.
  • The program doesn’t support postbacks. Not every advertiser on FlexOffers may fire them. Ask FlexOffers support if one program never posts back while others do.
FlexOffers lists every transaction on the Transaction Details page, so you can see which ones didn’t reach ClickFlare. See Troubleshooting S2S postbacks for the general checks.
The postback uses #sa# (sale amount) as the payout. Change Payout to #ca# in the affiliate network, then update the postback in FlexOffers.
  • A literal #fobs# means FlexOffers didn’t replace the variable. Check the spelling against the list in Create Postback.
  • A literal cf_click_id means the offer URL in ClickFlare has the token without braces. It must be {cf_click_id}.
The txid is empty or repeats. Consider #flx_salesid# instead, as described in the transaction ID.

FAQ

Yes. ClickFlare has a FlexOffers template. You pass the click ID in fobs, and FlexOffers’ global postback sends the click ID, commission and order number to ClickFlare.
No. The global postback covers all transactions for the traffic sources you selected when you created it.
FlexOffers says global postbacks track conversions in real time: its system pings yours when a transaction occurs.
FlexOffers’ postback documentation doesn’t mention reversals or a status variable, and ClickFlare doesn’t read a status. Compare ClickFlare with FlexOffers’ reports before payday and adjust if sales were reversed.
Yes. Once ClickFlare records the FlexOffers conversion, it can send it to the traffic source through the traffic source’s postback or conversion API integration. Nothing changes on the FlexOffers side.

Macro reference

Every network’s values

Postback parameters

click_id, txid, param1–20

Postback issues

Troubleshoot S2S