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

# BIGO Ads as a Traffic Source

> Track BIGO Ads campaigns in ClickFlare: capture the __SID__ click ID and __BBG__ attribution ID, post conversions to your Website Pixel, pull cost by API.

![BIGO Ads traffic source template](https://mintcdn.com/clickflare/Z7FseNUODe2P_cAH/images/integrations/covers/templates/bigo-ads.png?fit=max\&auto=format\&n=Z7FseNUODe2P_cAH\&q=85\&s=97cc76f030a7e316ab5f633dd0077d17)

BIGO Ads is the advertising platform of BIGO. It sells in-app traffic on BIGO's own apps, such as BIGO LIVE, Likee and imo, and on third-party apps in its network. This guide sets up BIGO Ads as a traffic source in ClickFlare. It covers passing BIGO's click data into your reports, sending conversions back to BIGO through its attribution endpoint, and pulling your spend with ClickFlare's BIGO Ads cost integration.

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

## At a glance

| | |
| - | - |
| **Traffic** | In-app ads on BIGO's own apps and its third-party app network |
| **Click ID macro** | `__SID__`, the ad request ID, used as the click ID |
| **Attribution ID** | `__BBG__`, required by BIGO for web conversions |
| **Conversion tracking** | S2S postback to `attr.img-static.tech`, with your BIGO Website Pixel ID |
| **Payout passed back** | No. The template sends the event only. |
| **Multiple events** | Yes, one postback per event, each with its own event ID |
| **Cost** | Not passed in the URL. Use ClickFlare's [BIGO Ads cost integration](/docs/en/integrations/bigo-ads.md). Cost Model: **Not Tracked**. |
| **Conversion API** | No |

## How it works

**1. BIGO sends the click**

A visitor clicks your ad. BIGO opens your ClickFlare campaign URL and fills in its macros: the click ID in `click_id`, the attribution ID in `bbg`, plus the account, campaign, ad group, ad, publisher, device and OS details.

**2. ClickFlare stores the BIGO identifiers**

ClickFlare saves the value of `click_id` as the visit's **External ID** and the other values in tracking fields, then 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 BIGO**

ClickFlare fires the BIGO postback. It replaces `{external_id}` with the stored BIGO click ID, `{trackingField15}` with the stored `bbg` value, and fills in the app and device fields. BIGO matches the event to the original click and to your Website Pixel.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`click_id`) and *BIGO's* macro (`__SID__`). The template does this for you. In the **postback URL** you write *BIGO's* parameter (`sid`) and *ClickFlare's* token (`{external_id}`). The same goes for the attribution ID: `bbg=__BBG__` in the campaign URL, `bbg={trackingField15}` in the postback.

## 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 a Website Pixel in BIGO Ads.** In BIGO Ads, go to **Library → Website Pixel**, create a pixel and note its ID. The postback needs it. For S2S tracking, BIGO's manual setup option is **Bigo Pixel+Event\_API**.
* **Decide which event BIGO should optimize on.** BIGO's web campaigns optimize on the event you select in the ad group. The template sends the event `button`. If you optimize on another event, see [Choosing the event](#choosing-the-event).

***

## Step 1 – Create the campaign and the BIGO Ads traffic source

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

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

| Name | TS Parameter | TS Token (BIGO macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| Cost | (empty) | (empty) | `{cost}` | Nothing. BIGO has no cost macro in the template. See [Cost](#cost). |
| External ID | `click_id` | `__SID__` | `{external_id}` | BIGO's ad request ID, used as the click ID. Required for the postback. |
| Product ID | `product_id` | `__APPID__` | `{trackingField1}` | The ID of the promoted app. Sent back as `appId`. |
| Account ID | `account_id` | `__ACCOUNT_ID__` | `{trackingField2}` | Your BIGO ad account |
| Campaign ID | `campaign_id` | `__CAMPAIGN_ID__` | `{trackingField3}` | The BIGO campaign |
| Campaign Name | `campaign_name` | `__CAMPAIGN_NAME__` | `{trackingField4}` | The BIGO campaign's name |
| Ad Group ID | `ad_group_id` | `__AD_GROUP_ID__` | `{trackingField5}` | The ad group |
| Ad Group Name | `group_name` | `__GROUP_NAME__` | `{trackingField6}` | The ad group's name |
| Ad ID | `ad_id` | `__AD_ID__` | `{trackingField7}` | The ad |
| Ad Name | `ad_name` | `__AD_NAME__` | `{trackingField8}` | The ad's name |
| Ad Ext | `ad_ext` | `__AD_EXT__` | `{trackingField9}` | BIGO's extension attributes. Sent back as `ad_ext`. |
| Publisher ID | `publisher_id` | `__PUBLISHER_ID__` | `{trackingField10}` | The app or publisher that showed the ad |
| IDFA | `idfa` | `__IDFA__` | `{trackingField11}` | The iOS advertising ID. Sent back as `idfa`. |
| GAID | `gaid` | `__GAID__` | `{trackingField12}` | The Android advertising ID. Sent back as `gaid`. |
| IP | `ip` | `__IP__` | `{trackingField13}` | The device IP address |
| OS | `os` | `__OS__` | `{trackingField14}` | The operating system, iOS or Android |
| BBG | `bbg` | `__BBG__` | `{trackingField15}` | BIGO's attribution ID. Required for web conversions. Sent back as `bbg`. |

![The BIGO Ads template's Parameters table in ClickFlare, with BIGO Ads' macros pre-filled](https://mintcdn.com/clickflare/Z7FseNUODe2P_cAH/images/integrations/templates/bigo-ads/parameters.png?fit=max\&auto=format\&n=Z7FseNUODe2P_cAH\&q=85\&s=454fb9476ed6a4fcd5e1e95ecebce95c)

Each tracking field becomes a column you can group reports by. `ad_group_id`, `ad_id` and `publisher_id` are the ones you will use most: they tell you which ad groups, creatives and apps convert.

Product ID, Ad Ext, IDFA, GAID and BBG are also sent back to BIGO by the postback. The "Product ID" row holds BIGO's app ID (`__APPID__`), not a product from your store.

> [!WARNING]
>
> Don't change or remove the **External ID** and **BBG** rows, and don't move BBG to another tracking field. The postback reads `{external_id}` and `{trackingField15}`. If either arrives empty, BIGO cannot match the conversion to the click. BIGO's Web Events API rejects events without a valid `bbg`.

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

## Step 2 – Set up the postback

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

### Get your Website Pixel ID from BIGO

1. In BIGO Ads, go to **Library → Website Pixel**.
2. Find the pixel you created for this campaign, or create one. Under **Manual Setup**, BIGO offers **Bigo Pixel+Event\_API**. Choose it if you also install the pixel base code on your lander.
3. Copy the pixel ID.

If you only send conversions server to server, you don't need the pixel code on your pages. You still need the pixel ID in the postback, and you need the pixel turned on in the ad group.

### 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}
https://attr.img-static.tech/attribution/apply/v2?sid={external_id}&appKey=Clickflare_o9YVvj&appId={trackingField1}&idfa={trackingField11}&gaid={trackingField12}&mappedIae=button&event_id=button&ad_ext={trackingField9}&pixel_id=REPLACE&bbg={trackingField15}
```

![The Traffic source postback URL switched on, showing the BIGO Ads template's postback](https://mintcdn.com/clickflare/Z7FseNUODe2P_cAH/images/integrations/templates/bigo-ads/postback.png?fit=max\&auto=format\&n=Z7FseNUODe2P_cAH\&q=85\&s=e9ad610dd1c47a4a81c2f2e8b9cbae19)

What each part does:

| Parameter | Value in the template | What it is |
| - | - | - |
| `sid` | `{external_id}` | BIGO's click ID, stored from `__SID__` |
| `appKey` | `Clickflare_o9YVvj` | The channel key BIGO issued for ClickFlare. Leave it as it is. |
| `appId` | `{trackingField1}` | The promoted app's ID, stored from `__APPID__` |
| `idfa`, `gaid` | `{trackingField11}`, `{trackingField12}` | The device's advertising ID, stored from `__IDFA__` and `__GAID__` |
| `mappedIae`, `event_id` | `button` | The conversion event BIGO records. See [Choosing the event](#choosing-the-event). |
| `ad_ext` | `{trackingField9}` | BIGO's extension attributes, stored from `__AD_EXT__` |
| `pixel_id` | `REPLACE` | Your Website Pixel ID. You must replace it. |
| `bbg` | `{trackingField15}` | BIGO's attribution ID, stored from `__BBG__` |

3. Replace `REPLACE` with your Website Pixel ID. The result:

```text theme={null}
https://attr.img-static.tech/attribution/apply/v2?sid={external_id}&appKey=Clickflare_o9YVvj&appId={trackingField1}&idfa={trackingField11}&gaid={trackingField12}&mappedIae=button&event_id=button&ad_ext={trackingField9}&pixel_id=YOUR_PIXEL_ID&bbg={trackingField15}
```

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 BIGO Ads traffic source selected.

> [!WARNING]
>
> Replace `REPLACE` with your BIGO Website Pixel ID. If `REPLACE` stays in the postback, BIGO cannot find the pixel and rejects the event. BIGO's API answers such requests with an error like `notfound pixel`.

The template sends no payout. BIGO's APIs accept an event value in USD (`monetary`), but the template doesn't include it, and BIGO's documentation for this endpoint does not confirm the parameter. If you want BIGO to see revenue, ask your BIGO account manager whether you can add `&monetary={payout}` to this postback.

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

### Choosing the event

The template hard-codes `button` in both `mappedIae` and `event_id`. `button` is one of BIGO's standard web events. BIGO records the postback as that event, and your ad group can only optimize on it if you select the same event there.

BIGO's standard web events include:

| Use | Event IDs |
| - | - |
| General | `page_view`, `button`, `consult` |
| E-commerce | `ec_register`, `ec_detail_view`, `ec_add_cart`, `ec_order`, `ec_purchase` |
| Forms and lead gen | `form_button`, `form_detail`, `form` |
| Phone | `phone_button`, `phone_detail`, `phone_consult` |
| App | `app_button`, `app_detail`, `app_download` |
| Other | `ad_watch` |

If your ad group optimizes on another event, change `button` in the postback to that event ID. The template uses the same value for `mappedIae` and `event_id`. Confirm with your BIGO account manager that this endpoint accepts your event in both before you launch.

## 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 from the BIGO Ads cost integration. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice.
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 BIGO macro from the template, for example `click_id=__SID__` and `bbg=__BBG__`.

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

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

## Step 4 – Create the campaign in BIGO Ads

1. In BIGO Ads, create a campaign with the objective **Conversions**.
2. In the ad group, paste the ClickFlare campaign URL as the landing page URL.
3. Turn on the **Website Pixel** and select the pixel whose ID you put in the postback.
4. Choose the optimization event. It must match the `event_id` in your postback, `button` unless you changed it.
5. Finish targeting, bid and creatives, and submit.

## Step 5 – Test the integration

BIGO can test a Website Pixel before you spend.

1. In BIGO Ads, open the pixel list, click the pixel's name and choose **Test Pixel**.
2. Follow BIGO's test link to your ClickFlare campaign URL, so the visit carries real `__SID__` and `__BBG__` values.
3. Complete the offer the way a real visitor would.
4. In the BIGO test page, check that the event shows **Success**. Click **Refresh Results** if it doesn't update.
5. In ClickFlare, go to **Logs → Postback Status** and filter by the campaign. A successful request to `attr.img-static.tech` confirms ClickFlare sent it.

BIGO's endpoint returns a short status. A failure usually names the problem: a missing pixel ID, an invalid `bbg`, an unknown pixel or an invalid event ID.

> [!NOTE]
>
> If someone else completes the test conversion, share BIGO's test link with them. BIGO notes that test events may not post correctly otherwise.

***

## Tracking several events

BIGO can receive more than one event from the same click, for example a form submission and a purchase. Each event needs its own postback with its own event ID.

1. In ClickFlare, create a [custom conversion](/docs/en/settings/custom-conversions.md) for each step, for example `lead` and `purchase`.
2. On the BIGO Ads traffic source, click **+ Another postback URL** once per extra event.
3. Paste the template's postback into each one, with your pixel ID, and change `button` to the BIGO event for that step, for example `form` and `ec_purchase`.
4. Map each postback to its ClickFlare event: the `lead` custom conversion to the `form` URL, `purchase` to the `ec_purchase` URL.
5. In BIGO, optimize the ad group on the event that matters most, usually the final one.

> **Rules for multi-event postbacks**
>
> * Use BIGO's standard event IDs only. A made-up name is rejected as an invalid event ID.
> * One postback per event. Don't combine events in one URL.
> * Keep `pixel_id` the same in every postback, unless the events belong to different pixels.
> * Check each event in BIGO's **Test Pixel** page before you optimize on it.

> **Sending only one event**
>
> If BIGO 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 BIGO.
>
> 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 doesn't pass cost in the URL. Its **Cost** row is empty, because BIGO has no cost macro for it.

ClickFlare pulls BIGO spend through its API instead. Use the [BIGO Ads cost integration](/docs/en/integrations/bigo-ads.md):

1. Get a Client ID, Secret and Refresh Token from your BIGO account manager.
2. Set up the BIGO Ads integration in ClickFlare, with the same timezone as your BIGO account.
3. On the BIGO Ads traffic source, select it under **Cost Integration**. You can do this while creating the traffic source in Step 1.
4. On the campaign, set the **Cost Model** to **Not Tracked**, so ClickFlare uses the cost the integration pulls.

> [!NOTE]
>
> Without the cost integration, Not Tracked records no cost at all. If you can't use the integration, set the Cost Model to **CPC** with your average cost per click. If you buy on CPM, enter your CPM bid divided by 1,000. Correct the difference later with a [manual cost upload](/docs/en/settings/manual-cost-upload.md).

See [Cost Models](/docs/en/core-platform-concepts/cost-models.md) and [Setting Up 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 BIGO, revenue arrives hours or days after the click. See [Sending Delayed Revenue to Traffic Sources](/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md). The amount only reaches BIGO if the postback carries a value parameter. See the note on `monetary` in Step 2.

***

## Troubleshooting

> **BIGO doesn't record the test event**
>
> * `REPLACE` is still in the postback, or the pixel ID belongs to another account. Copy the ID from **Library → Website Pixel** again.
> * The pixel is not turned on in the ad group, or the ad group optimizes on a different event than the postback's `event_id`.
> * The `bbg` value is empty. Check that the campaign URL in BIGO contains `bbg=__BBG__` and that the **BBG** row still maps to `{trackingField15}`.
> * The test visit didn't come through BIGO's test link, so `__SID__` and `__BBG__` were never filled in.

> **Conversions show in ClickFlare but not in BIGO**
>
> * **Traffic source postback URL** is off on the BIGO Ads 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**: the response from BIGO names the problem, for example a missing pixel ID or an invalid event ID.

> **BIGO shows conversions with no revenue**
>
> Expected. The template sends the event without a value. To send revenue, confirm with your BIGO account manager that the endpoint accepts `monetary`, then add `&monetary={payout}` to the postback.

> **Cost is zero in ClickFlare**
>
> The Cost Model is **Not Tracked** but no cost integration is selected on the traffic source. Add the [BIGO Ads cost integration](/docs/en/integrations/bigo-ads.md), or switch the Cost Model to **CPC**.

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

***

**FREQUENTLY ASKED QUESTIONS**

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

**A1:** Yes, if they use the same Website Pixel and event. The pixel ID and event are fixed in the postback. Create a second BIGO Ads traffic source for campaigns that use another pixel or optimize on another event.

> **Q2:** What is `appKey=Clickflare_o9YVvj`? Do I change it?

**A2:** No. It is the channel key BIGO issued for ClickFlare and it tells BIGO which tracker sent the event. It is the same for every ClickFlare user. Only `REPLACE` needs your value.

> **Q3:** Why is it called `click_id` in the campaign URL and `sid` in the postback?

**A3:** They are two halves of the same value. ClickFlare reads BIGO's click ID from its own `click_id` parameter. BIGO expects it back in its own `sid` parameter. Both names are fixed. Change neither.

> **Q4:** Why does the postback send IDFA, GAID and the app ID on a web campaign?

**A4:** BIGO's attribution endpoint also serves app campaigns, where those values are required. On web campaigns they can be empty. The values BIGO needs for web conversions are `sid`, `bbg` and `pixel_id`.

## Related

> **[BIGO Ads cost integration](/docs/en/integrations/bigo-ads.md)**
>
> Pull your BIGO spend into ClickFlare.

> **[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 leads and sales into separate events.

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