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

# AdExtrem Conversion Tracking & Postback Setup

> Set up AdExtrem conversion tracking in ClickFlare: pass the adxcid click ID, adxcost and zone macros, then post adxcid and adxpayout back to AdExtrem.

![AdExtrem traffic source template](https://mintcdn.com/clickflare/DhjTzIxyWfHWlx0a/images/integrations/covers/templates/adextrem.png?fit=max\&auto=format\&n=DhjTzIxyWfHWlx0a\&q=85\&s=2c2440ee5477b3ab06f071b009ed8eb5)

AdExtrem is an ad network focused on adult traffic: porn, dating and cam. It sells popunder, display banner, push notification and direct link traffic (email, navtab and post-prelander clicks), with bidding per zone. This guide sets up AdExtrem as a traffic source in ClickFlare. It covers passing AdExtrem's click data into your reports and sending conversions, with payout, back to AdExtrem so its stats and yours agree.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Popunder, display banners (300×250, 300×100), push notifications, direct link (email, navtab, post-prelander clicks) |
| **Click ID macro** | `{adxcid}`, required for conversion tracking |
| **Conversion tracking** | S2S postback to `ads.adextrem.com/delivery/conversion.php` |
| **Payout passed back** | Yes, in the `adxpayout` parameter |
| **Multiple events** | One postback. No separate event parameter is documented. |
| **Cost** | Passed per click by the template (`{adxcost}`). Cost Model: **Not Tracked**. |
| **Conversion API** | No |

## How it works

**1. AdExtrem sends the click**

A visitor clicks your ad. AdExtrem opens your ClickFlare campaign URL and fills in its macros: the click ID in `adxcid`, the price of the click in `adxcost`, plus the zone, the domain, the AdExtrem campaign and the creative.

**2. ClickFlare stores the AdExtrem click ID**

ClickFlare saves the value of `adxcid` as the visit's **External ID**, records the cost, and redirects the visitor to your lander or offer.

**3. The conversion reaches ClickFlare**

Your affiliate network or dating/cam program posts the conversion back to ClickFlare, matched on the ClickFlare click ID.

**4. ClickFlare posts it back to AdExtrem**

ClickFlare fires the AdExtrem postback, replacing `{external_id}` with the stored AdExtrem click ID and `{payout}` with the revenue. AdExtrem matches it to the original click.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`adxcid`) and *AdExtrem's* macro (`{adxcid}`). The template does this for you. In the **postback URL** you write *AdExtrem's* parameter (`adxcid`) and *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. Adult traffic is filtered harder than most, so this matters even more here. 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).
* **Fund your AdExtrem advertiser account.** AdExtrem asks for a minimum deposit of `$100` before campaigns run.
* **Pick your zones.** AdExtrem announces new zones by ID on its blog, with the format, geo and minimum bid. Note the zone IDs you plan to test. You will compare them with the `adxzoneid` column in ClickFlare.
* **Decide which conversion AdExtrem should receive.** The AdExtrem postback has no event parameter. If your funnel has several steps (free signup, then paid membership), decide which one AdExtrem should count. See [Choosing what to send](#choosing-what-to-send).

***

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

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

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

| Name | TS Parameter | TS Token (AdExtrem macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| cost | `adxcost` | `{adxcost}` | `{cost}` | AdExtrem's price for the click. See [Cost](#cost). |
| externalId | `adxcid` | `{adxcid}` | `{external_id}` | AdExtrem's click ID. Required for the postback. |
| adxzoneid | `adxzoneid` | `{adxzoneid}` | `{trackingField1}` | The publisher zone that showed the ad |
| adxdomain | `adxdomain` | `{adxdomain}` | `{trackingField2}` | The publisher domain the click came from |
| adxcampaignid | `adxcampaignid` | `{adxcampaignid}` | `{trackingField3}` | Your AdExtrem campaign ID |
| adxmaterialname | `adxmaterialname` | `{adxmaterialname}` | `{trackingField4}` | The creative (AdExtrem calls it the material) |
| Tracker 1 | `tracker1` | `{tracker1}` | `{trackingField5}` | AdExtrem's first sub-ID. Also shown in the Tracker1 tab of your AdExtrem stats. |
| Tracker 2 | `tracker2` | `{tracker2}` | `{trackingField6}` | AdExtrem's second sub-ID. Also shown in the Tracker2 tab of your AdExtrem stats. |

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

Each tracking field becomes a column you can group reports by. `adxzoneid` is the one you will use most. AdExtrem sells traffic zone by zone, so the zone report tells you which zones convert and which to pause or bid up. `adxdomain` gives the same view one level down, by site.

> [!WARNING]
>
> Don't change or remove the `externalId` row. Without `adxcid={adxcid}` in the campaign URL, ClickFlare has no AdExtrem click ID to send back, and AdExtrem cannot match the conversion to a click.

### AdExtrem sub-IDs

The **Tracker 1** and **Tracker 2** rows carry AdExtrem's two sub-ID tokens, `{tracker1}` and `{tracker2}`. The same values show up in the **Tracker1** and **Tracker2** tabs of your AdExtrem stats, so you can break down performance by sub-ID in both places. They stay empty unless you use sub-IDs in AdExtrem.

To pass more AdExtrem data, click **Add Parameter**, give it a name and parameter, and enter the AdExtrem macro as the **TS Token**. ClickFlare assigns the next free tracking field. Check the macros your AdExtrem account offers before adding them.

## Step 2 – Set up the postback

The postback is what sends conversions to AdExtrem. It lives on the traffic source, so every campaign that uses this AdExtrem traffic source sends conversions the same way.

1. In the **New Traffic Source** form, scroll to **Passing conversion info to traffic source**.
2. Turn on **Traffic source postback URL**. The template's postback appears:

```text theme={null}
https://ads.adextrem.com/delivery/conversion.php?adxcid={external_id}&adxpayout={payout}
```

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

It already sends the click ID (`{external_id}`) and the payout (`{payout}`), both as ClickFlare tokens. There is nothing to replace: no account name or ID goes into the URL. AdExtrem identifies the conversion by the click ID alone.

3. 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.
4. Click **Save**. You are back in the campaign editor with the AdExtrem traffic source selected.

> [!WARNING]
>
> Don't replace `{external_id}` with AdExtrem's own `{adxcid}` macro in the postback. AdExtrem's conversion examples write `adxcid={adxcid}` because they show the network side. In ClickFlare, the value must be the ClickFlare token `{external_id}`. ClickFlare doesn't know `{adxcid}` and would send it as literal text.

If you want to confirm the postback format or ask about payout reporting, your AdExtrem account manager can check the postback against your account. AdExtrem gives every advertiser a dedicated manager.

`adxpayout` is sent in your ClickFlare offer's payout currency. If your offers pay in EUR and AdExtrem reports in USD, set up currency conversion in ClickFlare so the payout matches. See [Multicurrency in ClickFlare](/docs/en/tracking/multicurrency-support-in-click-flare-how-it-works.md).

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**, so ClickFlare uses the cost AdExtrem passes. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for popunder, banner and direct link 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 AdExtrem macro from the template, for example `adxcid={adxcid}`, `adxcost={adxcost}` and `adxzoneid={adxzoneid}`.

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

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

## Step 4 – Create the campaign in AdExtrem

1. Log in to your AdExtrem advertiser account and create a campaign.
2. Choose the format, zones, targeting and bid as usual.
3. Paste the ClickFlare campaign URL into the campaign's URL field.
4. Submit the campaign.

Paste the URL exactly as ClickFlare gives it. AdExtrem replaces each `{adx...}` macro when the ad is clicked. Don't edit the braces: a macro AdExtrem doesn't recognize reaches ClickFlare as literal text.

## Step 5 – Test the integration

AdExtrem doesn't document a built-in postback tester, so test with a real click.

1. Open the campaign URL from a live AdExtrem ad, or ask your account manager for a test click. A URL you open by hand has no click ID, so its conversion can't be credited.
2. In ClickFlare, open the campaign report and group by `adxzoneid`. The visit should show a zone ID, not `{adxzoneid}` or an empty value.
3. Complete the offer the way a real visitor would.
4. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. Check the postback to `ads.adextrem.com`:

| Result | Meaning |
| - | - |
| **2xx** | AdExtrem accepted the postback. Confirm the conversion in your AdExtrem stats. |
| **400** | AdExtrem rejected the click ID. A postback with an unknown or empty `adxcid` returns `Error conversion 101`. Check that the campaign URL carries `adxcid={adxcid}` and the postback carries `adxcid={external_id}`. |
| No postback | ClickFlare never fired it. See [Conversions not showing](/docs/en/troubleshooting/conversions-not-showing.md). |

5. In AdExtrem, check that the conversion appears in your campaign stats, with the payout.

***

## Choosing what to send

The AdExtrem postback takes one click ID and one payout. No event parameter is documented, so every postback you send counts as the same kind of conversion in AdExtrem.

> **Sending only your main conversion**
>
> If AdExtrem should only learn from your final sale, map the postback to that event. In ClickFlare, create a [custom conversion](/docs/en/settings/custom-conversions.md) for it, for example `purchase`, and pick it in the event dropdown next to the postback. Earlier steps (free signups, trials) still show in ClickFlare. They just don't reach AdExtrem.
>
> 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.

> **Sending more than one event**
>
> You can click **+ Another postback URL** and map a second postback to another event. Both use the same AdExtrem URL, and AdExtrem has no way to tell them apart. It counts both as conversions and adds both payouts.
>
> Only do this if you want AdExtrem to count every step. Otherwise keep one postback on your main conversion. If you need event-level stats inside AdExtrem, ask your account manager whether your account supports it.

## Cost

The template passes cost per click. The `cost` row sends AdExtrem's `{adxcost}` macro, which is AdExtrem's price for the click, and ClickFlare records it as the visit's cost.

On the campaign, set the **Cost Model** to **Not Tracked** so ClickFlare uses the cost passed in the URL.

> [!NOTE]
>
> AdExtrem quotes bids as CPM. For direct link formats (email, navtab), AdExtrem says to divide the CPM by 1,000 to get the price you actually pay per click. After launch, compare ClickFlare's **Cost** column with your AdExtrem spend. If it doesn't match, switch the Cost Model to **CPC** and enter your CPM bid divided by 1,000 as the cost value. A popunder impression is roughly one visit.

ClickFlare has no cost-tracking API integration for AdExtrem. When the recorded spend differs from your AdExtrem spend, correct it with a [manual cost upload](/docs/en/settings/manual-cost-upload.md). 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

Some adult offers pay out later, for example rebills or revenue share on cam spend. To pass that revenue to AdExtrem once it arrives, see [Sending Delayed Revenue to Traffic Sources](/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md).

***

## Troubleshooting

> **Postback Status shows 400 for AdExtrem**
>
> * The campaign URL in AdExtrem is missing `adxcid={adxcid}`, or the macro was edited. Copy the URL from ClickFlare again.
> * The postback uses `{adxcid}` instead of ClickFlare's `{external_id}`. ClickFlare sends `{adxcid}` as literal text.
> * The `externalId` row was removed from the traffic source.
> * The conversion came from a visit you opened by hand, not from an AdExtrem click. It has no AdExtrem click ID.

> **Conversions show in ClickFlare but not in AdExtrem**
>
> * **Traffic source postback URL** is off on the AdExtrem traffic source.
> * **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 AdExtrem returned.

> **AdExtrem shows conversions with no payout**
>
> The template sends `adxpayout={payout}`, so it was removed or edited. Restore `&adxpayout={payout}` at the end of the postback.
>
> Also check that the offer in ClickFlare has a payout, or that your affiliate network posts one. An empty `{payout}` sends nothing.

> **Zone, domain or creative columns are empty**
>
> The macros were not replaced, usually because the URL was edited, or pasted somewhere AdExtrem 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 AdExtrem traffic source for all my AdExtrem 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 AdExtrem traffic source only if a campaign needs a different postback, for example one mapped to another event.

> **Q2:** Why is it `adxcid` in both the campaign URL and the postback?

**A2:** AdExtrem uses the same parameter name for the click ID in both directions. In the campaign URL, AdExtrem fills it with its macro `{adxcid}`. In the postback, ClickFlare fills it with `{external_id}`, the click ID it stored. Change neither.

> **Q3:** Do I need to put my AdExtrem account ID in the postback?

**A3:** No. Unlike some networks, the AdExtrem postback has no account placeholder. The click ID is enough for AdExtrem to find the click and the campaign.

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

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

> **Q5:** How do I find which zones to blacklist?

**A5:** Group the campaign report by the `adxzoneid` tracking field and compare cost with revenue per zone. Pause the losing zones in your AdExtrem campaign. The zone IDs in ClickFlare are the same IDs AdExtrem uses.

## 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)**
>
> Split signups and sales into separate events.

> **[Cost models](/docs/en/core-platform-concepts/cost-models.md)**
>
> How CPC, CPA and RevShare 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.