Docs › Campaigns
Traffic

Campaigns

This is the biggest page in the docs — not because campaigns are hard, but because everything lives here. One campaign is one link you send traffic to. Inside it, streams rotate — the different places that link can point. Plus cloaking, tags, postbacks. It's all labelled, so by the end you'll build a live campaign yourself, no support chat required.

Intro

Let's talk about the words right away, because that's where everyone trips. A campaign is the top object — one link. Inside it, streams rotate — the destination branches traffic is split between. Campaign and stream: the top floor and a branch. Get those two and you've got the whole thing.

The page has two halves: the campaign list (where you create and find your links) and the campaign editor (where you configure one). In order, then.

The real AlterCPA Lite words. We labelled the objects with the words you're used to, but the correct words are different — and they're the correct ones. What's a campaign here is called a поток / flow in the real AlterCPA Lite interface. What's a stream here (a branch) is a путь / path there. What's a landing here is a сайт / site there. You came from another tracker and got used to "campaign / flow / landing" — that's fine, we speak your language. And here's where the bodies are buried: the word "поток / flow" sits at the very top in the real AlterCPA Lite, but in the words you know it's a branch. One word, two floors. That's the whole source of the confusion, and exactly why Lighter exists. Settle in and you'll flip to the real words — they're waiting for you.

Part A. The campaign list

The campaign list: a dense table, the "6 / ∞" quota chip, search, date range and scope. One row, one link.

Open Campaigns in the left menu. You'll see a dense table — one row per campaign, just like the old tracker, only readable.

What's in the toolbar

Left to right:

  1. + New campaign. The blue create button. Next to it, a quota chip like "6 / ∞ campaigns": how many campaigns you've made and how many your plan allows. On an unlimited plan it shows ∞; on a finite one, when you hit the ceiling the create button turns into an upgrade prompt.
  2. Search. The "Search by name, id or code" field. It matches three things: the campaign name (the match is highlighted in the list); a numeric id (type 7, get campaign #7); the full 16-character hex code of the campaign.
  3. User. A dropdown that appears only in team scope (Team). Filters the list by author.
  4. Date range. The period switch. The metrics in the table (CR, EPC, %, cash, clicks, profit, ROI) are computed for exactly this period.
  5. Scope. The Mine / Team toggle. "Mine" = your campaigns; "Team" = everyone's on the team (this adds the User column and the author filter).
Important about the numbers. The list metrics come from the tracker's stats for the chosen date range — live, useful figures. In the classic interface those same columns showed "lifetime" stats from a different counter, so the numbers may not match. That's not a bug, it's by design: Lighter shows what you actually need — results for the period.

The table columns

ColumnShows
#Numeric campaign id
UserCampaign author — Team scope only
NameCampaign name; clicking it opens the editor. Search matches are highlighted
CodeThe short hex code (i2c) — the same one in its link
CRConversion rate for the period
EPCEarnings per click for the period
%Approval rate for the period
CashRevenue for the period
ClicksClicks for the period
ProfitProfit for the period
ROIReturn — coloured: green = up, red = down, amber = breakeven
URLThe campaign's live link — edited inline in the row
⋯Row action menu

The colour code is the same everywhere: green = profit and up, red = loss, amber = breakeven. We never recompute it; the colour comes from the API.

Watch only the ROI column. Green — you can breathe out, the cat naps happily on the chart. Red — go fix a stream, not the table.

Row actions

Hover a row or open the ⋯ menu:

The row menu: open and copy link, statistics, clone, download client. Deleting keeps the stats.

Sorting and paging

50 campaigns per page, newest first (flow_id DESC). Column sorting is deliberately disabled — clicking a header does nothing. It was the same in classic: not an oversight, a deliberate choice for a predictable order.

Create your first campaign

Creating a campaign: name, the mutually exclusive URL / Site tabs, method (302 by default) and the simple-mode toggle.
  1. Click + New campaign. A modal opens.
  2. Enter a campaign Name. You'll find it by this later.
  3. Set the first stream. There are two mutually exclusive tabs: URL — an external address to send traffic to; Site — a local landing from your library. Pick one. Only one of the two can be filled — the tabs switch between them.
  4. Pick a redirect Method. The default is 302 — a temporary HTTP redirect, what you want 90% of the time. We cover the rest below.
  5. Optionally flip the Simple mode toggle (simple). If you want one link to one landing with no rotation at all. See "A simple campaign" for what it changes.
  6. Create it. The campaign is created (flows/create) and the editor opens immediately with one Default stream.

Done. You have a campaign. Now let's configure it.

Part B. The campaign editor

The editor header: inline name, code and URL with copy, the pixel snippet and the flashing "Saved" indicator. No Save button.

Clicking a campaign name (or "Edit") opens the editor. The one thing to grasp up front:

There is no Save button — stop looking for it. The editor is an auto-saving form. Change any field and it saves itself (flows/change); the header link and pixel refresh, and a "Saved" indicator flashes next to them. If the server rejects something, an error toast shows and the field reverts to its previous value. The classic editor worked the same way; we kept the model.

The editor header

In the campaign header:

The six tabs

Settings are split across six tabs for density: Streams · Rotation · Filter · Tags & data · Postbacks · Settings. One at a time.

Tab 1. Streams

The Streams tab: a flush table, the hairline priority column with chevrons (green/amber/red), active toggles.

The heart of the campaign. A stream is one destination branch: its own landing or URL, its own method, weight, priority, caps, schedule, geo, device. Streams are what rotate — they're what the rotation splits.

The tab is a flush box: a header bar with a title and an add button, then an edge-to-edge streams table under it — dense and tidy.

The streams table columns:

A campaign has no separate "active" flag. A campaign counts as active if it has at least one active stream. Enabling/disabling is always at the stream level, with this toggle.

Stream actions:

How to add a stream (step by step)

  1. On the Streams tab, click Add stream.
  2. The stream drawer opens. Fill the fields (all covered below).
  3. Don't save anything separately. Every field saves itself.
  4. Set the Priority and Weight if the stream takes part in rotation (see the Rotation tab).
  5. Flip the Active toggle so the stream starts receiving traffic.
The stream drawer: destination, method, second step, a schedule with timezone, caps, geo, device, flags and priority.

Stream fields (the drawer)

Open a stream — a drawer with every setting:

MethodWhat it does
302Temporary HTTP redirect (default)
301Permanent HTTP redirect
redirectRedirect via a page (meta/JS)
jsgoJS redirect
iframeLoad the target in a frame
proxyProxy the target
curlServe via cURL
localServe locally
errorReturn an error
blankEmpty response
Gotcha: Site hides URL and Method. The moment you set Site (a local landing) on a stream, the URL and Method fields disappear — a local site doesn't need them. Clear the site and they come back, with your typed URL preserved.
The gotcha in the flesh: Site is set, so the URL and Method fields are hidden — a local landing doesn't need them.
Gotcha: a next-site hides the next-URL and next-method. Same for the second step: set a next site (nxsite) and the next URL and next method fields hide.
Gotcha: ww / zz reset the geo. Typing ww or zz into a geo field (allow or deny) resets the country list. It's a quick way to clear geo, not a way to add "country ww".

Tab 2. Rotation

The Rotation tab: the algorithm select (round-robin … smart) with an explainer, the Direct percent and the rotor toggle.

Rotation decides which stream to pick out of several when a click arrives. One select — Algorithm — with an explainer for the chosen mode below it.

Algorithms (0–8):

ModeHow it picks a stream
Round-robinIn turn, evenly
RandomAt random
CRBy conversion rate
EPCBy earnings per click
Best CRAlways the best CR
Best EPCAlways the best EPC
WeightedBy stream weights (pos)
ManualManually, by priority (prio)
SmartThe smart auto mode

Plus:

What surfaces where. In Weighted mode the stream Weight (pos) starts to matter — it's how traffic is split. In Manual mode the Priority (prio) matters — streams run strictly by it. In the other modes neither weight nor priority drives the choice.

How to set up rotation (step by step)

  1. Open the Rotation tab.
  2. Pick an Algorithm. The explainer under the select tells you exactly how it splits traffic.
  3. Chose Weighted? Go back to Streams and give each stream a Weight.
  4. Chose Manual? Give the streams a Priority.
  5. If needed, set Direct (percent to the best stream) and Rotor.
  6. Don't save — auto-save already wrote it.

Tab 3. Filter

The Filter tab: a full Filter is attached, so the five flags and the geo list are hidden — the filter runs them now.

This is campaign-level cloaking: split traffic into bots/moderators (to a white, safe page) and real humans (to the money page).

On the tab:

Gotcha: an attached Filter hides the five flags and geo. The moment you pick a full Filter in "Attach a filter", the five toggles (bots/filters/geo/lang/adid) and the geo list disappear — because the attached filter now runs all those rules, not the campaign's checkboxes. Remove the filter and the flags and geo come back.
Gotcha: a trafficback safe-site disables the back-URL and method. If the trafficback has a safe site (a white page), the back URL and method fields go disabled — not hidden, disabled. Makes sense: the site already defines where trafficback goes.

How to attach cloaking (step by step)

  1. Open the Filter tab.
  2. Configure simple cloaking or pick a ready-made Filter. Either configure simple cloaking with the checkboxes (bots / geo / lang / adid) and fill the geo list, or pick a ready-made Filter in "Attach a filter" — the latter hides the checkboxes, which is expected.
  3. Set the Trafficback. Where rejected traffic goes: a back URL and method, or a safe site (which then disables the URL and method — as intended).
  4. Deep authoring of the filters and block-lists themselves lives on the separate Filters page.
The cat at the door doesn't sleep: bots to the white page, real humans to the money. You just tick a box; the rest is handled for you.

Tab 4. Tags & data

The Tags & data tab: UTM, subid, data1..5, hide1..6, click cost, currency (usd) and a live macro palette — click to copy.

Here you name how your traffic's incoming parameters arrive, so the tracker files them right.

Alongside is a live macro palette: {click}, {geo}, {subid}, {cost} and more. Clicking a macro copies it to the clipboard — paste it into any field.

Tab 5. Postbacks

The Postbacks tab: six per-status URLs with colour dots, macros, and two generators — source tags and a postback template.

A postback is a URL the tracker fires when a lead changes status. Here are six fields — one per state:

FieldStatusDot colour
pbglobalGlobal (any status)—
pbnewNewblue
pbholdHoldamber
pbapproveApprovegreen
pbcancelCancelred
pbtrashTrashgrey

Each has a coloured status dot beside it, and a macro list below for substitution.

Plus two generators so you don't hand-build URLs:

How to configure postbacks with a generator (step by step)

  1. Open the Postbacks tab.
  2. In the generator box, pick your ad network.
  3. Generate the postback template. It inserts the right macros for that network's format.
  4. Place the resulting URL into the states you need (or use pbglobal for all at once).
  5. If needed, generate the traffic-source tags and move them to the "Tags & data" tab.
  6. Don't save — auto-save already wrote it.

Tab 6. Settings

The Settings tab: template, a parked domain, nostore, nocookie, autourl, pixel and the simple-mode toggle.

The campaign's general settings:

A simple campaign

A simple campaign: all complexity collapsed into one site/URL/method row. No streams table, no rotation.

Sometimes you don't need rotation, streams and cloaking — you need one link to one landing. That's what Simple mode (simple) is for.

What it does: it collapses all the stream complexity into a single row — site / URL / method right in place, with no streams table and no rotation. Perfect when a campaign is literally "send everyone here".

How to make a simple campaign (step by step)

  1. When creating the campaign, flip the Simple mode toggle — or turn it on later on the Settings tab.
  2. Set one destination: Site or URL and a Method.
  3. Done — no streams table, no rotation. One link, one address.
Inclusive mode for anyone to whom "stream" is still too many letters. One campaign, one address, zero ways to get confused.

On mobile

On mobile: each campaign is a card with all fields and buttons, a bottom tab bar, no horizontal scroll.

On a narrow screen the campaign list becomes cards: each campaign is its own card with all fields and buttons (edit / stats / delete / menu). A thumb-friendly tab bar sits at the bottom. There's no horizontal scroll — everything fits the width.

Quick cheat sheet