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

# BidVertiser as a Traffic Source

> Track BidVertiser campaigns in ClickFlare: pass the BidVertiser click ID and bid, add your account ID to the postback and send revenue back.

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

BidVertiser is a self-serve ad network selling direct navigation, popunder, push, in-page push, contextual (injection) pop and native traffic, on desktop and mobile. This guide sets up BidVertiser as a traffic source in ClickFlare. It covers passing BidVertiser's click data into your reports and sending conversions, with revenue, back to BidVertiser so its Auto-Optimization and your stats agree.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Direct navigation, popunder, push notifications, in-page push, contextual pops (injection), native ads |
| **Click ID macro** | `{BV_CLICKID}`, required for the postback |
| **Conversion tracking** | S2S postback (BidVertiser's **Global Postback**) to `secure.bidvertiser.com`, or a manual **Conversions Upload** |
| **Payout passed back** | Yes, in the `revenue` parameter |
| **Multiple events** | Not documented. Send one event. |
| **Cost** | Your campaign's bid (`{BV_BID}`), passed by the template. Cost Model: **Not Tracked**. See [Cost](#cost). |
| **Conversion API** | No |

## How it works

**1. BidVertiser sends the click**

A visitor clicks your ad. BidVertiser opens your ClickFlare campaign URL and fills in its macros: the click ID in `CLICKID`, plus the traffic source (subid), keyword, campaign and country.

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

ClickFlare saves the value of `CLICKID` 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 BidVertiser**

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

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`CLICKID`) and *BidVertiser's* macro (`{BV_CLICKID}`). The template does this for you. In the **postback URL** you write *BidVertiser's* parameter (`CLICKID`) and *ClickFlare's* token (`{external_id}`). The parameter name is the same on both sides. The value is 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](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).
* **Activate BidVertiser's Global Postback.** In BidVertiser, open the **Campaign** menu on the left and click **Global Postback**. Activate it to receive your unique postback code. It contains your account ID (`AID`), which goes into the ClickFlare postback.
* **Plan to track subids.** BidVertiser's optimization tools (Subid Report, Blacklist Subids, Bid Override) all work on the traffic source ID that `{BV_SRCID}` passes. The template already tracks it.

***

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

1. Go to **Campaigns** and click **New**.
2. In **Traffic Source**, open the dropdown and click **+ New Traffic Source**.
3. Type `bidv` in the search box and select the **BidVertiser** template.
4. Enter a **Name**, for example `BidVertiser`.
5. Leave **Cost currency** on **USD**. BidVertiser bids are in US dollars.

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

| Name | TS Parameter | TS Token (BidVertiser macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| Cost | `BV_BID` | `{BV_BID}` | `{cost}` | Your campaign's bid, in USD. See [Cost](#cost). |
| External ID | `CLICKID` | `{BV_CLICKID}` | `{external_id}` | BidVertiser's unique click ID. Required for the postback. |
| Traffic source | `BV_SRCID` | `{BV_SRCID}` | `{trackingField1}` | The traffic source (subid): the placement on a site or app that sent the visit |
| Search Term/Contextual data | `BV_KEYWORD` | `{BV_KEYWORD}` | `{trackingField2}` | The search term or contextual data, when available |
| Keyword | `BV_DBKEYWORD` | `{BV_DBKEYWORD}` | `{trackingField3}` | Your own keyword that matched |
| Campaign ID | `BV_CAMPID` | `{BV_CAMPID}` | `{trackingField4}` | Your BidVertiser campaign ID |
| Country | `BV_GEO` | `{BV_GEO}` | `{trackingField5}` | The visitor's country, as a two-letter code |

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

Each tracking field becomes a column you can group reports by. `BV_SRCID` is the one you will use most. BidVertiser calls it the traffic source, subid or source ID. Grouping by it shows which placements convert, so you can block or rebid them in BidVertiser.

> [!WARNING]
>
> Don't change or remove the External ID row. Without `CLICKID={BV_CLICKID}` in the campaign URL, ClickFlare has no BidVertiser click ID to send back, and BidVertiser cannot match conversions.

To pass more BidVertiser data, click **Add Parameter**, give it a name and parameter, and enter the BidVertiser macro as the **TS Token**. ClickFlare assigns the next free tracking field. BidVertiser also offers these macros, which the template leaves out:

| Macro | What it carries |
| - | - |
| `{BV_DOMREF}` | The referring domain. Contextual (injection) pops only. |
| `{BV_COUNTRY}` | The visitor's country, as a name |
| `{BV_REGION}` | The visitor's region |
| `{BV_CITY}` | The visitor's city |

BidVertiser lists the macros your account supports under **Destination URL Macros** in the **Edit Ad** window.

## Step 2 – Set up the postback

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

BidVertiser calls its postback the **Global Postback**. One postback serves all your BidVertiser campaigns. Each campaign only has to pass the click ID macro, which the template does.

### Get your account ID from BidVertiser

1. In BidVertiser, open the **Campaign** menu on the left and click **Global Postback**.
2. Activate the Global Postback. BidVertiser shows your unique postback code.
3. Copy the code and find the value of `AID` in it. That is your BidVertiser account ID.

### 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://secure.bidvertiser.com/performance/pc.dbm?ver=1.0&AID=[REPLACE]&CLICKID={external_id}&revenue={payout}
```

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

3. Replace `[REPLACE]`, square brackets included, with your BidVertiser `AID`. The result:

```text theme={null}
http://secure.bidvertiser.com/performance/pc.dbm?ver=1.0&AID=YOUR_AID&CLICKID={external_id}&revenue={payout}
```

4. Compare it with the code BidVertiser gave you. The host, `ver=1.0` and `AID` should match. If BidVertiser's code uses `https`, use `https` too.
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 BidVertiser traffic source selected.

> [!WARNING]
>
> The only thing to change in the template's postback is `[REPLACE]`. If it stays, BidVertiser records no conversions, and its Auto-Optimization has nothing to work with.

The postback sends `revenue={payout}`, the conversion's payout. BidVertiser uses it for the conversion metrics in your campaign stats, including cost per conversion, and for Auto-Optimization against your ROI goals. Send revenue in USD. If your offers pay in another 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**. Use **Not Tracked** so ClickFlare uses the bid passed in the URL, or **CPC** with your bid. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice for BidVertiser's pop, push and direct navigation 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 BidVertiser macro from the template, for example `CLICKID={BV_CLICKID}` and `BV_SRCID={BV_SRCID}`.

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

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 BidVertiser

1. In BidVertiser, create a campaign and choose the ad format, targeting and bid as usual.
2. Create the ad. Paste the ClickFlare campaign URL as the ad's destination URL.
3. Save and submit the ad.

Paste the URL exactly as ClickFlare gives it. BidVertiser replaces each `{BV_...}` macro during the redirect to your page. To check or edit the URL later, open the ad's **Edit Ad** window.

## Step 5 – Test the integration

BidVertiser has no test-conversion tool. Test with a small live budget.

1. Launch the campaign with a low daily budget.
2. In ClickFlare, check that visits arrive with the Traffic source and Campaign ID columns filled. Empty columns mean the macros were not replaced. See [Troubleshooting](#troubleshooting).
3. Complete the offer yourself through a BidVertiser click, or wait for the first real conversion.
4. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `secure.bidvertiser.com` confirms ClickFlare sent the postback. Open it and check that `CLICKID` holds a real click ID, not the text `{external_id}`.
5. In BidVertiser, check that the campaign's conversion metrics show the conversion. They only appear once BidVertiser records conversions.

***

## Uploading conversions manually

If you can't use the postback for some conversions, BidVertiser accepts a manual upload. It also corrects gaps between the postback and your own records.

1. Collect the BidVertiser click IDs of the missing conversions. ClickFlare stores each one as the visit's **External ID**.
2. In BidVertiser, open the **Campaign** menu and select **Conversions Upload**.
3. Enter one conversion per line: the click ID, a comma, then the revenue. For example `CLICK_ID,2.50`.

> **Rules for Conversions Upload**
>
> * Only conversions from the last 30 days are accepted.
> * One conversion per line, click ID and revenue separated by a comma.
> * A click ID that already has a conversion is ignored. Uploads never double-count.

> **Sending only some conversions**
>
> BidVertiser has no documented multi-event postback. Send it the one event it should optimize on, usually your final sale. Earlier steps (leads, add to carts) still show in ClickFlare. They just don't reach BidVertiser.
>
> 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.

## Optimizing on subids

The `BV_SRCID` column in ClickFlare is BidVertiser's traffic source ID. Use it with BidVertiser's own tools:

* **Subid Report.** Shows visits and requests per subid in BidVertiser. Requests are the ad requests you could have won. A good subid with a low win rate needs a higher bid.
* **Blacklist Subids.** Block subids that spend without converting, per campaign, by hand or automatically.
* **Bid Override.** Set a different bid for a single subid, higher for the ones that convert.

Give new subids enough visits before judging them. BidVertiser adds sources daily, so check new campaigns often.

## Cost

The template passes cost per click. The Cost row sends `{BV_BID}` in the `BV_BID` parameter. BidVertiser describes it as your campaign's bid, in US dollars. It is your bid, not a price set per auction. Pick one of two setups:

* **Not Tracked.** Set the **Cost Model** to **Not Tracked**, so ClickFlare uses the cost passed in the URL. This is the usual choice.
* **CPC.** Set the **Cost Model** to **CPC** and enter your BidVertiser bid. ClickFlare charges that amount per visit.

> [!NOTE]
>
> `{BV_BID}` is the campaign's bid. If you use **Bid Override** on some subids, the visits from those subids may cost a different amount than `{BV_BID}` reports. After launch, compare the **Cost** column with your BidVertiser spend.

When the recorded spend differs from your BidVertiser spend, correct it with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md). 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 BidVertiser, the feed reports revenue hours or days after the click. To pass that revenue to BidVertiser 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

> **BidVertiser shows no conversions**
>
> * `[REPLACE]` was never replaced with your `AID`.
> * The Global Postback is not activated in BidVertiser.
> * The campaign URL in BidVertiser is missing `CLICKID={BV_CLICKID}`, or the macro was edited. Copy the URL from ClickFlare again.

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

> **The Cost column is zero**
>
> Check that the campaign's **Cost Model** is **Not Tracked**, and that the campaign URL in BidVertiser still contains `BV_BID={BV_BID}`. If it doesn't, copy the URL from ClickFlare again. A change only affects new visits. Correct past costs with a [manual cost upload](https://clickflare.com/docs/en/settings/manual-cost-upload.md).

> **Traffic source or keyword columns are empty**
>
> The macros were not replaced, usually because the URL was edited. Paste the campaign URL from ClickFlare unchanged. `{BV_KEYWORD}` is only filled when BidVertiser has search or contextual data for the visit, so some empty values there are normal. 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 BidVertiser traffic source for all my BidVertiser campaigns?

**A1:** Yes. BidVertiser's postback is global, and the ClickFlare postback is set once on the traffic source. Every campaign using it sends conversions the same way.

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

**A2:** ClickFlare reads BidVertiser's click ID from its `CLICKID` parameter, and BidVertiser expects it back in its own `CLICKID` parameter. The names match, but the values differ: BidVertiser's macro `{BV_CLICKID}` in the campaign URL, ClickFlare's token `{external_id}` in the postback.

> **Q3:** Do I need the postback if I only want to block bad subids?

**A3:** No, but it helps. ClickFlare shows conversions per subid from your own data. The postback adds conversions to BidVertiser's reports and unlocks its Auto-Optimization.

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

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

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