
At a glance
How it works
1
AdRoll sends the click
A visitor clicks your ad. AdRoll opens your ClickFlare campaign URL with its macros filled in: the campaign, ad group, ad, domain, network and device. It also appends its own click ID,
adct, to the end of the URL.2
ClickFlare stores the click data
ClickFlare saves the value of
adct as the visit’s External ID, stores the other values in tracking fields, and redirects the visitor to your lander or offer.3
The conversion reaches ClickFlare
Your affiliate network or store posts the conversion back to ClickFlare, matched on the ClickFlare click ID.
4
AdRoll learns about it separately
ClickFlare does not post the conversion to AdRoll. If the AdRoll Pixel fires on your conversion page, or you send the event through AdRoll’s API with the
adct value, AdRoll attributes it to the ad.With most networks there is a mirror: the network’s macro in the campaign URL, ClickFlare’s token in the postback. With AdRoll only the first half exists. The template writes ClickFlare’s parameters (
campaign_id, ad_id…) with AdRoll’s macros ([ADROLL:CAMPAIGN_EID], [ADROLL:AD_EID]…). The click ID needs no macro: AdRoll appends adct itself. There is no postback to send anything back in.Before you start
- Set up your own tracking domain. Run the campaign on your own custom domain. Shared domains get flagged by networks and blocked by browsers. See Custom Domains.
- Have an offer ready in ClickFlare, and its affiliate network set up to post conversions back to ClickFlare. See Creating an Offer and Adding an Affiliate Network.
- Install the AdRoll Pixel on your site. AdRoll is built around it: retargeting audiences, conversions and attribution all come from the pixel. Without it on your landing pages, AdRoll can’t attribute click-through conversions.
- Decide how AdRoll will see conversions. If you own the conversion page, the pixel can record the conversion there. If you send traffic to an affiliate offer you don’t control, AdRoll only sees what the pixel catches on your lander. See Step 2 below.
Step 1 – Create the campaign and the AdRoll traffic source
- Go to Campaigns and click New.
- In Traffic Source, open the dropdown and click + New Traffic Source.
- Type
adrollin the search box and select the AdRoll template. - Enter a Name, for example
AdRoll. - Leave Cost currency on USD unless your AdRoll account is billed in another currency.

domain and network are the ones you will use most for display: they show which sites and exchanges send converting traffic.
The adct click ID
adct is the ID AdRoll uses for conversions. AdRoll appends it to the landing page URL on every ad, without a macro, for example ?utm_campaign=display&adct=.... The value is up to 140 characters. Its pixel reads it on your landing page, and its Conversions and Events API uses it to match server events to clicks.
That is why the External ID row has a TS Parameter but an empty TS Token. ClickFlare reads the adct value AdRoll has already added, the same way the Quora Ads template reads qclid, and stores it as the visit’s External ID. To pass it on, to your lander or to a relay, use adct={external_id}.
Step 2 – Decide how AdRoll learns about conversions
There is no postback to configure. In the New Traffic Source form, leave Traffic source postback URL off and click Save. You are back in the campaign editor with the AdRoll traffic source selected.Option A – The AdRoll Pixel, with a conversion audience
Use this when you own the page where the conversion happens, for example your own store or lead form.- In AdRoll, click Setup Your Pixel Now on the red Pixel Setup Required banner. If it doesn’t appear, go to Analytics > Insights > Website > View Pixel. Click Copy under Connect your Pixel.
- Paste the pixel in the global header of your site, just above the closing
</head>tag. Google Tag Manager or an ecommerce integration (Shopify, WooCommerce and others) also works. Use one method only. - Back in AdRoll, click Verify Connection. Verification can take up to 24 hours. The PixelPal Chrome extension shows right away whether the pixel fires.
- To record a sale with its value, fire
adroll.track("purchase", ...)on the confirmation page, withorder_id,currencyandconversion_value. - Create a conversion audience: build the audience for your conversion page or event under Audiences > Website Audiences, and tick This is a conversion audience.
adct in their URL. AdRoll warns that redirects which strip or change adct break click-through attribution. With Redirect tracking, AdRoll adds adct to the ClickFlare campaign URL, not to your lander. Pass it on: add adct={external_id} to your lander’s URL in ClickFlare. With Direct tracking, the lander is the destination and receives adct itself.
Option B – The pixel on your lander only
Use this when you send traffic to an affiliate offer you don’t control. Install the AdRoll Pixel on your lander, passadct to it as in Option A, and build a conversion audience from the action you can see, for example visitors who clicked through to the offer.
AdRoll then reports and optimizes on lander engagement, not on the sale. Your real conversions and revenue stay in ClickFlare. Judge campaigns there.
Option C – AdRoll’s Conversions and Events API
AdRoll’s Conversions and Events API takes events from your server. As of October 2026 it is in open beta: you request a Server Access Token from your Account Manager, Customer Onboarding Manager or AdRoll Customer Support. It is a different key from the Personal Access Tokens of AdRoll’s other APIs. Each event needs an identifier, theadct click ID or a first-party cookie, and one of AdRoll’s standard event names: homeView, productSearch, pageView, addToCart or purchase. Custom names aren’t supported. Click IDs map to clicks for 30 days.
ClickFlare doesn’t send to this API, but it stores the adct click ID as each visit’s External ID. A developer can send it from your own system, or from a relay that a ClickFlare postback calls with adct={external_id}. Don’t send the same event through both the pixel and the API: AdRoll warns that this creates duplicates. See the Conversions and Events API article.
Whichever option you use, ClickFlare remains your source of truth for revenue. AdRoll’s numbers will differ from ClickFlare’s. AdRoll counts view-through as well as click-through conversions, uses a lookback window of 7 days by default (adjustable from 1 to 30), and applies the attribution model you choose under its attribution settings.
Step 3 – Finish the campaign and copy its URL
- Name the campaign.
- Set the Cost Model to CPC and enter your expected cost per click. See Cost.
- Choose Redirect or Direct tracking. If the AdRoll Pixel sits on your lander, Direct keeps
adcton the lander without extra setup. See Direct Campaign Tracking. - Click Next and, on Destination, add your lander (optional) and your offer.
- Save, open Tracking, select your own tracking domain and copy the campaign URL.
campaign_id=[ADROLL:CAMPAIGN_EID]&campaign_name=[ADROLL:CAMPAIGN_NAME]. Because the External ID row has no macro, the URL may also contain an empty adct=. Delete it, so the only adct in the click is the one AdRoll adds.
If you use a lander, its call-to-action must link to the ClickFlare click URL, not to the offer directly. Otherwise the visit reaches the offer without a ClickFlare click ID, and the conversion cannot be traced back to the AdRoll click.
See Creating a Campaign in ClickFlare.
Step 4 – Add the URL to your ads in AdRoll
In AdRoll, the destination URL belongs to each ad.- New ads: go to Creatives in the left menu, click Create or Upload, fill in the fields and enter the ClickFlare campaign URL as the destination URL.
- Existing ads: go to Creatives, hover over the ad, click Edit, then click Edit UTM next to the Destination URL field.
- Dynamic ads: add the parameters both as tracking parameters and in the fallback URL, as AdRoll asks for UTMs.
[ADROLL:...] macro when the ad is clicked. AdRoll’s help shows its macros inside utm_ values. The template uses its own parameter names, which AdRoll should treat the same way. Confirm it with the test below.
Then attach the ads to your campaign and launch it as usual.
Step 5 – Test the integration
- Click a live AdRoll ad, so the visit comes from AdRoll. A copied URL opened by hand has no macros filled in and no
adct. - In ClickFlare, open the campaign’s report and check the External ID column. It should hold the
adctvalue AdRoll appended. - Check the tracking-field columns. They should show values, not
[ADROLL:CAMPAIGN_EID]or other raw macros. - Look at your lander’s URL after the click. With Redirect tracking and
adct={external_id}on the lander URL,adctshould be there. - Complete the offer the way a real visitor would and check that the conversion appears in ClickFlare.
- Check the AdRoll Pixel with PixelPal on the lander and the conversion page.
Cost
The template doesn’t pass cost. Its Cost row is empty, AdRoll has no cost macro, and ClickFlare has no cost integration for AdRoll. AdRoll’s default pricing is dynamic CPM: you pay per thousand impressions. ClickFlare only sees clicks, so set the campaign’s Cost Model to CPC and enter your effective cost per click: your AdRoll spend divided by your AdRoll clicks. Don’t enter the CPM divided by 1,000: a display impression is not a click, and that figure would understate your cost many times over.Don’t use Not Tracked with this template. It records cost only when the URL or a cost integration provides it, and neither does here, so your cost would show as zero.
Troubleshooting
Columns show [ADROLL:...] or stay empty
Columns show [ADROLL:...] or stay empty
- The URL was opened by hand, not from an ad click.
- The ad runs on Facebook or Instagram, where AdRoll fills in only a few macros.
- For a dynamic ad, the parameters are missing from the fallback URL.
- The External ID is empty: the campaign URL still contains an empty
adct=. Delete it from the URL in your AdRoll ads. - See Traffic Source Tokens Arriving Empty.
AdRoll shows no click-through conversions
AdRoll shows no click-through conversions
- ClickFlare sends nothing to AdRoll. Conversions come only from the pixel or the API.
- The pixel isn’t on the lander or the conversion page. Check with PixelPal.
adctdoesn’t reach the lander. With Redirect tracking, addadct={external_id}to the lander URL, or switch to Direct tracking.- No conversion audience is marked with This is a conversion audience.
Cost is zero in ClickFlare
Cost is zero in ClickFlare
The Cost Model is Not Tracked. The template passes no cost, so switch to CPC, or upload costs.
ClickFlare and AdRoll conversion counts don't match
ClickFlare and AdRoll conversion counts don't match
Expected. AdRoll includes view-through conversions and applies its own attribution model and lookback window. ClickFlare counts conversions posted by your affiliate network. Optimize on ClickFlare’s numbers.
FREQUENTLY ASKED QUESTIONS
Q1: Why is there no postback in the AdRoll template?A1: AdRoll doesn’t take conversions by postback URL. It takes them from its pixel or through its Conversions and Events API, which needs an authenticated server request. ClickFlare’s traffic source postback can’t make that request on its own.
Q2: Why is the TS Token of the External ID row empty?A2: AdRoll has no macro for its click ID. It appends
adct to the URL on every click by itself, so the template only names the parameter. ClickFlare reads the value and stores it as the External ID, ready for AdRoll’s pixel or API.
Q3: Can I use the same AdRoll traffic source for all my AdRoll campaigns?A3: Yes. With no postback, nothing on the traffic source is campaign-specific. The macros tell your campaigns and ads apart.
Q4: Should I use Redirect or Direct tracking?A4: Both capture the click. Direct is the simpler fit for AdRoll, because the lander, where the pixel runs, receives
adct itself. With Redirect, pass it to the lander with adct={external_id}. See Direct Campaign Tracking.
Related
Direct campaign tracking
Track without a redirect, with your lander as the destination.
Manual cost upload
Correct your AdRoll spend in ClickFlare.
Cost models
How CPC, CPA and RevShare costs are calculated.
Conversions not showing
The general checklist when conversions don’t arrive.