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

# Admixer as a Traffic Source

> Track Admixer DSP campaigns in ClickFlare: fix the auction ID row, switch on publisher and site data, and get conversions back to Admixer.

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

Admixer is an ad tech company with a full stack for advertisers and publishers. Advertisers buy through the Admixer DSP (its self-serve buying interface is known as Admixer.TradeDesk): display, video, native, audio and mobile inventory from ad exchanges, SSPs and direct publishers, bought on CPM through open auctions, private marketplaces and direct deals. This guide sets up Admixer as a traffic source in ClickFlare. It covers passing Admixer's impression and placement data into your reports, and the options for getting conversions back to Admixer.

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

The Admixer template needs work before launch. Its click ID row has its two fields swapped, all its tracking rows are switched off, and it has no postback. This guide goes through each fix.

## At a glance

| | |
| - | - |
| **Ad formats** | Display, video, native, audio and rich media, on web and in apps |
| **Click ID macro** | `${AUCTION_ID}`, the ID of the auction that served the ad |
| **Conversion tracking** | No postback in the template. Admixer's post-click code, or an S2S postback URL from Admixer support. |
| **Payout passed back** | No |
| **Multiple events** | Not documented publicly |
| **Cost** | Not passed. The template has no Cost row. Cost Model: **CPC**. |
| **Conversion API** | No |

## How it works

**1. Admixer serves the ad and sends the click**

A visitor clicks your creative. Admixer opens your ClickFlare campaign URL from the creative's **Main landing page URL** and fills in its macros: the auction ID in `auction_id`, plus the campaign, creative, insertion order, publisher, website, referrer domain, page URL and timestamp.

**2. ClickFlare stores the auction ID**

ClickFlare saves the value of `auction_id` 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. You see it in ClickFlare with the publisher and website that sent the click.

**4. Admixer learns about the conversion**

The template sends nothing back to Admixer. You either place Admixer's post-click code on your pages, or add an S2S postback URL that Admixer gives you. See Step 2.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`auction_id`) and *Admixer's* macro (`${AUCTION_ID}`). If Admixer gives you a postback, you write *Admixer's* click ID parameter and *ClickFlare's* token (`{external_id}`).

## Before you start

* **Set up your own tracking domain.** Run the campaign 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).
* **Have an Admixer advertiser account** with an advertiser created under **Advertisers**. Admixer links every creative and campaign to an advertiser.
* **Decide how Admixer will learn about conversions.** Admixer doesn't publish an S2S postback URL. Ask your Admixer account manager or support whether your account has one before launch. See Step 2.

***

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

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

The template fills in the **Parameters** table. This is what it contains today:

| Name | TS Parameter | TS Token (Admixer macro) | ClickFlare Token | Switched on | What it carries |
| - | - | - | - | - | - |
| externalId | `${AUCTION_ID}` | `auction_id` | `{external_id}` | Always | Swapped. See the fix below. |
| Campaign ID | `campaign_id` | `${CAMPAIGN_ID}` | `{trackingField1}` | No | The Admixer campaign ID |
| Creative ID | `creative_id` | `${CREATIVE_ID}` | `{trackingField2}` | No | The creative ID |
| Placement ID | `placement_id` | `${INSERTION_ORDER_ID}` | `{trackingField3}` | No | The insertion order ID, which Admixer integrations label as placement ID |
| Publisher ID | `publisher_id` | `${PUBLISHER_ID}` | `{trackingField4}` | No | The publisher that sold the impression |
| Website ID | `website_id` | `${UNIVERSAL_SITE_ID}` | `{trackingField5}` | No | The site or app the ad ran on |
| Referrer domain | `referrer_domain` | `${REF_DOMAIN}` | `{trackingField6}` | No | The domain of the page where the ad ran |
| Page URL | `page_url` | `${PAGEURL}` | `{trackingField7}` | No | The full URL of that page |
| Timestamp | `timestamp` | `${TIMESTAMP}` | `{trackingField8}` | No | The time of the impression |

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

### Fix the External ID row

The **externalId** row has its two fields the wrong way round. As shipped, it adds `${AUCTION_ID}=auction_id` to the campaign URL: a parameter named after the macro, carrying the fixed text `auction_id`. Admixer never fills it in, and every visit gets the same External ID.

1. In the **externalId** row, set **TS Parameter** to `auction_id`.
2. Set **TS Token** to `${AUCTION_ID}`.

The row now adds `auction_id=${AUCTION_ID}` to the campaign URL, and Admixer replaces the macro with the real auction ID.

> [!WARNING]
>
> Fix the External ID row before you copy the campaign URL. With the fields swapped, ClickFlare stores the literal text `auction_id` as every visit's External ID. Any postback you add later would send that same text, and Admixer could not match a single conversion.

### Switch on the tracking rows

All eight tracking rows, from **Campaign ID** to **Timestamp**, are switched off. A row that is off is not added to the campaign URL, so its column stays empty.

Switch on the toggle of each row you want in your reports. Switch on at least **Publisher ID**, **Website ID** and **Referrer domain**. They tell you which publishers and sites convert, so you can exclude the rest from your Admixer profile's inventory.

**Timestamp** and **Page URL** are optional. Page URL can be long, and timestamp is rarely useful for grouping.

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

## Step 2 – Set up conversion tracking

The template has no postback. Leave **Traffic source postback URL** off until you have a URL from Admixer. Your conversions are still tracked in ClickFlare. Admixer just doesn't receive them.

You have two ways to get conversions to Admixer.

### Option A – An S2S postback from Admixer

Admixer's help center, which needs an account login, describes server-to-server conversion tracking through third-party trackers, with a conversion type parameter in the postback. Admixer doesn't publish the postback URL itself.

1. Ask your Admixer account manager or support for the S2S postback URL for your advertiser, and for the name of the parameter that carries the click ID.
2. Back in the **New Traffic Source** form, scroll to **Passing conversion info to traffic source** and turn on **Traffic source postback URL**.
3. Paste Admixer's URL. Put `{external_id}` where Admixer expects the auction ID. If Admixer accepts a revenue parameter, put `{payout}` in it.
4. If the URL has other placeholders, such as a conversion type, fill them in with the values Admixer gives you.
5. In the dropdown on the left, choose the ClickFlare event that should fire the postback. Keep **Conversions** to send every conversion.
6. Click **Save**.

> [!WARNING]
>
> Only use `{external_id}` in an Admixer postback after you have fixed the External ID row in Step 1. Otherwise every postback carries the text `auction_id` instead of a real auction ID.

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

### Option B – Admixer's post-click code

Admixer can track what visitors do after they click with its own snippet. Admixer's documentation describes it like this:

1. In Admixer, after you create the campaign and its profiles, select **Campaigns – Generate a post-click code**.
2. Copy the snippet and paste it on the page you control where the conversion happens: your lander, or your own thank-you page.
3. Post-click data shows in Admixer's campaign reports.

This doesn't involve ClickFlare. It only works on pages where you can add code, so it can't see conversions on an affiliate offer's own pages.

> **No conversion data in Admixer at all**
>
> If neither option works for you, optimize from ClickFlare. With the tracking rows switched on, ClickFlare shows conversions, revenue and ROI per publisher, website and referrer domain. Use those reports to edit the inventory and black and white lists of your Admixer profiles by hand.

## Step 3 – Finish the campaign and copy its URL

1. Name the campaign.
2. Set the **Cost Model** to **CPC** and enter your effective cost per click. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for Admixer.
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**.

Check the campaign URL before you leave. It should contain `auction_id=${AUCTION_ID}` and one parameter for each row you switched on, for example `publisher_id=${PUBLISHER_ID}`. If you see `${AUCTION_ID}=auction_id`, the External ID row is still swapped.

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

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 Admixer

1. In Admixer, go to **Creatives**, select **Creative library** and click **Add a creative**.
2. Choose the creative type, enter a name and select your advertiser.
3. Paste the ClickFlare campaign URL into the **Main landing page URL** field.
4. Enter the advertiser's domain, upload the creative and click **SAVE**.
5. Go to **Campaigns**, select **Campaigns** and click **Add a campaign**. Enter a name, select the advertiser, set the daily and campaign budgets and click **SAVE**.
6. Click **Add a profile**. Name it, set a budget limit, pick inventory with **Inventory selector**, set targeting and enter the maximal profile CPM. Click **SAVE**.
7. In the creative library, select your creative, click **Link profile**, choose the profile and save.
8. In the profile, open **Linked creatives** and click **ACTIVATE** on the creative.

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

## Step 5 – Test the integration

1. Launch the profile with a small budget.
2. In ClickFlare, open the campaign's report and check **External ID**. It should show a different auction ID on each visit. The text `auction_id` on every visit means the External ID row is still swapped. A raw `${AUCTION_ID}` means Admixer didn't replace the macro.
3. Check the publisher, website and referrer domain columns. Empty columns mean the rows are still switched off. See [Traffic Source Tokens Arriving Empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md).
4. If you added a postback, complete the offer yourself through the campaign URL, then go to **Logs → Postback Status** and filter by the campaign. Check that the request carries a real auction ID.
5. If you added the post-click code, check Admixer's campaign report for post-click data.

***

## Tracking several events

ClickFlare tracks every step of your funnel regardless of Admixer. Create a [custom conversion](https://clickflare.com/docs/en/settings/custom-conversions.md) for each step, for example `lead` and `purchase`, and report on each one per publisher and website.

If Admixer gives you a postback with a conversion type parameter, you can send each step separately:

1. Click **+ Another postback URL** once per extra event.
2. Use the same Admixer URL, with the conversion type value Admixer gives you for that step.
3. Map each postback to its ClickFlare event in the dropdown on the left.

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 passes no cost. It has no Cost row, and Admixer's documented macros don't include the price of the impression.

Admixer buys on CPM: you set the maximal CPM on each profile. Clicks on display, video and native ads are a small share of impressions, so the CPM divided by 1,000 would understate your cost per visit. On the campaign:

1. Set the **Cost Model** to **CPC**.
2. Enter your effective cost per click: spend divided by clicks, from a test run or from similar campaigns.
3. After launch, compare ClickFlare's **Cost** column with your Admixer spend and correct it with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md).

ClickFlare has no cost integration for Admixer. 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 Admixer, the feed reports revenue hours or days after the click. ClickFlare records it when it arrives. If Admixer gives you a postback, see [Sending Delayed Revenue to Traffic Sources](https://clickflare.com/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md) to pass that revenue on.

***

## Troubleshooting

> **Every visit has the same External ID, auction\_id**
>
> The External ID row is still swapped. Set **TS Parameter** to `auction_id` and **TS Token** to `${AUCTION_ID}`, save the traffic source, copy the campaign URL again and update the **Main landing page URL** in Admixer.

> **Publisher, website or domain columns are empty**
>
> The tracking rows are switched off, which is how the template ships. Switch them on, save, copy the campaign URL again and update the creative in Admixer. See [Traffic Source Tokens Arriving Empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md).

> **Columns show raw Admixer macros**
>
> Admixer didn't replace the macro. Check that the URL is in the creative's **Main landing page URL** field and was pasted unchanged. Ask Admixer support whether the macro is available for your inventory.

> **Admixer shows no conversions**
>
> The template has no postback, so nothing is sent by default. Add an S2S postback from Admixer or the post-click code, as in Step 2. If you added a postback, check **Logs → Postback Status**, and check that **Disable sending postbacks to traffic source** is off in the campaign.

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

***

**FREQUENTLY ASKED QUESTIONS**

> **Q1:** Why does the template have no postback?

**A1:** Admixer doesn't publish an S2S postback URL. Its conversion setups are described in its login-only help center or provided by its team. Ask your Admixer account manager for the URL, then add it as in Step 2.

> **Q2:** Is `${AUCTION_ID}` really a click ID?

**A2:** It is the ID of the auction that served the ad, unique to that impression. Admixer integrations use it as the click ID, since each click comes from one served impression.

> **Q3:** Why is the Placement ID row filled with `${INSERTION_ORDER_ID}`?

**A3:** That is how Admixer's tracker integrations map it. The macro carries the insertion order ID. Use the **Website ID** and **Referrer domain** rows to see where your ads actually ran.

> **Q4:** Can I use the same Admixer traffic source for all my Admixer campaigns?

**A4:** Yes. Fix the External ID row and switch on the rows once, and every campaign using the traffic source gets the same parameters.

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

> **[Tokens arriving empty](https://clickflare.com/docs/en/troubleshooting/tokens-arriving-empty.md)**
>
> What to check when report columns stay blank.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.