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

# ClickDealer and ClickFlare Integration Guide

> Track ClickDealer offers in ClickFlare: pass the click ID in s2, add the postback under Tools → Global postback, and use #leadid# as the transaction ID.

![ClickDealer and ClickFlare Integration](https://mintcdn.com/clickflare/VQTm_IbloDE7ntcf/images/integrations/covers/clickdealer.png?fit=max\&auto=format\&n=VQTm_IbloDE7ntcf\&q=85\&s=3f1637f47acf93624ef016363473fb62)

ClickDealer is a CPA affiliate network covering more than 20 consumer verticals, including e-commerce, home services, insurance, legal, education and healthcare. It has separate logins for its **CPA network** and its **Smartlink** product. This guide covers the CPA network. As an affiliate, you apply for offers in the ClickDealer portal, get tracking links there and place your postback.

ClickDealer doesn't name its tracking platform, but its portal uses CAKE-style tokens (`#s2#`, `#price#`) and CAKE-like menus. If you know CAKE, most of it will look familiar. The [CAKE guide](/docs/en/integrations/cake-click-flare-integration-guide.md) has more background on how those tokens work.

To track ClickDealer offers in ClickFlare, two links have to carry the ClickFlare click ID in both directions:

* **The offer URL** sends the ClickFlare click ID to ClickDealer in `s2`.
* **The postback URL** sends it back to ClickFlare with every conversion, together with the payout and a unique conversion ID.

This guide covers the full setup, the global and per-campaign postbacks, why the transaction ID matters on multi-event offers, and why ClickDealer's own postback test doesn't create a conversion in ClickFlare.

> [!TIP]
>
> Only need the two values? The [Click ID & postback macros](/docs/en/integrations/click-id-and-postback-macros.md?q=clickdealer) page has them ready to copy with your tracking domain.

***

## How the data flows

```text theme={null}
Ad click
  → https://trk.yourdomain.com/cf/r/CAMPAIGN?...
     (ClickFlare records the click and generates the click ID)
  → [optional lander → CTA uses the ClickFlare click URL]
  → https://clickdealer-tracking-domain.com/?a=12345&c=678&s2=CF_CLICK_ID
     (ClickDealer stores the ClickFlare click ID in s2)
  → Visitor converts on the advertiser's page
  → ClickDealer fires your postback:
     https://trk.yourdomain.com/cf/cv?click_id=CF_CLICK_ID&payout=25.00&txid=LEAD_ID
     (ClickFlare matches the conversion to the original click)
```

The two links mirror each other:

| Link | Built from | ClickDealer side | ClickFlare side |
| - | - | - | - |
| **Offer URL** (in ClickFlare) | ClickDealer's parameter + ClickFlare's token | `s2` | `{cf_click_id}` |
| **Postback URL** (in ClickDealer) | ClickFlare's parameter + ClickDealer's token | `#s2#`, `#price#`, `#leadid#` | `click_id`, `payout`, `txid` |

> [!NOTE]
>
> **Offer URL = their parameter + your token. Postback URL = your parameter + their token.** ClickDealer writes the click ID into `s2` on the way in and reads it back with the `#s2#` token on the way out. Its tokens are lowercase and wrapped in `#`, not braces.

***

## 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](/docs/en/settings/tracking-domains.md).
* A ClickDealer affiliate account (CPA network login), approved for the offer you want to run. Offers you apply for wait under **Pending campaigns** until ClickDealer approves them.

***

## What the ClickDealer template contains

ClickFlare has a **ClickDealer** affiliate network template. It fills in the tokens ClickFlare needs.

![The ClickDealer template in ClickFlare: Click Id is #s2#, Payout is #price# and Transaction ID is #leadid#](https://mintcdn.com/clickflare/VQTm_IbloDE7ntcf/images/integrations/clickdealer/clickflare-clickdealer-template-parameters.png?fit=max\&auto=format\&n=VQTm_IbloDE7ntcf\&q=85\&s=e635242ad1ad5bbe3c2965129da192d6)

| Field | ClickDealer token | ClickFlare parameter | What it does |
| - | - | - | - |
| **Click Id** | `#s2#` | `click_id` | Returns the ClickFlare click ID that the offer URL put in `s2`. Pre-filled by the template. |
| **Payout** | `#price#` | `payout` | Your payout for the conversion, as a plain number. Pre-filled by the template. |
| **Transaction ID** | `#leadid#` | `txid` | The ID given to each conversion, so separate conversions on one click stay separate. Pre-filled by the template. See [why](#why-the-transaction-id-matters). |
| **Event Type** | leave empty | `ct` | The conversion type. ClickDealer has no known event-name token, so leave it empty. See [Events](#offers-with-several-events). |

***

## 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 in ClickDealer too. See [Tracking domains](/docs/en/settings/tracking-domains.md).

**2. Report conversions by postback time**

Go to **Settings → General Settings** and set **Conversion registration time reporting** to **Postback Timestamp**.

The network 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](/docs/en/settings/conversion-registration-time-reporting.md).

> [!NOTE]
>
> 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](/docs/en/campaigns/creating-a-campaign-in-click-flare.md).

**4. Create the ClickDealer 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 **ClickDealer** and pick the **ClickDealer** template.
2. Keep **Click Id** as `#s2#`, **Payout** as `#price#` and **Transaction ID** as `#leadid#`.
3. Leave **Event Type** empty.
4. Under **Conversion tracking**, select your own **Tracking Domain** and keep **S2S Postback URL** as the tracking method.
5. Set **Payout currency** to the currency ClickDealer pays you in.

ClickFlare builds the postback URL from these fields:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id=#s2#&payout=#price#&txid=#leadid#
```

![The Conversion tracking section of the ClickDealer network in ClickFlare, with the generated postback URL: click\_id=#s2#, payout=#price# and txid=#leadid#](https://mintcdn.com/clickflare/VQTm_IbloDE7ntcf/images/integrations/clickdealer/clickflare-clickdealer-postback-url.png?fit=max\&auto=format\&n=VQTm_IbloDE7ntcf\&q=85\&s=d3a897ba0bc1f36914cac8adc6e7f154)

Copy the postback URL and save the network.

**5. Get the offer's tracking link from ClickDealer**

In the ClickDealer portal:

1. Go to **Offers → Browse offers** and open the offer.
2. Tick **I agree** and click **Apply for offer**.
3. Choose a **Media type**, add notes if you want, and click **Apply**.
4. Once approved, the offer moves from **Pending campaigns** to **My campaigns**. Open it there.
5. Scroll to **Get tracking links**, pick a creative and click **Copy URL to clipboard**.

> [!NOTE]
>
> Use `s2`, not `s1`. On CAKE-style platforms `s1` is meant for sub-affiliate IDs and holds only 50 characters. `s2` to `s5` take up to 100 characters each, and ClickFlare click IDs fit easily.

**6. Create the offer in ClickFlare**

In the offer form:

1. Name the offer.
2. Select the ClickDealer affiliate network you just created.
3. Paste the ClickDealer link into **Offer URL** with `&s2={cf_click_id}` at the end:

```text theme={null}
https://clickdealer-tracking-domain.com/?a=12345&c=678&s2={cf_click_id}
```

![The ClickFlare New Offer form with the ClickDealer affiliate network selected and s2=\{cf\_click\_id} in the Offer URL](https://mintcdn.com/clickflare/VQTm_IbloDE7ntcf/images/integrations/clickdealer/clickflare-clickdealer-offer-url.png?fit=max\&auto=format\&n=VQTm_IbloDE7ntcf\&q=85\&s=047dbfea2c9376c2d150f391318d5c45)

If you pasted the link without `s2`, turn on **Append Click ID to Offer Url** instead. ClickFlare then adds `s2={cf_click_id}` from the template. Use one or the other, not both.

> [!WARNING]
>
> Write `{cf_click_id}` with braces. Without them ClickDealer 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 ClickDealer**

For a postback that covers all your offers:

1. In the left menu, go to **Tools → Global postback**.
2. Paste the ClickFlare postback URL into **Global S2S postback URL**.
3. Click **Save**.

If you don't see **Global postback** under **Tools**, check the **Profile** section. At least one tracker's guide places it there, so the menu may differ between accounts.

To fire the postback for only some offers or events, see [Global, campaign and event postbacks](#global-campaign-and-event-postbacks).

**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 ClickDealer link. ClickFlare then adds the click ID when it redirects to the offer. See [Paths with landers and offers](/docs/en/campaigns/campaign-s-path-destination-to-landers-offers.md).

**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](#verify-the-setup).

***

## Global, campaign and event postbacks

ClickDealer lets you add a global postback on your account, or individual postbacks on selected campaigns and events.

| Level | Where | Use it when |
| - | - | - |
| **Global** | **Tools → Global postback** | You run all your ClickDealer offers through ClickFlare |
| **Campaign** | Not publicly documented | Only some offers run through ClickFlare, or one offer needs a different URL |
| **Event** | Not publicly documented | An offer pays on several steps and you want to tell them apart |

ClickDealer doesn't publish where the campaign and event postbacks are set. Look on the offer's page under **My campaigns**, or ask your affiliate manager. On CAKE-based portals, it's usually a tracking or pixel tab on the offer, which also lists every token the offer supports.

> [!WARNING]
>
> Don't add the ClickFlare postback both globally and on a campaign or event for the same conversion. ClickFlare could receive it twice. With `#leadid#` as the transaction ID, two copies of the same conversion carry the same ID and count once, but it's cleaner to use one level per offer.

***

## Why the transaction ID matters

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

| Token | Value | Use it as txid? |
| - | - | - |
| `#leadid#` | The ID given to every conversion | **Yes** |
| `#s2#` | The ClickFlare click ID | No: the same for every conversion on a click |
| `#oid#`, `#campid#` | The offer and campaign IDs | No: the same for every conversion |

On CAKE, `#leadid#` is assigned once per conversion. A resend of the same conversion carries the same value, so ClickFlare doesn't count it twice, while a separate event on the same click gets its own value and counts on its own.

ClickDealer doesn't publish its token list, so confirm `#leadid#` is supported in your account. Check the token list on the offer's page, or ask your affiliate manager. If it isn't listed, remove `&txid=#leadid#` from the postback. Single-event offers still work without it. On multi-event offers, conversions on the same click then merge into one.

***

## Offers with several events

Some offers pay on more than one step, for example a lead and then a sale. ClickDealer supports postbacks per event, but has no known token that sends the event name. To report each step as its own conversion type in ClickFlare:

1. Create a custom conversion for each step under **Settings → Custom Conversions**, for example `lead` and `sale`. See [Custom conversions](/docs/en/settings/custom-conversions.md).
2. Add a separate postback on each event in ClickDealer, with a fixed `&ct=` value that exactly matches the custom conversion parameter:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id=#s2#&payout=#price#&txid=#leadid#&ct=sale
```

3. Don't also cover those events with the global postback, or each event arrives twice: once with `ct` and once without.

If you don't need the steps apart, the global postback alone is enough. Keep `txid=#leadid#` so each step counts, and use the payout to tell them apart in your reports.

***

## Pending and rejected conversions

ClickDealer has no known status token, and nothing public says it sends a postback when a conversion is later rejected or reversed. ClickFlare doesn't read a status from the postback anyway.

ClickFlare therefore counts what ClickDealer recorded, not what it finally paid. Compare against ClickDealer's conversion report before payday, and adjust in ClickFlare if conversions were scrubbed.

***

## Verify the setup

**1. Click through the campaign**

Open the ClickFlare campaign URL (with a lander, also click the CTA). When the offer loads, check the first request to ClickDealer in the address bar or your browser's network tab. It must have `s2=` followed by a real ClickFlare click ID, not the literal text `{cf_click_id}`. Copy that click ID.

**2. Fire a test postback with a real click ID**

ClickDealer has a built-in tool to test postbacks without a real transaction. It shows that your postback URL is reachable, but it **doesn't create a conversion in ClickFlare**: the test can't produce a valid ClickFlare click ID, so ClickFlare has no click to match.

For an end-to-end check, copy the postback URL from ClickFlare and replace `#s2#` with the click ID from the previous step, `#price#` with a number and `#leadid#` with any test value. Open it in your browser. Or run a real conversion.

**3. Check the conversion in ClickFlare**

The conversion should appear on the campaign with the payout from the postback. In **Logs → Event Logs**, check that it arrived with a `txid`.

***

## Troubleshooting

> **Conversions show in ClickDealer but not in ClickFlare**
>
> Work through these in order:
>
> * **No postback saved.** Check **Tools → Global postback**, or the offer's own postback if you set one there.
> * **s2 is missing or empty.** The offer URL is missing `s2={cf_click_id}`, or the lander CTA links straight to ClickDealer instead of using the ClickFlare click URL. A missing `s2` is the most common mistake.
> * **The click ID went into another sub ID.** If the offer URL uses `s1` or `s3` but the postback reads `#s2#`, ClickFlare receives the wrong value. Both sides must use the same sub ID.
> * **You only used the test tool.** ClickDealer's postback test has no real ClickFlare click ID, so it never shows up as a conversion. See [Verify the setup](#verify-the-setup).
>
> See [Troubleshooting S2S postbacks](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md) for the general checks.

> **Only one of several conversions shows in ClickFlare**
>
> The postback has no `txid`, or `#leadid#` isn't replaced in your account. Check that the postback ends in `&txid=#leadid#` and that the offer's token list includes `#leadid#`. Conversions that were already merged are not restored.

> **ClickFlare receives a literal #s2# or cf\_click\_id**
>
> * A literal `#s2#` means ClickDealer didn't replace the token. Check the spelling against the offer's token list. Tokens are lowercase.
> * A literal `cf_click_id` means the offer URL in ClickFlare has the token without braces. It must be `{cf_click_id}`.

> **The payout is 0, empty or in the wrong currency**
>
> * Check that the postback has `payout=#price#` and the offer's payout is set to **Auto** in ClickFlare.
> * `#price#` has no currency. Set the affiliate network's **Payout currency** in ClickFlare to the currency ClickDealer pays you in.

> **Each event arrives twice**
>
> The same event is covered by the global postback and an event postback. Remove one of them. See [Global, campaign and event postbacks](#global-campaign-and-event-postbacks).

***

## FAQ

> **Is ClickDealer built on CAKE?**
>
> ClickDealer doesn't say so. Its tokens and menus match CAKE's, so the [CAKE guide](/docs/en/integrations/cake-click-flare-integration-guide.md) is useful background. The menus differ, though: follow this guide for where things are in the ClickDealer portal.

> **Does this work for ClickDealer Smartlink?**
>
> Smartlink has its own login, and its postback setup isn't publicly documented. Ask your affiliate manager which click ID and payout tokens it supports.

> **Can I pass more data to ClickDealer?**
>
> Yes. Use the other sub IDs in the offer URL, for example `s3={campaign_id}`. ClickDealer shows them in its reports. Keep `s2` for the click ID.

> **Can I send the conversion back to my traffic source?**
>
> Yes. Once ClickFlare records the ClickDealer conversion, it can send it to the traffic source through the traffic source's postback or conversion API integration. Nothing changes on the ClickDealer side.

***

## Related

> **[Macro reference](/docs/en/integrations/click-id-and-postback-macros.md)**
>
> Every network's values

> **[CAKE guide](/docs/en/integrations/cake-click-flare-integration-guide.md)**
>
> How CAKE tokens work

> **[Postback issues](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md)**
>
> Troubleshoot S2S


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