Skip to main content
AdRoll traffic source template AdRoll, part of NextRoll, is a self-serve retargeting and prospecting platform. It buys display, native, video and CTV inventory, and can also run your ads on Facebook and Instagram from the same account. This guide sets up AdRoll as a traffic source in ClickFlare. It covers capturing AdRoll’s campaign, ad and placement data in your reports, keeping AdRoll’s own click ID intact, and the ways you can report conversions back to AdRoll. You do everything from the campaign editor. The AdRoll traffic source is created inline, without leaving the campaign.
The AdRoll template has no postback URL. AdRoll doesn’t accept conversions by S2S postback URL, and ClickFlare has no integration with AdRoll’s Conversions and Events API. AdRoll receives conversions only through the AdRoll Pixel on your pages or through an API connection you run yourself. See Step 2 below.

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

  1. Go to Campaigns and click New.
  2. In Traffic Source, open the dropdown and click + New Traffic Source.
  3. Type adroll in the search box and select the AdRoll template.
  4. Enter a Name, for example AdRoll.
  5. Leave Cost currency on USD unless your AdRoll account is billed in another currency.
The template fills in the Parameters table for you: The AdRoll template's Parameters table in ClickFlare, with AdRoll's macros pre-filled All macros come from AdRoll’s list of click macros for web ads. 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}.
On Facebook and Instagram placements, AdRoll fills in only a few macros: the ad, campaign type and advertiser for static ads, plus ad group, campaign name and campaign ID for dynamic ads. The domain, network and device columns stay empty there. That is expected.

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.
  1. 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.
  2. 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.
  3. Back in AdRoll, click Verify Connection. Verification can take up to 24 hours. The PixelPal Chrome extension shows right away whether the pixel fires.
  4. To record a sale with its value, fire adroll.track("purchase", ...) on the confirmation page, with order_id, currency and conversion_value.
  5. Create a conversion audience: build the audience for your conversion page or event under Audiences > Website Audiences, and tick This is a conversion audience.
The pixel must also fire on your landing pages and see 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, pass adct 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, the adct 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

  1. Name the campaign.
  2. Set the Cost Model to CPC and enter your expected cost per click. See Cost.
  3. Choose Redirect or Direct tracking. If the AdRoll Pixel sits on your lander, Direct keeps adct on the lander without extra setup. See Direct Campaign Tracking.
  4. Click Next and, on Destination, add your lander (optional) and your offer.
  5. Save, open Tracking, select your own tracking domain and copy the campaign URL.
The campaign URL contains every AdRoll macro from the template, for example 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.
Paste the URL exactly as ClickFlare gives it. AdRoll replaces each [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

  1. 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.
  2. In ClickFlare, open the campaign’s report and check the External ID column. It should hold the adct value AdRoll appended.
  3. Check the tracking-field columns. They should show values, not [ADROLL:CAMPAIGN_EID] or other raw macros.
  4. Look at your lander’s URL after the click. With Redirect tracking and adct={external_id} on the lander URL, adct should be there.
  5. Complete the offer the way a real visitor would and check that the conversion appears in ClickFlare.
  6. Check the AdRoll Pixel with PixelPal on the lander and the conversion page.
There is nothing to check under Logs → Postback Status. No postback is sent to AdRoll.

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.
Your effective CPC moves with CTR and auction prices, so CPC is an estimate. Export your spend from AdRoll regularly and correct ClickFlare with a manual cost upload. See Cost Models.

Troubleshooting

  • 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.
  • 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.
  • adct doesn’t reach the lander. With Redirect tracking, add adct={external_id} to the lander URL, or switch to Direct tracking.
  • No conversion audience is marked with This is a conversion audience.
The Cost Model is Not Tracked. The template passes no cost, so switch to CPC, or upload costs.
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.
For the general checklist, see Conversions not showing.
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.

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.