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

# Clickadu as a Traffic Source

> Track Clickadu campaigns in ClickFlare: pass the SUBID click ID, cost and zone, and send conversions back to Clickadu's sconvtrk.com postback.

![Clickadu traffic source template](https://mintcdn.com/clickflare/oNlhH4HxR5JFsOiP/images/integrations/covers/templates/clickadu.png?fit=max\&auto=format\&n=oNlhH4HxR5JFsOiP\&q=85\&s=23b50eb77ecf61a64001511be6b711f6)

Clickadu is a self-serve ad network selling popunder, banner, in-page push, instant text message, video pre-roll and Skim traffic, bought on CPM and other models. This guide sets up Clickadu as a traffic source in ClickFlare. It covers passing Clickadu's click, cost and zone data into your reports and sending conversions back to Clickadu, so its Smart eCPA optimization and your stats agree.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Popunder, banners, in-page push, instant text message, video pre-roll, Skim |
| **Click ID macro** | `${SUBID}`, mandatory for conversion tracking |
| **Conversion tracking** | S2S postback to `sconvtrk.com`. The template includes it. You replace two account values. |
| **Payout passed back** | Yes, as `payout`. The zone ID is passed back too, as `zone_id`. |
| **Multiple events** | Not documented. Send one event. |
| **Cost** | Passed per visit by `{cost}`. Set the cost model to **Not Tracked**, which reads the cost from the URL. |
| **Conversion API** | No |

## How it works

**1. Clickadu sends the click**

A visitor clicks your ad. Clickadu opens your ClickFlare campaign URL and fills in its macros: the click ID in `visitor_id`, the cost in `cost` and the zone in `zoneid`.

**2. ClickFlare stores the Clickadu click ID and cost**

ClickFlare saves the value of `visitor_id` as the visit's **External ID**, records the cost for the visit, 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 Clickadu**

ClickFlare fires the Clickadu postback, replacing `{external_id}` with the stored Clickadu click ID, `{payout}` with the conversion's payout and `{trackingField1}` with the zone ID. Clickadu matches it to the original click and counts the conversion.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`visitor_id`) and *Clickadu's* macro (`${SUBID}`). The template does this for you. In the **postback URL** you keep *Clickadu's* parameter (also `visitor_id`) and put in *ClickFlare's* token (`{external_id}`). The parameter name is the same on both sides. Only the value changes.

## 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](/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](/docs/en/tracking/creating-an-offer-1.md) and [Adding an Affiliate Network](/docs/en/tracking/adding-an-affiliate-network.md).
* **Have access to Tracking in your Clickadu account.** Clickadu generates your own postback URL there. You need two values from it: the unique identifier in its path and its `aid`.
* **Decide which conversion Clickadu should receive.** Clickadu optimizes on what you send it. If your funnel has several steps (lead, then sale), choose the one that best predicts profit. See [Sending only the right event](#sending-only-the-right-event).

***

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

1. Go to **Campaigns** and click **New**.
2. In **Traffic Source**, open the dropdown and click **+ New Traffic Source**.
3. Type `clickadu` in the search box and select the **Clickadu** template.
4. Enter a **Name**, for example `Clickadu`.
5. Leave **Cost currency** on **USD** unless your Clickadu account is billed in another currency.

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

| Name | TS Parameter | TS Token (Clickadu macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| Cost | `cost` | `{cost}` | `{cost}` | The cost of the visit. See [Cost](#cost). |
| external\_id | `visitor_id` | `${SUBID}` | `{external_id}` | Clickadu's click ID. Required for the postback. |
| Zone ID | `zoneid` | `{zoneid}` | `{trackingField1}` | The publisher zone that showed the ad |

![The Clickadu template's Parameters table in ClickFlare, with Clickadu's macros pre-filled](https://mintcdn.com/clickflare/nZP6EuFBEVoKPMxM/images/integrations/templates/clickadu/parameters.png?fit=max\&auto=format\&n=nZP6EuFBEVoKPMxM\&q=85\&s=55d78ba36b1efb0df0d21366f04b88bd)

The template is short: one tracking field. `zoneid` is the one that matters most. It tells you which publisher zones convert, so you can blacklist or bid up zones in Clickadu. The template's postback also sends the zone back to Clickadu, so keep this row in **tracking field 1**.

> [!WARNING]
>
> Don't change or remove the `external_id` row or the Cost row. Without `${SUBID}` in the campaign URL, Clickadu cannot match conversions to clicks. Without `{cost}`, ClickFlare has no cost for your Clickadu visits. Note that `${SUBID}` starts with a dollar sign. Keep it exactly as the template writes it.

### Add more Clickadu data

Nine tracking fields are free. To pass more Clickadu data, click **Add Parameter**, give it a name and parameter, and enter the Clickadu macro as the **TS Token**. ClickFlare assigns the next free tracking field.

Other trackers' Clickadu templates also pass these macros. Confirm each one against the macro list in your Clickadu account before you add it:

| Suggested name | TS Parameter | TS Token |
| - | - | - |
| Campaign ID | `campaignid` | `{campaignid}` |
| OS | `os` | `{os}` |
| Device | `device` | `{device}` |
| Browser | `browser` | `{browser}` |
| Connection type | `connection_type` | `{connection_type}` |
| Carrier | `carrier` | `{carrier}` |

Campaign ID and OS are the most useful additions. They let you split one ClickFlare campaign's stats by Clickadu campaign and by operating system.

## Step 2 – Set up the postback

The postback is what sends conversions to Clickadu. It lives on the traffic source, so every campaign that uses this Clickadu traffic source sends conversions the same way. Clickadu needs it for its Smart eCPA bidding, which optimizes your bids on the conversions it receives.

The Clickadu template includes the postback URL. When you turn on **Traffic source postback URL**, the field is already filled in:

```text theme={null}
http://sconvtrk.com/conversion/REPLACE_HASH/?visitor_id={external_id}&aid=REPLACE_AID&payout={payout}&zone_id={trackingField1}
```

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

It sends four things to Clickadu:

* `visitor_id={external_id}`: Clickadu's click ID, stored from `${SUBID}` when the visit arrived.
* `aid=REPLACE_AID`: your Clickadu account value. You replace it.
* `payout={payout}`: the conversion's payout.
* `zone_id={trackingField1}`: the zone ID, stored from `{zoneid}` in tracking field 1.

Two parts are placeholders: `REPLACE_HASH` in the path and `REPLACE_AID`. Both are specific to your Clickadu account, so you take them from the postback URL Clickadu generates for you.

### Find your values in Clickadu

1. In Clickadu, open **Tracking**. Clickadu generates your postback URL automatically.
2. If Clickadu asks for a tracker, choose a generic or custom option. Clickadu may not list ClickFlare.
3. Look at the generated postback URL. It looks like this:

```text theme={null}
http://sconvtrk.com/conversion/UNIQUE_IDENTIFIER/?visitor_id=${SUBID}&aid=AID
```

* The **unique identifier** is the part of the path between `/conversion/` and `/?`. It replaces `REPLACE_HASH`.
* The **`aid`** is the value after `aid=`. It replaces `REPLACE_AID`.

### Fill them in on 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 URL appears in the field.
3. Replace `REPLACE_HASH` with your unique identifier and `REPLACE_AID` with your `aid`. Leave everything else as it is. The result looks like this:

```text theme={null}
http://sconvtrk.com/conversion/UNIQUE_IDENTIFIER/?visitor_id={external_id}&aid=AID&payout={payout}&zone_id={trackingField1}
```

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 Clickadu traffic source selected.

> [!WARNING]
>
> If `REPLACE_HASH` or `REPLACE_AID` is left in the URL, or either value is wrong, Clickadu receives the request but cannot assign the conversion to your account. Copy both values exactly as Clickadu generated them.

Don't paste Clickadu's generated URL over the template's. Clickadu's version has `${SUBID}` as the click ID, which ClickFlare doesn't recognize and would send as literal text, and it has no payout or zone. In the postback, the click ID must always be `{external_id}`.

To learn what each postback token does, see [How to Configure a Traffic Source S2S Postback URL](/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** to **Not Tracked**. The template passes cost per visit. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for Clickadu's popunder 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 Clickadu macro from the template: `cost={cost}`, `visitor_id=${SUBID}` and `zoneid={zoneid}`.

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

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

## Step 4 – Create the campaign in Clickadu

1. In Clickadu, go to **Campaigns** and start a new campaign.
2. Fill in the required details: ad format, targeting and bid.
3. Paste the ClickFlare campaign URL into the **Target URL** field of your creative.
4. Set any other options and save. The campaign runs once your account has funds and the campaign passes approval.

Paste the URL exactly as ClickFlare gives it. Clickadu replaces `${SUBID}`, `{cost}` and `{zoneid}` when the ad is clicked.

## Step 5 – Test the integration

Run a test before you scale the campaign.

1. Open your ClickFlare campaign URL in a browser, with a test value in place of the macros, for example `visitor_id=test123` and `cost=0.001`.
2. Complete the offer the way a real visitor would, or fire a test conversion from your affiliate network.
3. In ClickFlare, check that the conversion appears on the campaign with `test123` as its External ID.
4. Go to **Logs → Postback Status** and filter by the campaign. You should see a request to `sconvtrk.com` with `visitor_id=test123`, your payout in `payout`, and no `REPLACE_HASH` or `REPLACE_AID` left in the URL.

A test click ID is not a real Clickadu click, so Clickadu won't count this conversion. The test proves that ClickFlare fires the postback with the right value. Once real traffic converts, conversions appear in your Clickadu statistics.

***

## Sending only the right event

Clickadu's postback carries no event name, so each conversion it receives counts the same. Send the event you want Clickadu to optimize on.

> **Sending only one event**
>
> If Clickadu should only learn from your final sale, keep a single postback and map it to that event. Earlier steps (leads, add to carts) still show in ClickFlare. They just don't reach Clickadu.
>
> 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.

> **Why not send every step**
>
> If you add a postback per event with **+ Another postback URL**, all of them go to the same Clickadu URL. Clickadu cannot tell a lead from a sale and counts each one as a conversion. Your Clickadu conversion count and eCPA then stop matching your real results.

## Cost

The template's Cost row maps Clickadu's `{cost}` macro to ClickFlare's `{cost}` token. Clickadu fills in the cost of each visit when the ad is clicked, and ClickFlare records it against that visit. The macro and the token have the same name. In the campaign URL, `{cost}` is Clickadu's macro, and Clickadu replaces it before the visit reaches ClickFlare.

To use it, set the campaign's **Cost Model** to **Not Tracked**. ClickFlare then reads the cost from the campaign URL instead of a fixed value, so your Cost, Profit and ROI follow what Clickadu actually charged.

Check the cost in ClickFlare against Clickadu's own statistics for the first days. If they drift, correct the totals with a [manual cost upload](/docs/en/settings/manual-cost-upload.md). ClickFlare has no Clickadu cost API integration. See [Cost Models](/docs/en/core-platform-concepts/cost-models.md) and [Traffic Source Cost Tracking](/docs/en/tracking/how-to-setup-traffic-source-cost-tracking.md).

## Delayed revenue

If you run search arbitrage (RSOC or AFD) behind Clickadu, the feed reports revenue hours or days after the click. The template's postback sends `{payout}`, so a delayed postback carries the revenue known when it fires. See [Sending Delayed Revenue to Traffic Sources](/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md).

***

## Troubleshooting

> **Clickadu doesn't count conversions**
>
> * The campaign URL in Clickadu is missing `visitor_id=${SUBID}`, or the macro was edited. Copy the URL from ClickFlare again.
> * The postback contains `${SUBID}` instead of `{external_id}`, usually because Clickadu's generated URL was pasted over the template's.
> * `REPLACE_HASH` or `REPLACE_AID` is still in the postback, or the value is wrong. Copy both from Clickadu's **Tracking** page again.
> * The `external_id` row was removed from the traffic source.

> **Conversions show in ClickFlare but not in Clickadu**
>
> * **Traffic source postback URL** is off on the Clickadu traffic source, or the field was left empty.
> * **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 Clickadu returned.

> **Cost is zero in ClickFlare**
>
> * The campaign's **Cost Model** is not **Not Tracked**, or a fixed value overrides it.
> * The Cost row was removed or edited, so `cost={cost}` is missing from the campaign URL.
> * The URL was pasted somewhere Clickadu doesn't replace macros.

> **The zone column is empty**
>
> The macro was not replaced, usually because the URL was edited or pasted somewhere Clickadu doesn't process macros. Paste the campaign URL from ClickFlare unchanged. See [Traffic Source Tokens Arriving Empty](/docs/en/troubleshooting/tokens-arriving-empty.md).

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

***

**FREQUENTLY ASKED QUESTIONS**

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

**A1:** Yes. The postback is set once on the traffic source and every campaign using it sends conversions the same way. Create a second Clickadu traffic source only if a campaign needs a different postback or event.

> **Q2:** What are `REPLACE_HASH` and `REPLACE_AID` in the postback?

**A2:** Placeholders for your own account's unique identifier and `aid`. Every Clickadu postback contains them, so the template can't fill them in. Copy both from the postback URL on Clickadu's **Tracking** page.

> **Q3:** Why is `visitor_id` in both the campaign URL and the postback?

**A3:** Both sides happen to use the same name. In the campaign URL, `visitor_id` is the ClickFlare parameter that receives Clickadu's `${SUBID}`. In the postback, `visitor_id` is Clickadu's parameter that receives ClickFlare's `{external_id}`. Change neither name.

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

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

> **Q5:** Do I need the postback if I buy on CPM?

**A5:** It is optional, but recommended. Without conversions, Clickadu's Smart eCPA cannot optimize your bids, and Clickadu's stats show no conversion data next to your spend.

## Related

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

> **[Custom conversions](/docs/en/settings/custom-conversions.md)**
>
> Choose which event Clickadu receives.

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

> **[Conversions not showing](/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.