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

# ActiveRevenue as a Traffic Source

> Track ActiveRevenue campaigns in ClickFlare: pass the click ID and publisher feed, and post conversions with value to ActiveRevenue.

![ActiveRevenue traffic source template](https://mintcdn.com/clickflare/j4F_mr_BIrMz-iaH/images/integrations/covers/templates/activerevenue.png?fit=max\&auto=format\&n=j4F_mr_BIrMz-iaH\&q=85\&s=3230da2c245307fbaa5ed997a1e46404)

ActiveRevenue is a self-serve advertising platform (DSP) selling popunder, zero-click, push, in-page push, native, video and Telegram traffic. This guide sets up ActiveRevenue as a traffic source in ClickFlare. It covers passing ActiveRevenue's click data into your reports and sending conversions, with their value, back to ActiveRevenue so its bidding and your stats agree.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Popunder, Zero-Click, Push, In-page (floating) push, Native, Video, Telegram |
| **Click ID macro** | `{conversion}`, required for conversion tracking |
| **Conversion tracking** | S2S postback to `xml.activerevenue.com/conversion` |
| **Payout passed back** | Yes, in the `value` parameter |
| **Multiple events** | Yes, one postback per goal, with the goal's `id` |
| **Cost** | Not passed by the template. Use Cost Model **CPC** or **CPA**. See [Cost](#cost). |
| **Conversion API** | No |

## How it works

**1. ActiveRevenue sends the click**

A visitor clicks your ad. ActiveRevenue opens your ClickFlare campaign URL and fills in its macros: the click ID in `conversion`, plus the publisher feed, banner, sub-source, keyword, carrier, campaign, state and IP.

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

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

**3. The conversion reaches ClickFlare**

Your affiliate network or store posts the conversion back to ClickFlare, matched on the ClickFlare click ID.

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

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

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`conversion`) and *ActiveRevenue's* macro (`{conversion}`). The template does this for you. In the **postback URL** you write *ActiveRevenue's* parameter (`c`) and *ClickFlare's* token (`{external_id}`).

## 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. See [Custom Domains](https://clickflare.com/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](https://clickflare.com/docs/en/tracking/creating-an-offer-1.md) and [Adding an Affiliate Network](https://clickflare.com/docs/en/tracking/adding-an-affiliate-network.md).
* **Know how you will buy.** ActiveRevenue sells on CPC, CPM and CPA. The template passes no cost, so the buying model decides your ClickFlare cost model. See [Cost](#cost).
* **Decide which conversions ActiveRevenue should receive.** Its Target CPA bidding optimizes on what you send it. If your funnel has several steps (lead, then sale), decide now whether to send one event or several. See [Tracking several events](#tracking-several-events).

***

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

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

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

| Name | TS Parameter | TS Token (ActiveRevenue macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| externalId | `conversion` | `{conversion}` | `{external_id}` | ActiveRevenue's click ID. Required for the postback. |
| pubfeed | `pubfeed` | `{pubfeed}` | `{trackingField1}` | The publisher feed that sent the click |
| banner | `banner` | `{banner}` | `{trackingField2}` | The creative |
| source subID | `source_subid` | `{source_subid}` | `{trackingField3}` | The sub-source inside the publisher feed |
| query | `query` | `{query}` | `{trackingField4}` | The search query, on search and keyword traffic |
| carrier | `carrier` | `{carrier}` | `{trackingField5}` | The mobile carrier or ISP |
| keyword | `keyword` | `{keyword}` | `{trackingField6}` | The keyword the ad matched, on keyword-targeted traffic |
| campaign ID | `campaign_id` | `{campaign}` | `{trackingField7}` | Your ActiveRevenue campaign |
| state | `state` | `{state}` | `{trackingField8}` | The visitor's state or region |
| ip | `ip` | `{ip}` | `{trackingField9}` | The visitor's IP address |

![The ActiveRevenue template's Parameters table in ClickFlare, with ActiveRevenue's macros pre-filled](https://mintcdn.com/clickflare/j4F_mr_BIrMz-iaH/images/integrations/templates/activerevenue/parameters.png?fit=max\&auto=format\&n=j4F_mr_BIrMz-iaH\&q=85\&s=490972534f7965982ff77dcd79d11484)

Each tracking field becomes a column you can group reports by. `pubfeed` and `source_subid` are the ones you will use most: together they tell you which publishers and sub-sources convert, so you can exclude or bid up sources in ActiveRevenue.

The **campaign ID** row is not a typo you need to fix. The parameter in the URL is `campaign_id`, while ActiveRevenue's macro is `{campaign}`. The **ip** row stores the IP in a tracking field. ClickFlare records the visitor's IP on every visit anyway, so you can use this field for something else if you need one more.

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

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

## Step 2 – Set up the postback

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

### What the ActiveRevenue postback contains

ActiveRevenue's conversion endpoint is `xml.activerevenue.com/conversion`. It reads these parameters:

| Parameter | Required | What it carries |
| - | - | - |
| `c` | Yes | The click ID ActiveRevenue put in `{conversion}` |
| `value` | No | The conversion value. Defaults to 0. |
| `count` | No | The number of conversions. Defaults to 1. |
| `id` | No | The goal ID. Without it, the conversion goes to the first goal of the campaign. |

At least one goal must exist on the ActiveRevenue campaign for a postback without `id` to be counted.

### Add it to the traffic source in ClickFlare

1. Back 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}
http://xml.activerevenue.com/conversion?c={external_id}&count=1&value={payout}
```

![The Traffic source postback URL switched on, showing the ActiveRevenue template's postback](https://mintcdn.com/clickflare/j4F_mr_BIrMz-iaH/images/integrations/templates/activerevenue/postback.png?fit=max\&auto=format\&n=j4F_mr_BIrMz-iaH\&q=85\&s=a252a21885fdf1b8784a992437cb9750)

It already sends the click ID (`{external_id}`) and the payout as the conversion value (`{payout}`), both as ClickFlare tokens. `count=1` records one conversion per postback. There is nothing to replace.

3. Change `http://` to `https://` at the start of the URL, so the postback travels encrypted. The ActiveRevenue host answers on both. The result:

```text theme={null}
https://xml.activerevenue.com/conversion?c={external_id}&count=1&value={payout}
```

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

> [!WARNING]
>
> Keep `c={external_id}` exactly as it is. ActiveRevenue's help center describes a generic postback with a `clickid` parameter. The `xml.activerevenue.com/conversion` endpoint reads the click ID from `c`. If you rename it, the conversion arrives without a click ID and is not counted.

ActiveRevenue reads `value` in your account currency. If your offers pay in another currency, ClickFlare's `{payout}` follows your ClickFlare account currency. See [Multicurrency in ClickFlare](https://clickflare.com/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](https://clickflare.com/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 **CPC**, **CPA**, or **Not Tracked**, depending on how you buy. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for ActiveRevenue's popunder, push and native 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 ActiveRevenue macro from the template, for example `conversion={conversion}` and `pubfeed={pubfeed}`.

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

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

## Step 4 – Create the campaign in ActiveRevenue

1. In ActiveRevenue, go to **Campaigns** and create a campaign.
2. Choose the campaign type (CPC, CPM or CPA), the ad format, targeting, budget and bid as usual.
3. Create the ad and paste the ClickFlare campaign URL into the **Destination URL** field.
4. Click **Submit**, then **Finish**.
5. Make sure the campaign has at least one conversion goal. Without a goal, ActiveRevenue has nowhere to record the postback.

Paste the URL exactly as ClickFlare gives it. ActiveRevenue replaces each `{...}` macro when the ad is clicked.

ActiveRevenue reviews new campaigns before they serve. Approval usually takes 2–4 hours, and you get an email when the campaign is approved.

## Step 5 – Test the integration

1. Once the campaign is approved and running, click one of your own ads, or open the campaign URL with test values filled in by hand, for example `conversion=test123`.
2. In ClickFlare, check that the visit appears in the campaign with an External ID and a pubfeed value.
3. Complete the offer, or fire a test conversion from your affiliate network to ClickFlare.
4. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `xml.activerevenue.com` confirms ClickFlare sent the postback.
5. In ActiveRevenue's reporting, check that the conversion appears on the campaign. ActiveRevenue can take up to an hour to show conversions.

A test with a made-up click ID will reach ActiveRevenue but will not match a real click. Use a click ActiveRevenue generated if you want to see the conversion in its reporting.

***

## Tracking several events

ActiveRevenue supports several goals in one campaign, for example a registration and a purchase. Each goal has its own ID. To send each event to its own goal, add `&id=` with the goal ID to each postback:

```text theme={null}
https://xml.activerevenue.com/conversion?id=GOAL_ID_1&c={external_id}&count=1&value={payout}
https://xml.activerevenue.com/conversion?id=GOAL_ID_2&c={external_id}&count=1&value={payout}
```

1. In ActiveRevenue, create a goal for each step and note each goal's ID. Ask your account manager if you can't find the goal IDs.
2. In ClickFlare, create a [custom conversion](https://clickflare.com/docs/en/settings/custom-conversions.md) for each step, for example `lead` and `purchase`.
3. On the ActiveRevenue traffic source, click **+ Another postback URL** once per extra event.
4. Map each postback to its ClickFlare event: the `lead` custom conversion to the URL with the registration goal ID, `purchase` to the URL with the purchase goal ID.
5. Replace `GOAL_ID_1` and `GOAL_ID_2` with the real goal IDs.

> **Rules for multi-goal postbacks**
>
> * One postback per goal. Don't combine goals in one URL.
> * A postback without `id` counts toward the campaign's first goal.
> * Keep `c={external_id}` in every postback. The goal ID tells ActiveRevenue which goal, the click ID tells it which click.

> **Sending only one event**
>
> If ActiveRevenue should only learn from your final sale, keep a single postback and map it to that event. Earlier steps (leads, registrations) still show in ClickFlare. They just don't reach ActiveRevenue.
>
> 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.

## Cost

The template does not pass cost. It has no Cost row, so ClickFlare cannot read the price of each click from the URL. Set the cost model on the campaign to match how you buy:

| You buy on | Cost Model in ClickFlare | Cost value |
| - | - | - |
| CPC | **CPC** | Your CPC bid |
| CPM | **CPC** | Your CPM bid divided by 1,000. A popunder or push impression is roughly one visit. |
| CPA | **CPA** | Your price per conversion |

> [!NOTE]
>
> With auto-bidding or Target CPA, your real price per click changes all the time, so a fixed CPC value is only an estimate. Compare the **Cost** column with your ActiveRevenue spend after launch, and correct the difference with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md).

If ActiveRevenue gives you a cost macro for your account, add it with **Add Parameter** and select `{cost}` as the ClickFlare token. Then set the Cost Model to **Not Tracked**, so ClickFlare uses the cost passed in the URL.

ClickFlare has no cost-tracking API integration for ActiveRevenue. See [Cost Models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md).

## Delayed revenue

If you run search arbitrage (RSOC or AFD) behind ActiveRevenue, the feed reports revenue hours or days after the click. To pass that revenue to ActiveRevenue once it arrives, see [Sending Delayed Revenue to Traffic Sources](https://clickflare.com/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md).

***

## Troubleshooting

> **Conversions show in ClickFlare but not in ActiveRevenue**
>
> * **Traffic source postback URL** is off on the ActiveRevenue 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.
> * The ActiveRevenue campaign has no goal, or the `id` in the postback doesn't match a goal on that campaign.
> * ActiveRevenue's reporting can lag by up to an hour. Wait, then check again.
> * Check **Logs → Postback Status**: a failed request shows the status code ActiveRevenue returned.

> **The postback reaches ActiveRevenue but the conversion isn't counted**
>
> * The campaign URL in ActiveRevenue is missing `conversion={conversion}`, or the macro was edited. Copy the URL from ClickFlare again.
> * The postback sends the click ID in a parameter other than `c`.
> * The `externalId` row was removed from the traffic source.

> **ActiveRevenue shows conversions with no value**
>
> The template sends `value={payout}`, so it was removed or edited. Without it, ActiveRevenue records a value of 0. Restore `&value={payout}` at the end of the postback.

> **The Cost column doesn't match ActiveRevenue's spend**
>
> The template passes no cost, so ClickFlare uses the value you set in the cost model. Update the value when you change your bid, or correct past days with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md).

> **Pubfeed or other columns are empty**
>
> The macros were not replaced, usually because the URL was edited. Paste the campaign URL from ClickFlare unchanged. `query` and `keyword` only fill on search and keyword traffic. See [Traffic Source Tokens Arriving Empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md).

For the general checklist, see [Conversions not showing](https://clickflare.com/docs/en/troubleshooting/conversions-not-showing.md).

***

**FREQUENTLY ASKED QUESTIONS**

> **Q1:** Can I use the same ActiveRevenue traffic source for all my ActiveRevenue campaigns?

**A1:** Yes. The postback has no account key or campaign ID in it, so it works for every campaign. Create a second ActiveRevenue traffic source only if a campaign needs a different postback, for example postbacks with goal IDs.

> **Q2:** Why is it called `conversion` in the campaign URL and `c` in the postback?

**A2:** They are two halves of the same value. ActiveRevenue's click ID macro is named `{conversion}`, and ClickFlare reads it from the `conversion` parameter. ActiveRevenue expects it back in its own `c` parameter. Both names are fixed. Change neither.

> **Q3:** ActiveRevenue's help center lists `clickid`, `conversion_value` and `status` as postback parameters. Which is right?

**A3:** Use the template's `xml.activerevenue.com/conversion` postback, which reads `c`, `value`, `count` and `id`. If your ActiveRevenue account manager gives you a different postback URL, use theirs and put `{external_id}` where the click ID goes and `{payout}` where the value goes.

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

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

> **Q5:** Does the template work for ActiveRevenue's CPA campaigns?

**A5:** Yes. CPA campaigns need the postback, because ActiveRevenue charges and optimizes on the conversions it receives. Set the campaign's cost model to **CPA** in ClickFlare.

## Related

> **[Traffic source postbacks](https://clickflare.com/docs/en/tracking/how-to-configure-a-traffic-source-s2s-postback-url.md)**
>
> Every token you can use in a postback.

> **[Custom conversions](https://clickflare.com/docs/en/settings/custom-conversions.md)**
>
> Split leads and sales into separate events.

> **[Cost models](https://clickflare.com/docs/en/core-platform-concepts/cost-models.md)**
>
> How CPC, CPA and RevShare costs are calculated.

> **[Conversions not showing](https://clickflare.com/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.