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

# Perform[cb] and ClickFlare Integration Guide

> Track Perform[cb] offers in ClickFlare: fill subid2 in your link with the click ID, and add a Postback under Tracking Pixels that returns subid2.

![Perform\[cb\] and ClickFlare Integration](https://mintcdn.com/clickflare/gS923ib4WFySqxSL/images/integrations/covers/perform-cb.png?fit=max\&auto=format\&n=gS923ib4WFySqxSL\&q=85\&s=22226e68ab7e37b07778534b79b16a1c)

Perform\[cb], formerly Clickbooth, is a performance network that has connected advertisers and affiliates since 2002. It runs on its own platform and pays on CPA, CPL, CPS, CPI and CPC across verticals such as finance, health, e-commerce and lead generation. Your tracking links are **Offer Groups** (also called links): one link can send traffic to one offer, to several, or to every offer in a vertical.

To track Perform\[cb] offers in ClickFlare, two links have to carry the ClickFlare click ID in both directions:

* **The offer URL** sends the ClickFlare click ID to Perform\[cb] in `subid2`.
* **The postback URL** sends it back to ClickFlare with every conversion, together with the payout. In Perform\[cb] it's a **Postback** you add under **Tracking Pixels**.

This guide covers the setup, which pixel scope to pick, how to track event conversions, and how to check that it all works.

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

***

## At a glance

To set up Perform\[cb] with ClickFlare:

1. Set up your domain and postback time.
2. Create the Perform\[cb] affiliate network.
3. Pull your link from Perform\[cb].
4. Create the offer in ClickFlare.
5. Add the Postback under Tracking Pixels.

Each step is explained in [Setup](#setup).

| | Perform\[cb] + ClickFlare |
| - | - |
| **How it connects** | PerformCB template + Postback under Tracking Pixels |
| **What reaches ClickFlare** | Main and event conversions with payout |
| **Timing** | Real time, per conversion |
| **Key parameters** | `subid2={cf_click_id}`, `{subid2}`, `{payout}`, `{event_name}` |
| **Works with** | CPA, CPL, CPS, CPI and CPC offers and Offer Groups |
| **Good to know** | Use `{subid2}`, not `{clickid}`, which is Perform\[cb]'s own ID. |

***

## 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://track.clickbooth.com/c/aff?lid=123&subid1=&subid2=CF_CLICK_ID&subid3=&subid4=&subid5=
     (Perform[cb] stores the ClickFlare click ID in subid2)
  → Visitor converts on the advertiser's page
  → Perform[cb] fires your postback:
     https://trk.yourdomain.com/cf/cv?click_id=CF_CLICK_ID&payout=35.00
     (ClickFlare matches the conversion to the original click)
```

The two links mirror each other:

| Link | Built from | Perform\[cb] side | ClickFlare side |
| - | - | - | - |
| **Offer URL** (in ClickFlare) | Perform\[cb]'s parameter + ClickFlare's token | `subid2` | `{cf_click_id}` |
| **Postback URL** (in Perform\[cb]) | ClickFlare's parameter + Perform\[cb]'s macros | `{subid2}`, `{payout}` | `click_id`, `payout` |

> [!NOTE]
>
> **Offer URL = their parameter + your token. Postback URL = your parameter + their token.** Perform\[cb] writes the click ID into `subid2` on the way in and reads it back with the `{subid2}` macro on the way out. Its own `{clickid}` macro is Perform\[cb]'s click ID, not yours.

***

## 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).
* An approved Perform\[cb] affiliate account. Offers marked **ATR** (Apply To Run) need approval before you can create a link for them.

***

## What the PerformCB template contains

ClickFlare has a **PerformCB** affiliate network template. It fills in the Perform\[cb] macros ClickFlare needs.

![The PerformCB template in ClickFlare: Click Id is \{subid2} and Payout is \{payout}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/perform-cb/clickflare-perform-cb-template-parameters.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=b9472c02b3d6707c2a6c2d7f70720b93)

| Field | Perform\[cb] macro (AN Token) | ClickFlare parameter | What it does |
| - | - | - | - |
| **Click Id** | `{subid2}` | `click_id` | Returns the ClickFlare click ID that the offer URL put in `subid2`. Pre-filled by the template. |
| **Payout** | `{payout}` | `payout` | Your payout for the conversion. Pre-filled by the template. |
| **Transaction ID** | leave empty | `txid` | Perform\[cb] has no conversion ID macro. See [Event conversions](#event-conversions). |
| **Event Type** | leave empty | `ct` | The conversion type. Set it only on event postbacks. |

***

## 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 Perform\[cb] 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**.

Perform\[cb] 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 Perform\[cb] 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 **PerformCB** and pick the template.
2. Name it, for example "Perform\[cb]".
3. Keep **Click Id** `{subid2}` and **Payout** `{payout}`.
4. Leave **Transaction ID** and **Event Type** empty.
5. Under **Conversion tracking**, select your own **Tracking Domain** and keep **S2S Postback URL** as the tracking method.
6. Set **Payout currency** to the currency Perform\[cb] pays you in.

ClickFlare builds the postback URL from these fields:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id={subid2}&payout={payout}
```

![The Conversion tracking section of the PerformCB network in ClickFlare, with the generated postback URL: click\_id=\{subid2}\&payout=\{payout}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/perform-cb/clickflare-perform-cb-postback-url.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=cb7256f35831d53e6a66d5609e8eaacc)

Copy the postback URL and save the network.

**5. Pull your link from Perform\[cb]**

In Perform\[cb], go to **Offers**, click the offer name and click **Create Link** (or **Create Offer Group**). Choose the **Link Type**, usually **Link Only**, and the traffic type and source. You can add secondary offers in case the preferred one is unavailable, or click **Proceed without Secondary Offers**.

The link has empty sub ID fields at the end:

```text theme={null}
https://track.clickbooth.com/c/aff?lid=123&subid1=&subid2=&subid3=&subid4=&subid5=
```

`lid` is the Link ID. Pull a link for each Link ID you want to run.

**6. Create the offer in ClickFlare**

In the offer form:

1. Name the offer.
2. Select the Perform\[cb] affiliate network you just created.
3. Paste the Perform\[cb] link into **Offer URL** and type `{cf_click_id}` right after `subid2=`:

```text theme={null}
https://track.clickbooth.com/c/aff?lid=123&subid1=&subid2={cf_click_id}&subid3=&subid4=&subid5=
```

![The Offer URL field of the ClickFlare New Offer form with a Perform\[cb\] link ending in subid2=\{cf\_click\_id}](https://mintcdn.com/clickflare/b2lpDlx8sR69TsUK/images/integrations/perform-cb/clickflare-perform-cb-offer-url.png?fit=max\&auto=format\&n=b2lpDlx8sR69TsUK\&q=85\&s=1333ee79d61133f0e6f9bf603c4a8adb)

4. Leave **Append Click ID to Offer Url** **off** when the link already has an empty `subid2=`. The toggle would add a second `subid2={cf_click_id}` at the end, and the link would carry `subid2` twice. Use the toggle only if your link has no `subid2` at all.

> [!WARNING]
>
> Write `{cf_click_id}` with braces. Without them Perform\[cb] 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 under Tracking Pixels**

In Perform\[cb], open **Tracking Pixels** in the left menu and add a new pixel:

1. Choose **Postback** as the format (server-to-server).
2. Choose the scope: **Global**, **Offer**, **Offer Group** or **Vertical**. See [Which pixel scope to pick](#which-pixel-scope-to-pick).
3. Choose the conversion point: **Main Conversion** for the offer's payout.
4. Paste the ClickFlare postback URL and save.

**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 Perform\[cb] 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).

***

## Which pixel scope to pick

Perform\[cb] lets you place as many pixels as you like, and **fires every pixel that applies** to a conversion. A Global pixel fires along with any Offer pixel for the same conversion.

| Scope | Fires for | Use it when |
| - | - | - |
| **Global** | Every conversion on every link and offer | All your Perform\[cb] traffic goes through ClickFlare. The simplest choice. |
| **Offer** | Conversions on one offer | Only some offers run through ClickFlare. |
| **Offer Group** | Conversions on one link, which may hold several offers | You track one link in ClickFlare. |
| **Vertical** | Conversions on offers in one vertical | You track one vertical in ClickFlare. |

Pick **one** scope for the ClickFlare URL. If both a Global and an Offer pixel send the same main conversion to ClickFlare, the two postbacks carry the same click ID and no transaction ID, so ClickFlare keeps one conversion. It doesn't double count, but you can't tell which pixel fired, and a mistake in either one is hard to find. Keep one.

***

## Event conversions

Some Perform\[cb] offers pay on an **event** after the main conversion, for example a purchase after a trial. Perform\[cb] sends events through their own pixels, with the conversion point set to **Event Conversion**. Its `{event_name}` macro holds the name of the event.

By default ClickFlare keeps **one conversion per click ID**. An event arrives with the same click ID as the main conversion. Without a transaction ID, ClickFlare treats it as the same conversion and keeps the last one received, so the main conversion would disappear. Give event postbacks a `txid` that differs from the main one.

To track events:

1. Create a [custom conversion](/docs/en/settings/custom-conversions.md) in ClickFlare, for example with the parameter `event`.
2. In Perform\[cb], add a second Postback pixel with the conversion point **Event Conversion**.
3. Use the ClickFlare postback URL with `txid` and `ct` added:

```text theme={null}
https://trk.yourdomain.com/cf/cv?click_id={subid2}&payout={payout}&txid={event_name}&ct=event
```

The main conversion keeps its postback without a `txid`. Each event arrives with its name as the `txid` and counts in its own column.

> [!WARNING]
>
> The `ct` value must **exactly match** a parameter of a custom conversion in ClickFlare. If it doesn't, ClickFlare records a regular conversion instead.

> [!NOTE]
>
> If the same event can happen more than once per click, for example monthly rebills, every one carries the same `{event_name}` and ClickFlare keeps one of them. Perform\[cb] has no per-conversion ID macro for affiliates. Ask your affiliate manager how repeat events are reported on that offer. Test one event before you scale.

***

## App install offers

For CPI and CPE offers, Perform\[cb] uses `subid1` for the click or transaction ID in its own guidance, and `subid2` for the sub source. ClickFlare's template uses `subid2`. Either works, as long as the offer URL and the postback use the same sub ID. If you follow Perform\[cb]'s app layout, put `{cf_click_id}` in `subid1` and change **Click Id** to `{subid1}`.

Because of Apple's App Tracking Transparency, some app conversions reach Perform\[cb] without a click ID. Perform\[cb] can send those through an aggregated (clickless) postback per campaign. ClickFlare needs a click ID to attribute a conversion, so clickless conversions won't match a click. Ask your affiliate manager how many conversions on the offer arrive this way.

***

## Verify the setup

**1. Click through the campaign**

Open the ClickFlare campaign URL (with a lander, also click the CTA). When the offer loads, the first request goes to Perform\[cb]'s link domain. In your browser's network tab, check that it has `subid2=` followed by a real ClickFlare click ID, not the literal text `{cf_click_id}`, and only one `subid2`.

**2. Generate a test conversion**

Ask your affiliate manager or Perform\[cb] support to fire a test conversion on your click, or complete the offer if that's allowed. A test fired without a real ClickFlare click has no click ID to match.

**3. Check the conversion in ClickFlare**

The conversion should appear on the campaign with the payout from Perform\[cb]. For an event offer, check that the event arrives in its own column with `txid` set to the event name.

***

## Troubleshooting

> [accordion] Conversions show in Perform\[cb] but not in ClickFlare
>
> Work through these in order:
>
> * **The pixel doesn't cover the offer.** Check the scope (Global, Offer, Offer Group or Vertical) and that it fires on **Main Conversion**.
> * **The pixel is HTML, not Postback.** Choose **Postback** for the ClickFlare URL.
> * **subid2 is empty in Perform\[cb].** The offer URL has `subid2=` with nothing after it, or the lander CTA links straight to Perform\[cb] instead of using the ClickFlare click URL.
> * **The click ID went into another sub ID.** If the offer URL uses `subid1` but the postback reads `{subid2}`, ClickFlare receives the wrong value. Both sides must use the same sub ID.
>
> See [Troubleshooting S2S postbacks](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md) for the general checks.

> [accordion] The postback returns Perform\[cb]'s click ID
>
> The postback uses `{clickid}` instead of `{subid2}`. `{clickid}` is Perform\[cb]'s own click ID, which ClickFlare doesn't know. Use `click_id={subid2}`.

> [accordion] The main conversion disappeared when an event arrived
>
> The event postback has no `txid`, so ClickFlare treated it as the same conversion. Add `txid={event_name}` and a `ct` value to the event postback.

> [accordion] The payout is 0 or in the wrong currency
>
> * Check that the postback has `payout={payout}` and the offer's payout is set to **Auto** in ClickFlare.
> * Set the affiliate network's **Payout currency** in ClickFlare to the currency Perform\[cb] pays you in.

***

## FAQ

> [accordion] Does ClickFlare integrate with Perform\[cb]?
>
> Yes. ClickFlare has a PerformCB affiliate network template. You pass the click ID in subid2 on the link and add the ClickFlare URL as a Postback under Tracking Pixels.

> [accordion] Why subid2?
>
> Perform\[cb]'s own guide for CPA traffic puts the tracker's click ID in `subid2` and uses `subid1` for sub source information. ClickFlare's template follows it. Use `subid1`, `subid3`, `subid4` and `subid5` for your own labels, such as the traffic source or placement.

> [accordion] Does an Offer Group with several offers work?
>
> Yes. The click ID travels on the link, whichever offer Perform\[cb] picks. ClickFlare reports all conversions under the ClickFlare offer that holds the link. Add `&param1={offerid}` to the postback if you want to see which Perform\[cb] offer converted. See [Postback parameters](/docs/en/tracking/click-flare-parameters-in-postback-urls.md).

> [accordion] Is this the same as the old Clickbooth setup?
>
> Yes. Perform\[cb] is the former Clickbooth, and its links still run on `track.clickbooth.com`. If you used Clickbooth with another tracker, the setup is the same: the click ID in `subid2` and `{subid2}` in the postback.

> [accordion] Can I send the conversion back to my traffic source?
>
> Yes. Once ClickFlare records the Perform\[cb] conversion, it can send it to the traffic source through the traffic source's postback or conversion API integration. Perform\[cb] can also send conversions to Facebook, TikTok, Google and Microsoft Ads itself. Use either one, not both, or the traffic source counts the conversion twice.

***

## Related

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

> [card] [Custom conversions](/docs/en/settings/custom-conversions.md)
>
> Events as columns

> [card] [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.