Skip to main content
TUNE and ClickFlare Integration TUNE, formerly HasOffers, is the platform behind many affiliate networks. As an affiliate (TUNE says “partner”), you log in to the network’s own portal, often on the network’s domain or on yournetwork.hasoffers.com, pick offers, get tracking links and place postbacks. Your portal may never show the TUNE name: if the tracking links contain aff_c?offer_id= and aff_id=, the network runs on TUNE. To track TUNE offers in ClickFlare, two links have to carry the ClickFlare click ID in both directions:
  • The offer URL sends the ClickFlare click ID to TUNE in aff_sub2.
  • The postback URL sends it back to ClickFlare with every conversion, together with the payout and a transaction ID.
This guide covers the full setup, why TUNE’s {transaction_id} is not a conversion ID, how to handle offers with several goals, and how to test the postback.
Only need the two values? The Click ID & postback macros page has them ready to copy with your tracking domain.

How the data flows

The two links mirror each other:
Offer URL = their parameter + your token. Postback URL = your parameter + their macro. TUNE writes the click ID into aff_sub2 on the way in and reads it back with the {aff_sub2} macro on the way out. The number must match: aff_sub2 in the link and {aff_sub} in the postback returns the wrong value.

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.
  • A partner account on the network’s TUNE portal, approved for the offer you want to run.
  • Third-party tracking allowed on the offer. Networks turn this on per offer. Without it, the offer has no Your Pixels / Postbacks section.

What the TUNE template contains

ClickFlare has a Tune (HasOffers) affiliate network template. It fills in the TUNE macros ClickFlare needs. The Tune (HasOffers) template in ClickFlare: Click Id is {aff_sub2}, Payout is {payout} and Transaction ID is {transaction_id}-{goal_id}

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 on every TUNE offer too. See Tracking domains.
2

Report conversions by postback time

Go to Settings → General Settings and set Conversion registration time reporting to Postback Timestamp.TUNE reports a conversion on the day it happened. With the default Visit Timestamp, ClickFlare reports it on the day of the original click, so a conversion 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 TUNE 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 Tune and pick the Tune (HasOffers) template.
  2. Name it after the network, for example “TUNE - NetworkName”. Each TUNE network has its own portal and its own postbacks, so create one affiliate network per TUNE network.
  3. Change Transaction ID from {transaction_id} to {transaction_id}-{goal_id}.
  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 of the network’s offers.
ClickFlare builds the postback URL from these fields:
The Conversion tracking section of the TUNE network in ClickFlare, with the generated postback URL: click_id={aff_sub2}, payout={payout} and txid={transaction_id}-{goal_id}Copy the postback URL and save the network.
5

Get the offer's tracking link from TUNE

In the TUNE portal, go to Offers → All Offers and open the offer. The Your Tracking Link box shows your link:
offer_id is the offer and aff_id is your partner ID. You can click Add Sub IDs, then More Sub IDs, and type {cf_click_id} in the second sub ID field, then click Refresh. Or copy the link as it is and add the sub ID in ClickFlare in the next step.
Copy the full link, not the TinyURL version. A tiny URL works too, but values appended to it must stay under TUNE’s 500-character limit.
6

Create the offer in ClickFlare

In the offer form:
  1. Name the offer.
  2. Select the TUNE affiliate network you just created.
  3. Paste the TUNE link into Offer URL with &aff_sub2={cf_click_id} at the end:
The ClickFlare New Offer form with the TUNE affiliate network selected and aff_sub2={cf_click_id} at the end of the Offer URLIf you pasted the link without aff_sub2, turn on Append Click ID to Offer Url instead. ClickFlare then adds aff_sub2={cf_click_id} from the template. Use one or the other, not both.
Write {cf_click_id} with braces. Without them TUNE 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 postback in TUNE

Back in the TUNE portal, open the same offer, scroll to Your Pixels / Postbacks and click Add New Pixel/Postback. Then:
  1. Choose Postback as the type (called Postback URL in some portals). It works on every offer, whatever tracking method the advertiser uses.
  2. Select the goals the postback should count. On an offer with one goal, select it. On an offer with several, select every goal you want in ClickFlare. See Offers with several goals.
  3. Paste the ClickFlare postback URL into Code. The macros TUNE supports are listed next to it.
  4. Click Create.
The postback shows as Active, or as Pending if the network approves partner postbacks first. A pending postback doesn’t fire: ask your affiliate manager to approve it.
The postback is set per offer. Only network staff can add a postback for all your offers (“All Offers”), so if you want one, send the URL to your affiliate manager. Don’t keep both a global and an offer postback for the same offer: TUNE fires both.
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 TUNE link. ClickFlare then adds 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.

Why transaction_id is not a conversion 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 you only see one of them (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 conversion. TUNE’s {transaction_id} is the ID of the click session, not of the conversion. Every goal reached from one click carries the same {transaction_id}. By default, TUNE even gives a repeat click by the same visitor on the same offer and day the same ID. On its own, it doesn’t tell ClickFlare that a sale after a lead is a second conversion. TUNE replaces each macro wherever it appears in the URL, so {transaction_id}-{goal_id} arrives as, for example, 102abc7f-4. On the default goal {goal_id} is empty, which gives 102abc7f-: still unique for that click.
TUNE has no macro for its own conversion ID. If an offer pays on the same goal more than once for one click (repeat purchases, rebills), {transaction_id}-{goal_id} is the same each time and ClickFlare keeps one of them. Ask your affiliate manager whether the advertiser sends an order ID in {adv_sub}, and use txid={adv_sub} on that offer if so.

Offers with several goals

A TUNE offer can pay on several goals, for example a registration and a first deposit. In TUNE, partner postbacks are attached to goals:
  • Select every goal you want counted when you add the postback. A postback without the right goal never fires for it. Private goals can’t take partner postbacks.
  • One postback for all goals is enough for counting: with txid={transaction_id}-{goal_id}, each goal arrives as its own conversion, and the payout differs per goal.
  • One postback per goal lets you report each goal as its own column in ClickFlare. Add a separate postback per goal, each with &ct= and a custom conversion parameter at the end:
The ct value must exactly match a parameter of a custom conversion in ClickFlare. If it doesn’t, ClickFlare records a regular conversion instead.

Pending and rejected conversions

Networks can make conversions wait for approval. TUNE doesn’t document whether a partner postback fires while a conversion is pending, when it’s approved later, or never for a rejected one, and it has no status macro.
  • Ask your affiliate manager how their offers handle it.
  • Treat ClickFlare’s numbers as recorded conversions, and compare them with the network’s conversion report before payday.

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 the network’s aff_c link. Check that it has aff_sub2= followed by a real ClickFlare click ID, not the literal text {cf_click_id}.
2

Ask for a test conversion

TUNE’s postback test is on the network side. Send your affiliate manager your ClickFlare campaign URL and ask them to run TUNE’s test on your postback. They open your link, so the session gets a real ClickFlare click ID, and TUNE shows them the exact postback it sent and ClickFlare’s response. A test on the bare TUNE link has no click ID and can’t be matched.
3

Check the conversion in ClickFlare

The conversion should appear on the campaign with the payout from TUNE. In Logs → Event Logs, check that its txid contains the transaction ID and the goal, for example 102abc7f-4. If you see -{goal_id} literally, the portal didn’t replace the macro: tell your affiliate manager and fall back to txid={transaction_id}.

Troubleshooting

Work through these in order:
  • The postback is Pending. The network hasn’t approved it yet.
  • The postback isn’t on that goal. Open the offer’s Your Pixels / Postbacks and check that the goal is selected.
  • There’s no Your Pixels / Postbacks section. Third-party tracking isn’t allowed on the offer. Ask your affiliate manager to enable it or to add the postback for you.
  • aff_sub2 is empty in TUNE. The offer URL is missing aff_sub2={cf_click_id}, or the lander CTA links straight to TUNE instead of using the ClickFlare click URL.
  • The sub ID numbers don’t match. The offer URL uses aff_sub2 and the postback reads {aff_sub}, or the other way around.
  • The offer uses “Server Postback w/ Partner ID”. On these offers, sub IDs only come back if the advertiser returns them. Ask your affiliate manager.
See Troubleshooting S2S postbacks for the general checks.
The postback uses txid={transaction_id}, so the sale arrived with the same click ID and transaction ID as the lead and replaced it. Change the transaction ID to {transaction_id}-{goal_id} in the ClickFlare affiliate network and in the TUNE postback, and check the sale goal is selected on the postback. Conversions that were already merged are not restored.
The same conversion fires two postbacks: one on the offer and one global, or two identical postbacks on the same goal. Remove one, or make sure both send the same txid so ClickFlare treats them as one.
  • Check that the postback has payout={payout} and the offer’s payout is set to Auto in ClickFlare.
  • {payout} is your payout in the offer’s currency. Set the affiliate network’s Payout currency in ClickFlare to the same currency. Use {payout}, not {revenue} or {sale_amount}: those are advertiser figures.

FAQ

aff_sub2 is the ClickFlare template’s default and what most trackers use. TUNE itself suggests aff_click_id for unique values like click IDs, because a different value on every click in aff_sub slows its reports down. Both work: if you switch, use aff_click_id={cf_click_id} in the offer URL and {aff_click_id} as the Click Id in ClickFlare and in the postback.
Yes. HasOffers is TUNE’s former name, still used in its sign-up domains and API. TUNE calls affiliates “partners” in its interface but keeps aff_ in its link parameters and macros.
Yes. Use the other sub IDs in the offer URL, for example aff_sub3={campaign_id}&aff_sub4={trackingField1}. TUNE shows them in its reports. Keep aff_sub2 for the click ID.
Yes. Once ClickFlare records the TUNE conversion, it can send it to the traffic source through the traffic source’s postback or conversion API integration. Nothing changes on the TUNE side.

Macro reference

Every network’s values

Custom conversions

Report each goal

Postback issues

Troubleshoot S2S