> ## Documentation Index
> Fetch the complete documentation index at: https://clickflare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickAdilla as a Traffic Source

> Track ClickAdilla campaigns in ClickFlare: the template's macros by ad format, the token postback with payout, multiple conversions and CPM cost.

![ClickAdilla traffic source template](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/covers/templates/clickadilla.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=27d0379612b51f9bec4ac6bcdcdb85eb)

ClickAdilla is a self-serve ad network selling popunder, in-page, web push, native, banner, tab-direct link and in-stream video traffic, on CPC, CPM, Smart CPM and CPA. This guide sets up ClickAdilla as a traffic source in ClickFlare. It covers passing ClickAdilla's click data into your reports and sending conversions, with payout, back to ClickAdilla so its statistics and your stats agree.

You do everything from the **campaign editor**. The ClickAdilla traffic source is created inline, without leaving the campaign.

## At a glance

| | |
| - | - |
| **Ad formats** | Popunder, in-page, web push, native, banners, tab-direct links, in-stream video |
| **Click ID macro** | `[CLICK_ID]`, mandatory for conversion tracking |
| **Conversion tracking** | S2S postback to `tracking.clickadilla.com`, with your unique token |
| **Payout passed back** | Yes, in the `payout` parameter |
| **Multiple events** | Yes, one postback per event, told apart by `conversion_id` |
| **Cost** | Passed per click by the template, as ClickAdilla's price (`[PRICE]`). Cost Model: **Not Tracked** on CPC. See [Cost](#cost). |
| **Conversion API** | No |

## How it works

**1. ClickAdilla sends the click**

A visitor clicks your ad. ClickAdilla opens your ClickFlare campaign URL and fills in its macros: the click ID in `CLICK_ID`, the price in `PRICE`, the campaign ID in `CAMPAIGN_ID`, plus the domain, creative, browser, OS and other details.

**2. ClickFlare stores the ClickAdilla click ID**

ClickFlare saves the value of `CLICK_ID` as the visit's **External ID**, records the cost and the campaign ID, 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. ClickFlare posts it back to ClickAdilla**

ClickFlare fires the ClickAdilla postback, replacing `{external_id}` with the stored click ID, `{trackingField1}` with the ClickAdilla campaign ID and `{payout}` with the revenue. ClickAdilla matches it to the original click.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`CLICK_ID`) and *ClickAdilla's* macro (`[CLICK_ID]`). The template does this for you. In the **postback URL** you write *ClickAdilla's* parameter (`click_id`) and *ClickFlare's* token (`{external_id}`).

## Before you start

* **Set up your own tracking domain.** Run the campaign and the postback on your own custom domain. Shared domains get flagged by networks and blocked by browsers. See [Custom Domains](https://clickflare.com/docs/en/settings/custom-domains.md).
* **Have an offer ready in ClickFlare**, and its affiliate network set up to post conversions back to ClickFlare. See [Creating an Offer](https://clickflare.com/docs/en/tracking/creating-an-offer-1.md) and [Adding an Affiliate Network](https://clickflare.com/docs/en/tracking/adding-an-affiliate-network.md).
* **Find your ClickAdilla token.** In your ClickAdilla dashboard, open **Tracking → Conversion tracking**. The postback URL template there contains your unique token. It goes into the postback URL.
* **Know which ad format you will run.** ClickAdilla's macros differ by format. Some of the template's rows only work on some formats, as Step 1 explains.

***

## Step 1 – Create the campaign and the ClickAdilla traffic source

1. Go to **Campaigns** and click **New**.
2. In **Traffic Source**, open the dropdown and click **+ New Traffic Source**.
3. Type `clickadilla` in the search box and select the **ClickAdilla** template.
4. Enter a **Name**, for example `ClickAdilla`.
5. Leave **Cost currency** on **USD**. ClickAdilla reports `[PRICE]` in USD.

The template fills in the **Parameters** table for you:

| Name | TS Parameter | TS Token (ClickAdilla macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| cost | `PRICE` | `[PRICE]` | `{cost}` | ClickAdilla's price for the ad, in USD. See [Cost](#cost). |
| externalId | `CLICK_ID` | `[CLICK_ID]` | `{external_id}` | ClickAdilla's click ID. Required for the postback. |
| CAMPAIGN\_ID | `CAMPAIGN_ID` | `[CAMPAIGN_ID]` | `{trackingField1}` | Your ClickAdilla campaign ID. The postback sends it back. |
| PRICING\_MODEL | `PRICING_MODEL` | `[PRICING_MODEL]` | `{trackingField2}` | CPM or CPC |
| COUNTRY\_ISO\_CODE | `COUNTRY_ISO_CODE` | `[COUNTRY_ISO_CODE]` | `{trackingField3}` | The visitor's country code |
| BROWSER\_FAMILY | `BROWSER_FAMILY` | `[BROWSER_FAMILY]` | `{trackingField4}` | The visitor's browser |
| OS\_TYPE | `OS_TYPE` | `[OS_TYPE]` | `{trackingField5}` | Despite the name, the device type: computer, mobile, tablet |
| BANNER\_CREATIVE\_ID | `BANNER_CREATIVE_ID` | `[BANNER_CREATIVE_ID]` | `{trackingField6}` | The banner image in rotation (banners only) |
| DEVICEUA | `DEVICEUA` | `[DEVICEUA]` | `{trackingField7}` | The full user agent |
| NATIVE\_AD\_CREATIVE\_ID | `NATIVE_AD_CREATIVE_ID` | `[NATIVE_AD_CREATIVE_ID]` | `{trackingField8}` | The native ad image in rotation (native only) |
| WEB\_PUSH\_CREATIVE\_ID | `WEB_PUSH_CREATIVE_ID` | `[WEB_PUSH_CREATIVE_ID]` | `{trackingField9}` | The push notification in rotation (web push only) |
| DOMAIN | `DOMAIN` | `[DOMAIN]` | `{trackingField10}` | The referring domain, the site that showed the ad |

![The ClickAdilla template's Parameters table in ClickFlare, with ClickAdilla's macros pre-filled](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/templates/clickadilla/parameters.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=8952b8b45f25335f2020396e64bc5db4)

Each tracking field becomes a column you can group reports by. `DOMAIN` tells you which sites convert, so you can blacklist or bid up sources in ClickAdilla.

> [!WARNING]
>
> Don't change or remove the `externalId` and `CAMPAIGN_ID` rows. The postback sends `[CLICK_ID]` back as `{external_id}` and `[CAMPAIGN_ID]` back as `{trackingField1}`. If `CAMPAIGN_ID` moves to another tracking field, the postback sends the wrong value.

### Which rows work on which format

ClickAdilla publishes a separate macro list per ad format. The template mixes them, so on any one format some columns stay empty.

| Format | Template rows ClickAdilla fills in |
| - | - |
| Banners | All except `DEVICEUA`, `NATIVE_AD_CREATIVE_ID`, `WEB_PUSH_CREATIVE_ID` |
| Popunder, tab-direct links | All except `BANNER_CREATIVE_ID`, `DEVICEUA`, `NATIVE_AD_CREATIVE_ID`, `WEB_PUSH_CREATIVE_ID` |
| Native | `PRICE`, `CLICK_ID`, `CAMPAIGN_ID`, `DEVICEUA`, `NATIVE_AD_CREATIVE_ID`, `DOMAIN` |
| Web push | `PRICE`, `CLICK_ID`, `CAMPAIGN_ID`, `PRICING_MODEL`, `DEVICEUA`, `WEB_PUSH_CREATIVE_ID`, `DOMAIN` |
| In-page | `PRICE`, `CLICK_ID`, `CAMPAIGN_ID`, `PRICING_MODEL`, `DEVICEUA`, `DOMAIN` |

You can remove rows your format doesn't support. Keep `externalId`, `CAMPAIGN_ID` and `cost`.

### Add the spot ID

The template leaves out `[SPOT_ID]`, the ad placement. It is available on every format and is the best column for finding the placements that convert. Add it:

1. Click **Add Parameter**.
2. Name it `SPOT_ID`, with `SPOT_ID` as the TS Parameter and `[SPOT_ID]` as the TS Token.
3. ClickFlare assigns the next free tracking field.

The same way, you can add `[POPUNDER_CREATIVE_ID]` for popunders, `[IN_PAGE_AD_CREATIVE_ID]` for in-page, `[WEB_PUSH_ID]` for web push or `[MOBILE_BRAND]` for the mobile operator on banners and popunders.

## Step 2 – Set up the postback

The postback is what sends conversions to ClickAdilla. It lives on the traffic source, so every campaign that uses this ClickAdilla traffic source sends conversions the same way.

### Get your token from ClickAdilla

1. In your ClickAdilla dashboard, open **Tracking → Conversion tracking** from the left menu.
2. Find the postback URL template. It looks like this, with your own token in place of `aAA1aA`:

```text theme={null}
https://tracking.clickadilla.com/in/postbacks/?token=aAA1aA&campaign_id=[CAMPAIGN_ID]&click_id=[CLICK_ID]&payout=[PAYOUT]
```

3. Copy the token value. Every account has its own.

### Add it to the traffic source in ClickFlare

1. Back in the **New Traffic Source** form, scroll to **Passing conversion info to traffic source**.
2. Turn on **Traffic source postback URL**. The template's postback appears:

```text theme={null}
https://tracking.clickadilla.com/in/postbacks/?token=REPLACE&campaign_id={trackingField1}&click_id={external_id}&payout={payout}
```

![The Traffic source postback URL switched on, showing the ClickAdilla template's postback](https://mintcdn.com/clickflare/0jaeWC_DJvLt2SMH/images/integrations/templates/clickadilla/postback.png?fit=max\&auto=format\&n=0jaeWC_DJvLt2SMH\&q=85\&s=f8f8ee52b27c8b8e4b191345a134eca2)

It already sends the campaign ID (`{trackingField1}`), the click ID (`{external_id}`) and the payout (`{payout}`), all as ClickFlare tokens. It matches ClickAdilla's own template, with ClickFlare's tokens in place of ClickAdilla's bracket placeholders.

3. Replace `REPLACE` with your ClickAdilla token. The result:

```text theme={null}
https://tracking.clickadilla.com/in/postbacks/?token=YOUR_TOKEN&campaign_id={trackingField1}&click_id={external_id}&payout={payout}
```

4. In the dropdown on the left, choose the ClickFlare event that should fire the postback. Keep **Conversions** to send every conversion. If your final action is a custom conversion (for example `purchase`), choose that instead.
5. Click **Save**. You are back in the campaign editor with the ClickAdilla traffic source selected.

> [!WARNING]
>
> Replace `REPLACE` with your token, exactly as it appears under **Tracking → Conversion tracking**. If `REPLACE` stays in the postback, ClickAdilla cannot match the conversions to your account.

The payout lets you see real revenue and profit in your ClickAdilla statistics. If your offers pay in a currency other than USD, see [Multicurrency in ClickFlare](https://clickflare.com/docs/en/tracking/multicurrency-support-in-click-flare-how-it-works.md).

To learn what each postback token does, see [How to Configure a Traffic Source S2S Postback URL](https://clickflare.com/docs/en/tracking/how-to-configure-a-traffic-source-s2s-postback-url.md).

## Step 3 – Finish the campaign and copy its URL

1. Name the campaign.
2. Set the **Cost Model**: **Not Tracked** for CPC campaigns, so ClickFlare uses the price ClickAdilla passes. For CPM, Smart CPM and CPA, see [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for ClickAdilla's popunder, push and banner traffic.
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 already contains every ClickAdilla macro from the template, for example `CLICK_ID=[CLICK_ID]` and `CAMPAIGN_ID=[CAMPAIGN_ID]`.

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 ClickAdilla.

See [Creating a Campaign in ClickFlare](https://clickflare.com/docs/en/campaigns/creating-a-campaign-in-click-flare.md).

## Step 4 – Create the campaign in ClickAdilla

1. In ClickAdilla, go to **Campaigns** and create a campaign.
2. Choose the ad format, targeting and pricing model as usual.
3. Create the ad and paste the ClickFlare campaign URL into the ad's URL field.
4. Submit the campaign for approval.

Paste the URL exactly as ClickFlare gives it. ClickAdilla replaces each `[...]` macro with real values when the ad is clicked.

## Step 5 – Test the integration

1. Once the campaign runs, check the first visits in ClickFlare. The `CAMPAIGN_ID` column should show your ClickAdilla campaign ID, not the text `[CAMPAIGN_ID]`.
2. Complete a test conversion on your offer, or post one to ClickFlare from your affiliate network.
3. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `tracking.clickadilla.com` confirms ClickFlare sent the postback.
4. In ClickAdilla, open **Statistics**. The conversion appears in the campaign's conversion count.

***

## Tracking several events

ClickAdilla can track several conversion types in one campaign, for example a registration, an add-to-cart and a purchase. Each event needs its own postback, with a `conversion_id` parameter added:

```text theme={null}
https://tracking.clickadilla.com/in/postbacks/?token=YOUR_TOKEN&campaign_id={trackingField1}&click_id={external_id}&payout={payout}&conversion_id=1
https://tracking.clickadilla.com/in/postbacks/?token=YOUR_TOKEN&campaign_id={trackingField1}&click_id={external_id}&payout={payout}&conversion_id=2
```

1. In ClickFlare, create a [custom conversion](https://clickflare.com/docs/en/settings/custom-conversions.md) for each step, for example `registration` and `purchase`.
2. On the ClickAdilla traffic source, click **+ Another postback URL** once per extra event.
3. Map each postback to its ClickFlare event: `registration` to the `conversion_id=1` URL, `purchase` to `conversion_id=2`.
4. Test each event.

> **Rules for multi-event postbacks**
>
> * One postback per event. Number them `conversion_id=1`, `conversion_id=2`, `conversion_id=3` and so on.
> * If you only track one conversion per campaign, leave `conversion_id` out.
> * In ClickAdilla's **Statistics**, multi-event data shows on every tab except **Dates**, **Hours** and **Campaigns**.

> **Sending only one event**
>
> If ClickAdilla should only learn from your final sale, keep a single postback and map it to that event. Earlier steps still show in ClickFlare. They just don't reach ClickAdilla.
>
> To send a postback only for some conversions, for example only those above a certain payout, use **Event filter** under the postback to add conditions.

## Cost

The template passes cost per click. The `cost` row sends ClickAdilla's `[PRICE]` macro, your ad price in USD, and ClickFlare records it as the visit's cost.

On CPC campaigns, set the **Cost Model** to **Not Tracked** so ClickFlare uses the cost passed in the URL.

> [!NOTE]
>
> On CPM campaigns, `[PRICE]` is the price per 1,000 impressions, not per click. With **Not Tracked**, ClickFlare would record that as the cost of each visit and overstate spend about 1,000 times. On CPM and Smart CPM, set the Cost Model to **CPC** and enter your CPM bid divided by 1,000 as the cost value. A popunder impression is roughly one visit. For push, in-page and native, the result is only an estimate.

For ClickAdilla's CPA campaigns, set the Cost Model to **CPA**, with your price per conversion.

When the recorded spend differs from your ClickAdilla spend, correct it with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md). See [Cost Models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md).

## Delayed revenue

If you run search arbitrage (RSOC or AFD) behind ClickAdilla, the feed reports revenue hours or days after the click. To pass that revenue to ClickAdilla once it arrives, see [Sending Delayed Revenue to Traffic Sources](https://clickflare.com/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md).

***

## Troubleshooting

> **ClickAdilla doesn't record the conversion**
>
> * The campaign URL in ClickAdilla is missing `CLICK_ID=[CLICK_ID]`, or the macro was edited. Copy the URL from ClickFlare again.
> * `REPLACE` was never replaced with your token.
> * The postback uses ClickAdilla's `[CLICK_ID]` or `[PAYOUT]` placeholders instead of ClickFlare's `{external_id}` and `{payout}`.
> * The `CAMPAIGN_ID` row was removed or moved, so `{trackingField1}` sends the wrong value.

> **Conversions show in ClickFlare but not in ClickAdilla**
>
> * **Traffic source postback URL** is off on the ClickAdilla traffic source.
> * **Disable sending postbacks to traffic source** is on in the campaign.
> * The postback is mapped to a different event than the one the conversion logged. Check **Logs → Event Logs** to see which event was recorded.
> * Check **Logs → Postback Status**: a failed request shows the status code ClickAdilla returned.

> **Cost is far too high**
>
> The campaign is on CPM and the Cost Model is **Not Tracked**, so ClickFlare records the CPM price as the cost of each visit. Switch to **CPC** with your CPM bid divided by 1,000. See [Cost](#cost).

> **Some columns are empty**
>
> ClickAdilla only fills in the macros your ad format supports. A native campaign never fills `BANNER_CREATIVE_ID`, for example. See [Which rows work on which format](#which-rows-work-on-which-format). If every column is empty, the URL was edited or pasted somewhere ClickAdilla doesn't process macros. See [Traffic Source Tokens Arriving Empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md).

For the general checklist, see [Conversions not showing](https://clickflare.com/docs/en/troubleshooting/conversions-not-showing.md).

***

**FREQUENTLY ASKED QUESTIONS**

> **Q1:** Can I use the same ClickAdilla traffic source for all my ClickAdilla campaigns?

**A1:** Yes. The postback is set once on the traffic source and every campaign using it sends conversions the same way. The campaign ID travels with each click, so one postback serves every campaign.

> **Q2:** Why does the postback send `{trackingField1}`?

**A2:** ClickAdilla's postback asks for the campaign ID. The template stores `[CAMPAIGN_ID]` in tracking field 1, so `{trackingField1}` sends it back.

> **Q3:** Why are the parameter names in capitals?

**A3:** The template uses the macro names as ClickFlare's parameter names, for example `CLICK_ID=[CLICK_ID]`. It works the same as lower case. Don't rename them after the campaign is live.

> **Q4:** Should I use Redirect or Direct tracking with ClickAdilla?

**A4:** Redirect is the usual choice and works with every ClickAdilla format. Use Direct only if ClickAdilla must see your lander's domain as the destination. See [Direct Campaign Tracking](https://clickflare.com/docs/en/campaigns/direct-campaign-tracking.md).

> **Q5:** Does the template work for ClickAdilla's CPA campaigns?

**A5:** Yes. CPA campaigns need the postback, because ClickAdilla charges on the conversions it receives. Set the campaign's cost model to **CPA** in ClickFlare.

## Related

> **[Traffic source postbacks](https://clickflare.com/docs/en/tracking/how-to-configure-a-traffic-source-s2s-postback-url.md)**
>
> Every token you can use in a postback.

> **[Custom conversions](https://clickflare.com/docs/en/settings/custom-conversions.md)**
>
> Split leads and sales into separate events.

> **[Cost models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md)**
>
> How CPC, CPA and RevShare costs are calculated.

> **[Conversions not showing](https://clickflare.com/docs/en/troubleshooting/conversions-not-showing.md)**
>
> The general checklist when postbacks don't arrive.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.