---
title: Your first campaign
description: The whole path from a connected ad account to a tracking link that reports revenue against spend.
updated: 2026-07-30
order: 1
related: [/guides/offer-sources, /guides/pixels, /concepts/vocabulary]
---

This is the end-to-end setup, in dependency order. Each step needs the one before
it, which is why campaigns come last rather than first — a campaign ties the other
pieces together and there is nothing to tie until they exist.

Each of these pages has an animated walkthrough built into it. Look for **How it
works** in the page header for a step-by-step replay of the screen you are on.

## 1. Connect the ad account

[Ad Accounts](https://app.postbackx.com/ad-accounts) — connect the platform you buy
traffic on. This is what pulls your ad spend in; without it PostbackX knows your
revenue but not what you paid for it, and every profit column reads as pure profit.

## 2. Connect an offer source

[Offer Source](https://app.postbackx.com/offer-source) — the affiliate platform your
offers come from, and the thing that will send conversions back.

Connecting it gives you the postback URL to configure on their side. See
[connecting an offer source](/guides/offer-sources).

## 3. Add a pixel

[Pixels](https://app.postbackx.com/pixels) — how conversions get sent back to the
ad platform, so its algorithm can optimize toward people who buy rather than people
who click.

For Facebook you need the Pixel ID and a Conversions API access token, both from
Events Manager. See [sending conversions back](/guides/pixels).

## 4. Create the offer

[Create Offers](https://app.postbackx.com/create-offers) — what you are promoting.

If you use Everflow, import it and the configuration is filled in for you.
Otherwise use the Custom tab, where you need two things from your offer source:

- **The offer URL** — their tracking link. **Append your click id macro**, e.g.
  `&sub5={click_id}`. Without it, no conversion can be attributed to anything. This
  is the single most common setup mistake.
- **Their postback configured** to fire at PostbackX when a conversion happens.

## 5. Optionally, a landing page or a flow

Not required — a campaign can send traffic straight to an offer.

[Landing Pages](https://app.postbackx.com/landing-pages) is worth it on Facebook
specifically: a page of your own can capture the `_fbp` and `_fbc` browser cookies
that only exist client-side, which measurably improves match quality. It needs a
[snippet](/reference/snippets) embedded.

[Flows](https://app.postbackx.com/flows) are for splitting traffic across several
landing pages or offers by weight. Define one and reuse it across campaigns; change
it once and every campaign follows.

## 6. Create the campaign

[Create Campaigns](https://app.postbackx.com/create-campaigns) — pick the pixel, the
offer, and optionally the flow. You get one tracking link.

**What a campaign ties together** — A campaign is the knot: a pixel, an offer, optionally a flow — and one link for your ads.

1. **Pick the pixel.** Choose the pixel for the platform you are buying traffic on, so conversions get reported back to it.
2. **Pick the offer.** Choose what you are promoting. This is where the traffic converts.
3. **Create it.** A flow is optional — add one when you want to split traffic across several landing pages or offers.
4. **Your tracking link.** You get one link. Put it behind your ads and every click, conversion and pixel event is attributed automatically.

That link goes behind your ads. From then on every click, conversion and pixel event
is attributed automatically.

## 7. Map the campaign

[Campaign Mappings](https://app.postbackx.com/campaign-mappings) — link your
PostbackX campaign to the ad platform's own campaign.

This is what puts spend and revenue in the same row. Unmapped, you get two
half-reports. PostbackX suggests matches by name; accept the correct ones.

## 8. Verify before you scale

Do not wait for real traffic to find out whether it works.

1. Click your own tracking link. It should appear in
   [Clicks](https://app.postbackx.com/clicks) within seconds.
2. Confirm the click id is visible in the URL you land on. If not, step 4's macro is
   missing.
3. Fire a test conversion with that click id — the `curl` in
   [conversions are missing](/guides/missing-conversions) — and confirm it appears in
   [Conversions](https://app.postbackx.com/conversions).
4. Check the pixel event reached the ad platform. For Facebook that is Events
   Manager, where it should arrive within minutes.

If all four pass, the chain is sound and you can spend money against it.

## Worth knowing early

**Use a [custom tracking domain](/guides/tracking-domains).** Links on your own
domain look like yours and are more resilient than a shared default.

**Send `transaction_id` on your postbacks.** It is optional and it is what makes
duplicate detection correct. See [attribution](/concepts/attribution).

**Conversions are attributed to the day of the click, not the sale.** Today's
numbers keep filling in for days. This is correct, and it surprises everyone once.
