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

# ClickFlare

> Server-side conversion postback for ClickFlare, fired automatically on every paid order

# ClickFlare

[ClickFlare](https://clickflare.io) is a click-id-based ad attribution tracker. TagadaPay's integration fires a server-side postback to ClickFlare every time an order is paid — no thank-you-page pixel required.

<Info>
  **You do NOT need to install the ClickFlare client-side pixel** (`/cf/cv?click_id=…&ct=sale`) on your TagadaPay checkout or thank-you page. TagadaPay's integration replaces it with a server-side postback that's more reliable (no adblockers, no Safari ITP, no cleared caches).
</Info>

***

## How It Works

```
[Ad click]                          [Lander]                          [TagadaPay checkout]               [Order paid]
    │                                   │                                   │                                │
    │ ClickFlare assigns click_id       │ Lander URL has ?cf_click_id=…     │ TagadaPay captures the         │
    │  & sets first-party cookie        │ + cookie cf_click_id is set       │ click_id into customer.metadata │
    │                                   │                                   │                                │
    └──────────────────────────────────►└──────────────────────────────────►└────────────────────────────────► [POST] /cf/postback
                                                                                                              GET https://{trackingDomain}/cf/postback
                                                                                                                  ?cid={click_id}
                                                                                                                  &payout={amount}
                                                                                                                  &txid={orderId}
```

Every paid order triggers exactly one HTTP GET to ClickFlare. Refunds, refresh, double-clicks — none of them produce duplicate conversions.

***

## Setup

<Steps>
  <Step title="Find your ClickFlare tracking domain">
    In ClickFlare: **Settings (gear icon, top-left) → Tracking URLs → Tracking domains**.

    Copy your custom tracking domain (e.g. `cft.dentixor.com`). It is **not** `clickflare.io` — that won't resolve to your workspace.
  </Step>

  <Step title="Enable ClickFlare in TagadaPay">
    In the TagadaPay dashboard, go to **Settings → Integrations**, find the **ClickFlare** card, click **Connect**, paste your tracking domain (no `https://` prefix), and save.

    There's no API key — ClickFlare's S2S postback authenticates via the click\_id itself.
  </Step>

  <Step title="Make sure your offer URLs forward the click_id">
    On your lander or affiliate offer URL, the click\_id needs to reach the TagadaPay checkout. ClickFlare's docs recommend appending `?cf_click_id={click_id}` to your offer URL using their `{click_id}` token.

    Example offer URL inside ClickFlare:

    ```
    https://yourstore.com/checkout?cf_click_id={click_id}
    ```

    TagadaPay also reads the standard `click_id` URL parameter and the `cf_click_id` / `cfclid` cookies as fallbacks, so as long as one of those is present at checkout creation, attribution works.
  </Step>

  <Step title="Place a test order and verify in ClickFlare">
    After the next paid order, open the ClickFlare **Conversions** report. You should see the conversion within a minute, with the correct payout and transaction id matching your TagadaPay order id.
  </Step>
</Steps>

***

## What TagadaPay Fires

For every paid order, exactly this URL is rendered and fired (HTTP GET, all values URL-encoded):

```
https://{trackingDomain}/cf/postback?cid={clickId}&payout={payout}&txid={orderId}
```

**Parameter mapping** (per [ClickFlare's S2S docs](https://help.clickflare.io/en/articles/s2s-postback-urls)):

| ClickFlare param | Source                                            | Notes                                                                                                              |
| ---------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `cid`            | Click\_id captured on lander                      | Required. ClickFlare's receiving-side parameter name (the value is the same click\_id you tagged the lander with). |
| `payout`         | Order's paid amount in major units (e.g. `49.99`) | Optional `payoutValue` override available in the integration form.                                                 |
| `txid`           | TagadaPay order id (`ord_…`)                      | Distinguishes upsell / multi-step conversions for the same visitor.                                                |

***

## Optional Settings

The CRM form exposes two optional fields:

* **Conversion type** — leave blank. The S2S endpoint doesn't accept a `ct` parameter; this field is reserved for trackers in the same family that do (Binom, RedTrack).
* **Fixed payout** — if set, this number is sent as `payout` instead of the order's paid amount. Useful when you want to attribute a fixed CPA value to ClickFlare regardless of cart total. Leave blank to use the actual amount paid.

***

## How TagadaPay Identifies the Click

TagadaPay reads (in priority order, first non-empty wins):

1. URL parameter `cf_click_id`
2. URL parameter `click_id`
3. Cookie `cf_click_id`
4. Cookie `cfclid`

URL params win over cookies because they're the freshest signal — a cookie can persist from a prior visit, but the URL reflects this session.

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Conversion isn't showing up in ClickFlare">
    1. Verify the tracking domain in TagadaPay matches the one in ClickFlare exactly (no `https://`, no trailing slash).
    2. Check the order's customer record in TagadaPay's CRM — `metadata.queryParams` and `metadata.cookies` should show one of the click\_id signals (`cf_click_id`, `click_id`, etc.).
    3. If `metadata` is empty: the offer URL didn't carry the click\_id. Re-check ClickFlare's offer URL setup and confirm the `{click_id}` token resolves on click.
    4. If `metadata` has the click\_id but ClickFlare shows nothing: the click\_id is stale or expired (ClickFlare's default click TTL is 30 days). Try a fresh click.
  </Accordion>

  <Accordion title="Postback fires but ClickFlare reports $0 payout">
    Check the integration form's **Fixed payout** field — if it's set to `0`, every conversion is reported with zero revenue. Either clear the field (defaults to the order's paid amount) or set the correct fixed CPA.
  </Accordion>

  <Accordion title="I want to fire the postback client-side instead">
    You don't need to. The server-side path is more reliable. If you really must (e.g., you're testing without a TagadaPay-hosted checkout), use the merchant snippet from [Script Injection Examples](https://crm.tagadapay.com) — it points to the *client-side pixel* (`/cf/cv?click_id=…&ct=sale`) which is a different endpoint than the S2S one this integration uses.
  </Accordion>
</AccordionGroup>

***

## References

* [ClickFlare official S2S postback docs](https://help.clickflare.io/en/articles/s2s-postback-urls)
* [Tracking & Attribution overview](/developer-tools/tracking/overview)
