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

# MyBid Conversion Tracking & Postback Setup

> Set up MyBid conversion tracking in ClickFlare: click_id and cost macros, and the postback.mb-d.com postback per goal_id with value.

![MyBid traffic source template](https://mintcdn.com/clickflare/JnEca3lx3v_LxcNj/images/integrations/covers/templates/mybid.png?fit=max\&auto=format\&n=JnEca3lx3v_LxcNj\&q=85\&s=8c5fd9f5b95e97ec062832fd795e87c4)

MyBid is a self-serve programmatic ad network selling push, in-page push, popunder, native, banner and video traffic. You buy on CPC or CPM, with a CPA Goal mode and an automatic optimizer on top. This guide sets up MyBid as a traffic source in ClickFlare. It covers passing MyBid's click data and cost into your reports and sending conversions, with their value, back to MyBid so its goals, its CPA Goal bidding and your stats agree.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Push, in-page push, popunder, native, banner, video |
| **Click ID macro** | `{%click_id%}`, mandatory for conversion tracking |
| **Conversion tracking** | S2S postback to `postback.mb-d.com`, one per conversion goal |
| **Payout passed back** | Yes, in the `cost` parameter, when the goal's **Value Type** is **Dynamic** |
| **What you replace** | `REPLACE_WITH_GOAL_ID` in the postback |
| **Multiple events** | Yes. One goal per event, each with its own `goal_id` and postback. |
| **Cost** | Passed per click with `{%cost%}`. Cost Model: **Not Tracked**. Per 1,000 impressions on CPM campaigns. |
| **Conversion API** | No |

## How it works

**1. MyBid sends the click**

A visitor clicks your ad. MyBid opens your ClickFlare campaign URL and fills in its macros: the click ID in `click_id`, the cost in `cost`, plus the source, creative, ad type and country.

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

ClickFlare saves the value of `click_id` 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 store posts the conversion back to ClickFlare, matched on the ClickFlare click ID.

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

ClickFlare fires the MyBid postback, replacing `{external_id}` with the stored MyBid click ID and `{payout}` with the revenue. MyBid matches it to the original click and records it under the goal in `goal_id`.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`click_id`) and *MyBid's* macro (`{%click_id%}`). The template does this for you. In the **postback URL** you write *MyBid's* parameter (`click_id`) and *ClickFlare's* token (`{external_id}`). The parameter name is the same on both sides. The values are not.

## 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](/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).
* **Create your conversion goals in MyBid first.** Each goal has its own `goal_id`, and the postback needs it. See [Get the goal ID from MyBid](#get-the-goal-id-from-mybid).
* **Decide which conversions MyBid should receive.** MyBid's CPA Goal bidding optimizes on the goals you select. See [Tracking several goals](#tracking-several-goals).

***

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

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

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

| Name | TS Parameter | TS Token (MyBid macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| External ID | `click_id` | `{%click_id%}` | `{external_id}` | MyBid's click ID. Required for the postback. |
| Cost | `cost` | `{%cost%}` | `{cost}` | MyBid's cost for the click. See [Cost](#cost). |
| Source ID | `source_id` | `{%source_id%}` | `{trackingField1}` | The traffic source (publisher) ID |
| Creative ID | `creative_id` | `{%creative_id%}` | `{trackingField2}` | The creative |
| Ad Type | `ad_type` | `{%ad_type%}` | `{trackingField3}` | The ad format |
| Country | `country` | `{%country%}` | `{trackingField4}` | The visitor's country |

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

MyBid macros are written with a percent sign inside the braces, for example `{%click_id%}`. Keep that exact spelling. Each tracking field becomes a column you can group reports by. `source_id` is the one you will use most: MyBid's CPA Goal scores traffic by source, and the column shows you which sources convert, so you can block them or bid on them with **Bid by source** in MyBid.

> [!WARNING]
>
> Don't change or remove the **External ID** row. MyBid ties every conversion to the click through `{%click_id%}`. If the macro is missing or misspelled, the postback has nothing to send back, and MyBid's test stays on **Waiting**.

To pass more MyBid data, click **Add Parameter**, give it a name and parameter, and enter the MyBid macro as the **TS Token**. ClickFlare assigns the next free tracking field. MyBid shows its available macros in the campaign editor. Its public help center doesn't list them, so check them there before adding any.

## Step 2 – Set up the postback

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

### Get the goal ID from MyBid

MyBid attaches every conversion to a goal. You create the goal first, and MyBid generates a postback with that goal's `goal_id`.

1. In MyBid, open the **Goals** tab and click **+ Create conversion goal**.
2. Fill in **Name**, for example `Purchase`, and pick the **Conversion Type** that fits.
3. Choose the **Value Type**:

| Value Type | Use it when | What happens to `cost` in the postback |
| - | - | - |
| **Dynamic** | Your payouts vary, or you want MyBid to see real revenue | Keep `cost={payout}`. ClickFlare sends the payout. |
| **Fixed** | Every conversion is worth the same | Replace `{payout}` with the amount, for example `cost=1.50` |
| **No Value** | You only want conversion counts | Remove `&cost={payout}` |

4. Click **Next**. MyBid generates the postback URL. Note the number after `goal_id=`.
5. Click **Copy & done** to save the goal.

The URL MyBid gives you has this shape:

```text theme={null}
https://postback.mb-d.com/api/v1/postback?click_id={external_id}&goal_id=186&cost={cost}
```

You only need the `goal_id` from it. The ClickFlare template already has the click ID and payout tokens in place.

### Add the template's postback 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}
https://postback.mb-d.com/api/v1/postback?click_id={external_id}&goal_id=REPLACE_WITH_GOAL_ID&cost={payout}
```

3. Replace `REPLACE_WITH_GOAL_ID` with the goal's ID from MyBid. Leave `{external_id}` and `{payout}` as they are. ClickFlare fills them in. With goal ID `186` and a **Dynamic** goal, the result is:

```text theme={null}
https://postback.mb-d.com/api/v1/postback?click_id={external_id}&goal_id=186&cost={payout}
```

4. If the goal is **Fixed** or **No Value**, change the `cost` part as shown in the table above.
5. 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.
6. Click **Save**. You are back in the campaign editor with the MyBid traffic source selected.

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

> [!WARNING]
>
> Replace `REPLACE_WITH_GOAL_ID` with your goal's number. MyBid needs the `goal_id` to attach a conversion to a goal. A postback that still contains the placeholder isn't credited to any goal, and CPA Goal campaigns don't see it.

In MyBid's postback, `cost` is the **conversion value**, not your ad spend. `cost={payout}` tells MyBid what the conversion earned you, for its revenue and ROI columns.

MyBid's own example uses `{cost}` as the value token. That works in some trackers. In ClickFlare, `{cost}` is your cost for the visit, so keep the template's `{payout}`. For payouts in another currency, 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 MyBid passes. On CPM campaigns, read [Cost](#cost) first.
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for MyBid's push and popunder 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 MyBid macro from the template, for example `click_id={%click_id%}` and `cost={%cost%}`.

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

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

## Step 4 – Create the campaign in MyBid

1. In MyBid, create a new campaign or edit an existing one.
2. Paste the ClickFlare campaign URL into the **Click URL** field.
3. Choose the format, pricing model, targeting and budget as usual.
4. If you use **CPA Goal**, select your goal under **Conversion Goal(s)** and fill in **Target CPA** and the **Daily test budget**. CPA Goal can't run with an optimizer, so leave **Select optimizer** empty.
5. Submit the campaign.

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

## Step 5 – Test the integration

MyBid has its own test tool. Run it before launching.

1. In MyBid, go to **Goals → Test conversion** and click **Generate test**.
2. Paste your ClickFlare campaign URL into **Click URL**. It already contains `click_id={%click_id%}`, so don't click the `{%click_id%}` chip under the field. That would add the parameter a second time.
3. Click **Next**. MyBid creates the test and a **Test URL**. Click **Copy & Done**.
4. Open the Test URL in a browser and complete the offer the way a real visitor would.
5. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `postback.mb-d.com` confirms ClickFlare sent it.
6. Return to **Test conversion** in MyBid and reload the page:

| Status | Meaning |
| - | - |
| **Waiting** | MyBid hasn't received a postback with the test's click ID yet. Check that you opened the Test URL, that the campaign URL has `click_id={%click_id%}`, and that the postback has `click_id={external_id}`. |
| **OK** | The integration works. Check **Goal name**, **Goal id** and **Value** against what you expected. |

If several conversions with the same `goal_id` happen in one test, the table shows only one. Live campaigns count them all.

***

## Tracking several goals

MyBid tracks as many goals as you create, for example a registration, a deposit and a purchase. Each goal has its own `goal_id`, so each needs its own postback:

```text theme={null}
https://postback.mb-d.com/api/v1/postback?click_id={external_id}&goal_id=186&cost={payout}
https://postback.mb-d.com/api/v1/postback?click_id={external_id}&goal_id=187&cost={payout}
```

1. In MyBid, create a goal for each step and note each `goal_id`.
2. In ClickFlare, create a [custom conversion](/docs/en/settings/custom-conversions.md) for each step, for example `registration` and `deposit`.
3. On the MyBid traffic source, click **+ Another postback URL** once per extra goal.
4. In each postback, paste the template's URL and replace `REPLACE_WITH_GOAL_ID` with that goal's ID. Map each postback to its ClickFlare event: `registration` to goal `186`, `deposit` to goal `187`.
5. Test each goal. One test can show several rows, one per goal received.

> **Goals and CPA Goal bidding**
>
> * CPA Goal optimizes on the goals selected in **Conversion Goal(s)**. Each selected goal needs its own postback with its `goal_id`.
> * MyBid recommends about 10 verified conversions a day for CPA Goal to learn.
> * In MyBid's statistics, select goals in the **Conversion Goals** filter to see each goal as its own column.

> **Sending only one goal**
>
> If MyBid should only learn from your final sale, keep a single postback and map it to that event. Earlier steps still show in ClickFlare. They just don't reach MyBid.
>
> 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 cost per visit. The `cost` row sends MyBid's `{%cost%}` macro, 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. See [Cost Models](/docs/en/core-platform-concepts/cost-models.md).

How exact that cost is depends on MyBid's pricing model:

| MyBid pricing | Formats | What `{%cost%}` holds |
| - | - | - |
| CPC, SmartCPC | Push, native, banner, video (CPC); in-page push and popunder (SmartCPC) | The cost of the click. Exact. On popunder, the billable event is the opening of your URL. |
| CPA Goal | All formats | Runs on CPC bidding, so you still pay per click |
| CPM, SmartCPM | Banner (CPM); video (SmartCPM) | Likely the price per 1,000 impressions |

> [!NOTE]
>
> MyBid's own tracker guides say automatic cost tracking is exact for CPC campaigns, and that CPM costs may need dividing by 1,000. On a CPM campaign, compare ClickFlare's **Cost** column with your MyBid spend after launch. If it's about 1,000 times too high, switch the Cost Model to **CPC** and enter your CPM bid divided by 1,000 as the cost value.

When the recorded spend differs from your MyBid spend, correct it with a [manual cost upload](/docs/en/settings/manual-cost-upload.md). See also [Traffic Source Cost Tracking](/docs/en/tracking/how-to-setup-traffic-source-cost-tracking.md).

## Delayed revenue

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

***

## Troubleshooting

> **The MyBid test stays on Waiting**
>
> * The page wasn't opened from the Test URL that MyBid generated.
> * The Click URL in the test is missing `click_id={%click_id%}`, or it appears twice.
> * The postback uses `{%click_id%}` or another tracker's token instead of ClickFlare's `{external_id}`. ClickFlare sends unknown tokens as literal text.
> * `REPLACE_WITH_GOAL_ID` is still in the postback.

> **Conversions show in ClickFlare but not in MyBid**
>
> * **Traffic source postback URL** is off on the MyBid 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 `goal_id` belongs to a goal you deleted or to another account.
> * Check **Logs → Postback Status**: a failed request shows the status code MyBid returned.

> **MyBid shows conversions with no value**
>
> The goal's **Value Type** is **No Value**, or the postback has no `cost={payout}`. For a **Dynamic** goal, restore `&cost={payout}`.

> **Cost in ClickFlare is far too high**
>
> The campaign is on CPM pricing and `{%cost%}` arrives per 1,000 impressions. Switch the Cost Model to **CPC** with your CPM bid divided by 1,000, or fix the days with a [manual cost upload](/docs/en/settings/manual-cost-upload.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 MyBid traffic source for all my MyBid campaigns?

**A1:** Yes, if they share the same goals. The postback is set once on the traffic source and every campaign using it sends conversions the same way. Create a second MyBid traffic source only if a campaign needs different goals.

> **Q2:** The parameter is `click_id` in both the campaign URL and the postback. Isn't that the same thing twice?

**A2:** It's two halves of one value. In the campaign URL, `click_id={%click_id%}` is where MyBid writes its click ID and ClickFlare reads it. In the postback, `click_id={external_id}` is where ClickFlare writes that stored ID back to MyBid. Keep both as they are.

> **Q3:** Why does the postback send `{payout}` in a parameter called `cost`?

**A3:** Because MyBid names its conversion value `cost`. MyBid uses it for revenue and ROI, not for spend. ClickFlare's `{payout}` is the conversion's revenue, which is what MyBid expects there.

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

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

## 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)**
>
> One ClickFlare event per MyBid goal.

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