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

# MaxBounty and ClickFlare Integration Guide

> Track MaxBounty offers in ClickFlare: pass the click ID in lowercase s2, return it with #S2# and #RATE#, and place the postback globally or per offer.

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

MaxBounty is a CPA affiliate network that has been running since 2004. Advertisers pay per defined **Action**, such as a lead, a sale, a call or a click. MaxBounty runs its own tracking platform, not CAKE, Everflow or HasOffers, so its menus and tokens are its own. As an affiliate, you apply for offers in the MaxBounty dashboard, build tracking links there and place your postback.

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

* **The offer URL** sends the ClickFlare click ID to MaxBounty in `s2`.
* **The postback URL** sends it back to ClickFlare with every credited lead, together with your payout.

This guide covers the full setup, why you type the `s2` parameter yourself instead of using **Append Click ID to Offer Url**, the difference between MaxBounty's global and per-offer postbacks, 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=maxbounty) 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://your-maxbounty-tracking-link.com/?...&s2=CF_CLICK_ID
     (MaxBounty stores the ClickFlare click ID in s2)
  → Visitor completes the Action on the advertiser's page
  → MaxBounty fires your postback:
     https://trk.yourdomain.com/cf/cv?click_id=CF_CLICK_ID&payout=12.50
     (ClickFlare matches the conversion to the original click)
```

The two links mirror each other:

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

> [!NOTE]
>
> **Offer URL = their parameter + your token. Postback URL = your parameter + their token.** MaxBounty writes the click ID into `s2` on the way in and reads it back with the `#S2#` token on the way out. The link parameter is **lowercase** (`s2`), while the token is **uppercase** and wrapped in `#` (`#S2#`).

***

## 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 MaxBounty affiliate account. Some offers need you to **Request approval** first. They don't work until the offer's status shows **Approved**.

***

## What the MaxBounty template contains

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

![The MaxBounty template in ClickFlare: Click Id is #S2#, Payout is #RATE# and Transaction ID is empty](https://mintcdn.com/clickflare/PKYGC-ZYZsK7Zcur/images/integrations/maxbounty/clickflare-maxbounty-template-parameters.png?fit=max\&auto=format\&n=PKYGC-ZYZsK7Zcur\&q=85\&s=d5c08789adad5b7410193135d4e6760b)

| Field | MaxBounty 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** | `#RATE#` | `payout` | Your payout for the Action. Pre-filled by the template. |
| **Transaction ID** | empty (optional: `#CONVERSION_ID#`) | `txid` | A unique ID per conversion. Leave it empty unless MaxBounty lists `#CONVERSION_ID#` in your account. See [Transaction ID](#transaction-id-optional). |
| **Event Type** | leave empty | `ct` | The conversion type. MaxBounty offers pay one Action per lead and don't send an event name, so leave it empty. |

> [!WARNING]
>
> Don't use **Append Click ID to Offer Url** with this template. ClickFlare builds the parameter name from the Click Id token, so it would add `S2={cf_click_id}` in uppercase. MaxBounty's links use lowercase `s2`. Type `&s2={cf_click_id}` into the offer URL yourself and leave the toggle off.

***

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

Most MaxBounty leads show up within a few minutes, but some offers credit leads days later, and the offer description says so. With the default **Visit Timestamp**, ClickFlare reports a late lead on the day of the original click, so it lands on a different date than in MaxBounty. 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 MaxBounty 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 **MaxBounty** and pick the **MaxBounty** template.
2. Keep **Click Id** as `#S2#` and **Payout** as `#RATE#`.
3. Leave **Transaction ID** empty for now. See [Transaction ID](#transaction-id-optional) before you decide to fill it in.
4. Leave **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 MaxBounty pays you in. That's usually USD, but check your account.

ClickFlare builds the postback URL from these fields:

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

![The Conversion tracking section of the MaxBounty network in ClickFlare, with the generated postback URL: click\_id=#S2#, payout=#RATE#](https://mintcdn.com/clickflare/PKYGC-ZYZsK7Zcur/images/integrations/maxbounty/clickflare-maxbounty-postback-url.png?fit=max\&auto=format\&n=PKYGC-ZYZsK7Zcur\&q=85\&s=3be17ed8cf971693028463722e26bc6e)

Copy the postback URL and save the network.

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

In the MaxBounty dashboard, open the offer. If it needs approval, click **Request approval** and wait until it shows **Approved**. Then build the link:

1. Go to **Tracking link builder** and click **Build tracking link**.
2. Choose the traffic type and the creative type.
3. Copy the link.

Some versions of the dashboard put this under the offer's **Creatives** instead: choose the traffic type, then click **Get tracking code** or **Generate Code**.

The offer page also has a **Sub-ID & Callbacks** section with Sub-ID fields that are written into the link. You can either type `{cf_click_id}` into **Sub-ID 2** before you generate the link, or leave it empty and add `s2` in ClickFlare in the next step. Do one or the other, not both, or `s2` appears twice.

> [!NOTE]
>
> If the copied link already has `s2` with a placeholder, for example `&s2=%7Bclick%5Fid%7D`, remove that part. Otherwise `s2` carries the literal placeholder or appears twice.

**6. Create the offer in ClickFlare**

In the offer form:

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

```text theme={null}
https://your-maxbounty-tracking-link.com/?...&s2={cf_click_id}
```

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

4. Leave **Append Click ID to Offer Url** off. With the `#S2#` token, the toggle would add `S2=` in uppercase instead of `s2=`.

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

MaxBounty has two places for a postback. Pick one for each offer. See [Global or per-offer postback](#global-or-per-offer-postback) for which to use.

**Global postback** (all offers):

1. Click the profile icon in the top right and choose **Global postback**.
2. Choose **URL** from the drop-down. Some guides call it "URL (any campaign tracking type)".
3. Paste the ClickFlare postback URL into **Default postback code**.
4. Click **Save Global Postback**.

**Per-offer postback** (one offer):

1. Open the offer and go to its **Sub-ID & Callbacks** section.
2. Set **Callback Type** to **URL**.
3. Paste the ClickFlare postback URL.
4. Click **Save Pixel**.

**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 MaxBounty 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 or per-offer postback

| | Global postback | Per-offer postback |
| - | - | - |
| **Where** | Profile icon → **Global postback** | Offer → **Sub-ID & Callbacks** |
| **Field** | **Default postback code**, type **URL** | **Callback Type** = **URL** |
| **Save button** | **Save Global Postback** | **Save Pixel** |
| **Applies to** | Every offer, by default | That offer only |

The global postback is the easy choice if you run all your MaxBounty traffic through ClickFlare. You set it once, and every offer you start later fires it too.

Use a per-offer postback when only some offers run through ClickFlare, or when one offer needs a different URL, for example with an extra parameter. MaxBounty doesn't document which one wins when an offer has both. Most likely the offer's own callback replaces the global default for that offer, but don't rely on it: if an offer has its own callback, make sure it's the ClickFlare URL too.

> [!TIP]
>
> You can pass the offer ID with each conversion. Add `&param1=#OFFID#` to the postback URL, either with the **Include additional parameters in the postback URL** toggle in ClickFlare or by hand. See [Postback parameters](/docs/en/tracking/click-flare-parameters-in-postback-urls.md).

***

## Transaction ID (optional)

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.

For MaxBounty, this matters less than for most networks. Offers pay one Action per lead, so one click normally produces at most one postback. That's why the template leaves **Transaction ID** empty.

MaxBounty may also have a `#CONVERSION_ID#` token. Its name suggests a unique ID per conversion, but MaxBounty doesn't document its tokens in public, and only one tracker's guide uses it. Add it only if you can confirm it:

1. Look at the token list MaxBounty shows next to the postback field, or ask your affiliate manager.
2. If `#CONVERSION_ID#` is there, set **Transaction ID** to `#CONVERSION_ID#` in the ClickFlare affiliate network. The postback then ends in `&txid=#CONVERSION_ID#`.
3. Copy the new postback URL and update it in MaxBounty.

If it isn't listed, leave the transaction ID out. Don't fill it with a token that's the same on every conversion, such as `#OFFID#`: that merges conversions instead of keeping them apart.

***

## Reversed leads

MaxBounty or the advertiser can reverse an Action after it was credited, even after it was paid, for example for duplicates, fraud, non-payment or returns.

* No source says MaxBounty sends a postback when it reverses a lead, and ClickFlare doesn't read a status from the postback anyway.
* ClickFlare therefore counts the leads MaxBounty credited, not what it finally paid. Compare against MaxBounty's reports before payday, and adjust in ClickFlare if leads were reversed.

***

## 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 MaxBounty in the address bar or your browser's network tab. It must have `s2=` in lowercase followed by a real ClickFlare click ID, not the literal text `{cf_click_id}`, and `s2` must appear only once.

**2. Check the click in MaxBounty**

In MaxBounty's reports, check that the click shows the ClickFlare click ID as Sub-ID 2. If it's empty, the offer URL or the lander CTA is wrong.

**3. Confirm a conversion**

MaxBounty has no public postback test tool. To test without a real lead, copy the postback URL from ClickFlare, replace `#S2#` with the click ID from step 1 and `#RATE#` with a number, and open it in your browser. Otherwise, wait for the first real lead. The conversion should appear on the campaign in ClickFlare with the payout from MaxBounty.

***

## Troubleshooting

> **Leads show in MaxBounty but not in ClickFlare**
>
> Work through these in order:
>
> * **No postback on the offer.** Check that the global postback is saved, or that the offer's **Sub-ID & Callbacks** section has the ClickFlare URL with **Callback Type** set to **URL**.
> * **Another callback on the offer.** If the offer has its own callback with a different URL, it may be used instead of the global one. Replace it with the ClickFlare URL.
> * **s2 is empty in MaxBounty.** The offer URL is missing `s2={cf_click_id}`, or the lander CTA links straight to MaxBounty instead of using the ClickFlare click URL.
> * **The parameter is uppercase.** If the offer URL has `S2=` (for example because **Append Click ID to Offer Url** is on), MaxBounty may not store the click ID. Use lowercase `s2` and turn the toggle off.
> * **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.
> * **The offer isn't approved yet.** Offers that need approval don't track until they show **Approved**.
>
> See [Troubleshooting S2S postbacks](/docs/en/tracking/troubleshooting-s2s-postback-url-in-clickflare.md) for the general checks.

> **ClickFlare receives a literal #S2# or cf\_click\_id**
>
> * A literal `#S2#` means MaxBounty didn't replace the token. Check the spelling and case against the token list next to the postback field.
> * A literal `cf_click_id` means the offer URL in ClickFlare has the token without braces. It must be `{cf_click_id}`.
> * A value like `{click_id}` means a placeholder from the MaxBounty link is still in `s2`. Remove it from the offer URL.

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

> **A lead shows on a different date than in MaxBounty**
>
> Some offers credit leads days after the click. Set **Conversion registration time reporting** to **Postback Timestamp**. See [Conversion registration time](/docs/en/settings/conversion-registration-time-reporting.md).

***

## FAQ

> **Why s2 and not s1?**
>
> MaxBounty has five sub IDs, `s1` to `s5`, and `s2` is the one trackers use for their click ID. Any of them works as long as the offer URL and the postback use the same one, for example `s3` with `#S3#`. Keep `s2` unless you have a reason to change it, so the template's `#S2#` matches.

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

> **Does MaxBounty send a status or event name?**
>
> No status or event token is documented. Offers pay one Action per lead, so leave **Event Type** empty and use one conversion type.

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

***

## Related

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

> **[Postback parameters](/docs/en/tracking/click-flare-parameters-in-postback-urls.md)**
>
> click\_id, txid, param1–20

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