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

# Rumble as a Traffic Source

> Track Rumble Ads in ClickFlare: capture the _raclid click ID and placement macros, and post conversions with caid and payout back to Rumble.

![Rumble traffic source template](https://mintcdn.com/clickflare/Z7FseNUODe2P_cAH/images/integrations/covers/templates/rumble.png?fit=max\&auto=format\&n=Z7FseNUODe2P_cAH\&q=85\&s=42163f4e5d1100679f08edf7baeec1f4)

Rumble Ads, run from the Rumble Advertising Center (RAC), sells video and display placements across Rumble and its partner publisher network. Buying is mostly CPM. This guide sets up Rumble as a traffic source in ClickFlare. It covers capturing Rumble's click ID and placement data in your reports, and sending conversions, with payout, back to Rumble so its reporting and optimization match yours.

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

## At a glance

| | |
| - | - |
| **Ad formats** | Video (pre-roll) and display ads on Rumble and partner sites |
| **Click ID** | `_raclid`, added to your URL by Rumble on every click. No macro needed. |
| **Conversion tracking** | S2S postback to `a.ads.rmbl.ws` |
| **Payout passed back** | Yes, in the `value` parameter |
| **Multiple events** | Yes. One Rumble conversion action, and one postback, per event |
| **Cost** | Not passed in the URL. Use ClickFlare's Rumble cost integration with Cost Model **Not Tracked**. |
| **Conversion API** | No. Conversions go back by postback. |

## How it works

**1. Rumble sends the click**

A visitor clicks your ad. Rumble opens your ClickFlare campaign URL, fills in its macros (creative, campaign, site, zone and other details) and appends its own click ID in the `_raclid` parameter.

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

ClickFlare saves the value of `_raclid` as the visit's **External ID**, records the placement details in tracking fields, 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 Rumble**

ClickFlare fires the Rumble postback, replacing `{external_id}` with the stored `_raclid` value and `{payout}` with the revenue. Rumble matches it to the click and credits it to the conversion action in `caid`.

> [!NOTE]
>
> The mirror to keep straight: in the **campaign URL** you write *ClickFlare's* parameter (`campaignid`) and *Rumble's* macro (`{campaign}`). The template does this for you. The click ID is the exception: Rumble adds `_raclid=...` itself, so the traffic source only names the parameter and leaves the macro empty. In the **postback URL** you write *Rumble's* parameter (`cid`) 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](/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 conversion action in Rumble.** In Rumble Ads, go to **Advertisers → Conversion Tracking** and create the action you want to count, for example a purchase. Rumble shows an ID number next to it. That number goes into the postback as `caid`.
* **Get a Rumble Auth Key for cost tracking.** Rumble bills on impressions and the template passes no cost in the URL. ClickFlare's [Rumble cost integration](/docs/en/integrations/rumble-cost-integration.md) pulls your spend instead. Ask your Rumble account manager or support for the key if you don't have it.
* **Decide which conversions Rumble should receive.** Rumble reports and optimizes on what you send it. If your funnel has several steps, decide now whether to send one event or several. See [Tracking several events](#tracking-several-events).

***

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

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

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

| Name | TS Parameter | TS Token (Rumble macro) | ClickFlare Token | What it carries |
| - | - | - | - | - |
| Cost | *empty* | *empty* | `{cost}` | Nothing. The template passes no cost from the URL. See [Cost](#cost). |
| External ID | `_raclid` | *empty* | `{external_id}` | Rumble's click ID. See below. |
| Creative ID | `creativeid` | `{creative}` | `{trackingField1}` | The creative |
| Campaign ID | `campaignid` | `{campaign}` | `{trackingField2}` | The Rumble campaign ID |
| Site ID | `siteid` | `{site}` | `{trackingField3}` | The publisher site that showed the ad |
| Site Domain | `sitedomain` | `{site.domain}` | `{trackingField4}` | The domain of that site |
| Zone ID | `adzone` | `{adzone}` | `{trackingField5}` | The ad zone on the site |
| Conversion ID | `conversion` | `{conversion}` | `{trackingField6}` | The Rumble conversion ID tied to the campaign. See [Tracking several events](#tracking-several-events). |
| Keywords | `keywords` | `{keywords}` | `{trackingField7}` | The campaign's keyword targeting |
| Keywords Match | `keywordsmatch` | `{keywords.matched}` | `{trackingField8}` | The keyword that matched for this impression |
| Country | `country` | `{country}` | `{trackingField9}` | The visitor's country |
| City | `city` | `{city}` | `{trackingField10}` | The visitor's city |
| Region | `region` | `{region}` | `{trackingField11}` | The visitor's region or state |
| Carrier | `carrier` | `{carrier}` | `{trackingField12}` | The mobile carrier |
| Device | `device` | `{device}` | `{trackingField13}` | The device |
| Device Type | `devicetype` | `{device.type}` | `{trackingField14}` | The device type, for example mobile or desktop |
| Operating System ID | `os` | `{os}` | `{trackingField15}` | Rumble's ID for the operating system |
| Operating System Name | `osname` | `{os.name}` | `{trackingField16}` | The operating system's name |
| Language ID | `language` | `{language}` | `{trackingField17}` | Rumble's ID for the browser language |

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

### The External ID row

The **External ID** row has `_raclid` in **TS Parameter** and an empty **TS Token**. Rumble appends `_raclid` to the URL by itself, so there is no macro to enter. ClickFlare stores the value as the External ID, and the postback sends it back to Rumble as `cid`.

Leave the row as it is. Don't type a macro into its TS Token, and don't remove `_raclid` from **TS Parameter**. Without it, `{external_id}` stays empty and Rumble can't match any conversion.

Each tracking field becomes a column you can group reports by. `siteid`, `sitedomain` and `adzone` are the ones you will use most: they tell you which publisher sites and zones convert, so you can add them to your white or black lists in Rumble.

Rumble's public material doesn't document every macro in this template. After launch, check that each column fills in. If a column stays empty or shows the macro text, Rumble doesn't support that macro on your campaign, and you can delete the row.

To pass more Rumble data, click **Add Parameter**, give it a name and parameter, and enter the Rumble macro as the **TS Token**. ClickFlare assigns the next free tracking field.

## Step 2 – Set up the postback

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

### Get your conversion action ID from Rumble

1. In Rumble Ads, go to **Advertisers → Conversion Tracking**.
2. Create a conversion action if you don't have one, for example `Purchase`.
3. Copy the ID number shown next to the action. This is your `caid`.

### 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://a.ads.rmbl.ws/v1/conversions?cid={external_id}&caid=REPLACE&value={payout}
```

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

It already sends the click ID (`{external_id}`, filled with `_raclid`) and the payout (`{payout}`), both as ClickFlare tokens.

3. Replace `REPLACE` with the conversion action ID you copied from Rumble. The result looks like this, with your own ID:

```text theme={null}
https://a.ads.rmbl.ws/v1/conversions?cid={external_id}&caid=12345&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 Rumble traffic source selected.

> [!WARNING]
>
> Replace `REPLACE` with the number from **Advertisers → Conversion Tracking**. If `caid=REPLACE` stays in the postback, Rumble doesn't know which conversion action to credit and the conversion is lost.

`value` carries the payout as ClickFlare recorded it. Rumble doesn't document a currency parameter, so if your offers pay in a currency other than your Rumble account's, check how payouts are converted in ClickFlare. 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 spend the Rumble cost integration pulls. See [Cost](#cost).
3. Choose **Redirect** or **Direct** tracking. Redirect is the usual choice. Rumble's click, with its `_raclid`, lands on your ClickFlare domain and ClickFlare stores it.
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 Rumble macro from the template, for example `campaignid={campaign}` and `adzone={adzone}`. It does not contain `_raclid`. Rumble adds that on the click.

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

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

## Step 4 – Create the campaign in Rumble

1. In Rumble Ads, go to **Advertisers → New Campaign**.
2. Choose the ad type (image or video) and format, then set bidding, budget and targeting as usual.
3. Paste the ClickFlare campaign URL into the **Product Link** field.
4. Add your creatives and submit the campaign for approval.

Paste the URL exactly as ClickFlare gives it. Rumble replaces each `{...}` macro and adds `_raclid` when the ad is clicked.

## Step 5 – Test the integration

Rumble doesn't publish a test-conversion tool, so test with a live click.

1. Once the campaign is approved and serving, click your own ad, or wait for the first real clicks.
2. In ClickFlare, open the campaign's report and group by a tracking field such as **Site Domain**. Filled values show Rumble is replacing its macros.
3. Complete the offer the way a real visitor would, or wait for the first real conversion.
4. Go to **Logs → Postback Status** and filter by the campaign. Open the postback to `a.ads.rmbl.ws`. `cid` should hold a long click ID and `caid` your conversion action number. An empty `cid` means the visit didn't carry `_raclid`, or the External ID row was edited.
5. In Rumble, check that the conversion appears in your statistics against the conversion action.

***

## Tracking several events

Rumble ties each postback to one conversion action. To track several steps, for example a lead and a purchase, create one conversion action per step in **Advertisers → Conversion Tracking**, and send each step with its own `caid`:

```text theme={null}
https://a.ads.rmbl.ws/v1/conversions?cid={external_id}&caid=11111&value={payout}
https://a.ads.rmbl.ws/v1/conversions?cid={external_id}&caid=22222&value={payout}
```

1. In ClickFlare, create a [custom conversion](/docs/en/settings/custom-conversions.md) for each step, for example `lead` and `purchase`.
2. On the Rumble traffic source, click **+ Another postback URL** once per extra event.
3. Map each postback to its ClickFlare event: the `lead` custom conversion to the URL with the lead action's `caid`, `purchase` to the purchase action's.
4. Test each event and check **Logs → Postback Status** for each one.

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

> **The Conversion ID column**
>
> The template stores Rumble's `{conversion}` macro in a tracking field. Some trackers use this value to fill `caid` automatically on each click instead of typing the ID. Check what the column holds after launch. If it matches the ID in **Advertisers → Conversion Tracking**, you could use `caid={trackingField6}` in the postback. Typing the ID is the safer default, and the only way to send different events to different actions.

## Cost

The template's Cost row is empty, so no cost goes in the URL. Rumble prices most buys per thousand impressions and doesn't document a cost macro, so cost comes from elsewhere.

The best option is ClickFlare's **Rumble cost integration**. It pulls your actual spend from Rumble's API, hourly, down to ad level. You need a Rumble **Auth Key** from your Rumble account manager or support. Once the integration exists, select it under **Cost Integration** on the Rumble traffic source, and set the campaign's **Cost Model** to **Not Tracked** so ClickFlare uses the spend it pulls. Set the integration's timezone to match your Rumble account. See [Rumble Cost Integration](/docs/en/integrations/rumble-cost-integration.md).

> [!NOTE]
>
> Without the integration, set the **Cost Model** to **CPC** and enter your CPM bid divided by 1,000 as the cost per visit. On video, not every impression leads to a click, so this overstates cost. Correct it with a [manual cost upload](/docs/en/settings/manual-cost-upload.md) from your Rumble statistics.

See [Cost Models](/docs/en/core-platform-concepts/cost-models.md) and [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 Rumble, the feed reports revenue hours or days after the click. To pass that revenue to Rumble once it arrives, see [Sending Delayed Revenue to Traffic Sources](/docs/en/advanced-tracking-configuration/how-to-send-delayed-revenue-to-traffic-sources.md).

***

## Troubleshooting

> **The postback goes out with an empty cid**
>
> * The **External ID** row was edited. It should have `_raclid` in **TS Parameter**, with the underscore, and an empty **TS Token**.
> * A redirect between Rumble and ClickFlare dropped the query string. Paste the ClickFlare campaign URL directly into **Product Link**.
> * The visit didn't come from a Rumble ad click, for example a test visit you opened yourself. Only real ad clicks carry `_raclid`.

> **Conversions show in ClickFlare but not in Rumble**
>
> * `caid=REPLACE` was never replaced with your conversion action ID.
> * **Traffic source postback URL** is off on the Rumble 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 Rumble returned.

> **Rumble shows conversions with no value**
>
> The template sends `value={payout}`, so it was removed or edited. Restore `&value={payout}` at the end of the postback. Also check that the offer in ClickFlare has a payout, or that your affiliate network passes one.

> **Cost is zero or wrong**
>
> * The Rumble cost integration isn't selected under **Cost Integration** on the traffic source.
> * The campaign's **Cost Model** isn't **Not Tracked**. The template passes no cost, so nothing else fills it.
> * The integration's timezone differs from your Rumble account, so spend lands on the wrong day.

> **Site or zone columns are empty**
>
> The macros were not replaced, usually because the URL was edited or pasted somewhere Rumble doesn't process macros. Paste the campaign URL from ClickFlare unchanged. See [Traffic Source Tokens Arriving Empty](/docs/en/troubleshooting/tokens-arriving-empty.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 Rumble traffic source for all my Rumble campaigns?

**A1:** Yes, as long as they report to the same conversion action. The postback, with its `caid`, is set once on the traffic source. If different campaigns optimize for different actions, map each action to its own ClickFlare event, or create a second Rumble traffic source.

> **Q2:** Why is the click ID called `_raclid` in the URL and `cid` in the postback?

**A2:** They are two halves of the same value. Rumble appends its click ID as `_raclid`, and ClickFlare stores it as the External ID. Rumble expects it back in its own `cid` parameter. Both names are fixed. Change neither.

> **Q3:** Where do I find `caid`?

**A3:** In Rumble Ads, under **Advertisers → Conversion Tracking**. It's the ID number next to the conversion action you created.

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

**A4:** Redirect is the usual choice. ClickFlare receives the click with `_raclid` and stores it. Use Direct only if Rumble must see your lander's domain as the destination. See [Direct Campaign Tracking](/docs/en/campaigns/direct-campaign-tracking.md).

> **Q5:** How often does the Rumble cost integration update spend?

**A5:** Every hour. Costs sync at campaign level and below, including ad level.

## Related

> **[Rumble cost integration](/docs/en/integrations/rumble-cost-integration.md)**
>
> Pull your Rumble spend into ClickFlare automatically.

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