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.
Part A. The campaign list
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:
- + 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.
- 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. - User. A dropdown that appears only in team scope (Team). Filters the list by author.
- Date range. The period switch. The metrics in the table (CR, EPC, %, cash, clicks, profit, ROI) are computed for exactly this period.
- Scope. The Mine / Team toggle. "Mine" = your campaigns; "Team" = everyone's on the team (this adds the User column and the author filter).
The table columns
| Column | Shows |
|---|---|
| # | Numeric campaign id |
| User | Campaign author — Team scope only |
| Name | Campaign name; clicking it opens the editor. Search matches are highlighted |
| Code | The short hex code (i2c) — the same one in its link |
| CR | Conversion rate for the period |
| EPC | Earnings per click for the period |
| % | Approval rate for the period |
| Cash | Revenue for the period |
| Clicks | Clicks for the period |
| Profit | Profit for the period |
| ROI | Return — coloured: green = up, red = down, amber = breakeven |
| URL | The 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.
Row actions
Hover a row or open the ⋯ menu:
- Open link — opens the campaign's live URL in a new tab.
- Copy link — copies the link to the clipboard (a "Link copied" toast appears).
- Statistics — jumps to Reports, already filtered to this campaign.
- Clone — opens a modal pre-filled with a "… copy" name and duplicates the campaign.
- Edit — opens the editor (same as clicking the name).
- Delete — on confirmation, removes the campaign. Stats are preserved server-side — past numbers don't vanish.
- Download client — downloads the campaign's TDS client (a file for server-side integration).
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
- Click + New campaign. A modal opens.
- Enter a campaign Name. You'll find it by this later.
- 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.
- Pick a redirect Method. The default is 302 — a temporary HTTP redirect, what you want 90% of the time. We cover the rest below.
- 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. - 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
Clicking a campaign name (or "Edit") opens the editor. The one thing to grasp up front:
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:
- Name — edited inline, right in place.
- The campaign Code and URL — each with a copy button.
- Pixel — the
gifpixel snippet (shown only if the pixel is enabled in Settings). - Clone, Download client, Delete — the same actions as in the list.
- The "Saved" indicator — flashes after every auto-save.
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 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:
- Priority — the leading, hairline icon-only column. This is the sort key for streams. Priority renders as chevrons: one arrow (±1) or two arrows (±2, ±3), up or down, and an
=bar for Normal. Coloured by magnitude: green / amber / red. The header is a sort glyph. - Active — a toggle to enable/disable the stream.
- Name of the stream.
- Destination — the URL or landing the stream points to.
- Method of redirect.
- Weight / priority.
- Live CR / EPC / approval % / cash and caps (leads collected toward the cap).
Stream actions:
- Add stream — the button in the panel header (
flows/add). - Copy stream — duplicates a stream; you can copy it into this campaign or another one.
- Delete stream (
flows/del).
How to add a stream (step by step)
- On the Streams tab, click Add stream.
- The stream drawer opens. Fill the fields (all covered below).
- Don't save anything separately. Every field saves itself.
- Set the Priority and Weight if the stream takes part in rotation (see the Rotation tab).
- Flip the Active toggle so the stream starts receiving traffic.
Stream fields (the drawer)
Open a stream — a drawer with every setting:
- Destination — where to send traffic: URL — an external address; Site — a local landing from the library; spath — a subpath inside the landing.
- Method — how to serve the traffic. Values:
| Method | What it does |
|---|---|
| 302 | Temporary HTTP redirect (default) |
| 301 | Permanent HTTP redirect |
| redirect | Redirect via a page (meta/JS) |
| jsgo | JS redirect |
| iframe | Load the target in a frame |
| proxy | Proxy the target |
| curl | Serve via cURL |
| local | Serve locally |
| error | Return an error |
| blank | Empty response |
- Second step — a two-hop chain: next site (
nxsite), next URL (nxurl), next method (nxmethod). - Schedule — weekday checkboxes (Mon–Sun) + from and to hours + a timezone. The timezone is a searchable single-select with a "— Default —" item at the top of the list.
- Caps — the limit period (0–7: no limit / per hour / per day / …), the cap (a number), the goal (by name) and the status when the cap is hit.
- Geo — allow (
geo) and deny (nogeo) country lists. - Device — the device type (0–4: any / desktop / mobile / …).
- Flags — toggles: bots (
bots), adid, filters (filters), lang (lang). - URL white/blacklist (
uwl/ubl) — these are multi-line text areas, one URL mask per line. Not commas — a line break per entry. - Hidden data — six fields,
hide1..6. - Weight (
pos) — the stream's weight for weighted rotation. - Priority (
prio) — a fixed −3…+3 scale, not a free number. It's a labelled select: Highest / Higher / High · Normal · Low / Lower / Lowest. Remember the rule: a lower value = higher priority (−3 is the highest, +3 the lowest, 0 is Normal).
nxsite) and the next URL and next method fields hide.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
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):
| Mode | How it picks a stream |
|---|---|
| Round-robin | In turn, evenly |
| Random | At random |
| CR | By conversion rate |
| EPC | By earnings per click |
| Best CR | Always the best CR |
| Best EPC | Always the best EPC |
| Weighted | By stream weights (pos) |
| Manual | Manually, by priority (prio) |
| Smart | The smart auto mode |
Plus:
- Direct — the percentage of traffic sent straight to the best stream.
- Rotor (
rotor) — the rotor-mode toggle.
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)
- Open the Rotation tab.
- Pick an Algorithm. The explainer under the select tells you exactly how it splits traffic.
- Chose Weighted? Go back to Streams and give each stream a Weight.
- Chose Manual? Give the streams a Priority.
- If needed, set Direct (percent to the best stream) and Rotor.
- Don't save — auto-save already wrote it.
Tab 3. Filter
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:
- Five flag toggles: bots (
bots), filters (filters), geo (geo), lang (lang), adid. - A geo list (
geos). - Attach a filter — a select for a filter-campaign (a full Filter from the library).
- Trafficback — where to dump the rejected traffic: a back URL, a site, a method.
How to attach cloaking (step by step)
- Open the Filter tab.
- 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.
- 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).
- Deep authoring of the filters and block-lists themselves lives on the separate Filters page.
Tab 4. Tags & data
Here you name how your traffic's incoming parameters arrive, so the tracker files them right.
- UTM tags: source (
utms), campaign (utmc), content (utmn), term (utmt), medium (utmm). - subid — the click id from the source.
- data1..5 — five free-form data fields.
- hide1..6 — six hidden fields.
- Click cost (
cpc) — the cost per click. - Currency (
cur) — defaults to usd.
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
A postback is a URL the tracker fires when a lead changes status. Here are six fields — one per state:
| Field | Status | Dot colour |
|---|---|---|
| pbglobal | Global (any status) | — |
| pbnew | New | blue |
| pbhold | Hold | amber |
| pbapprove | Approve | green |
| pbcancel | Cancel | red |
| pbtrash | Trash | grey |
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:
- Traffic-source tags generator — pick an ad network, get its ready-made UTM parameter set.
- Postback template generator — pick a network, get a ready postback-URL template.
How to configure postbacks with a generator (step by step)
- Open the Postbacks tab.
- In the generator box, pick your ad network.
- Generate the postback template. It inserts the right macros for that network's format.
- Place the resulting URL into the states you need (or use pbglobal for all at once).
- If needed, generate the traffic-source tags and move them to the "Tags & data" tab.
- Don't save — auto-save already wrote it.
Tab 6. Settings
The campaign's general settings:
- Template (
template) — the serving template. - Domain (
domain) — a parked domain from your list (from the reference). This is the one that ends up in the campaign's live link. - nostore (0/1/2) — the click-storage mode.
- nocookie (0/1/2) — the cookie mode.
- autourl — auto-URL.
- Pixel (
pixel) — enables thegifpixel; when on, a paste snippet appears in the header. - Simple mode (
simple) — the simple-campaign toggle (below). - Pixel snippet — the paste code, when the pixel is enabled.
A simple campaign
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)
- When creating the campaign, flip the Simple mode toggle — or turn it on later on the Settings tab.
- Set one destination: Site or URL and a Method.
- Done — no streams table, no rotation. One link, one address.
On mobile
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
- Campaign = the link (in the real AlterCPA Lite — поток / flow). Stream = the branch it goes to (the real word is путь / path). Landing = the page (the real word is сайт / site). Familiar words outside, the correct ones inside — settle in and switch.
- No Save button — everything saves itself; watch the "Saved" indicator.
- A campaign is "active" if it has at least one active stream.
- Priority: lower = higher. Weight rules in Weighted, priority in Manual.
- Site hides URL/method; a next-site hides the next URL/method; an attached Filter hides the five checkboxes and geo; a trafficback safe-site disables the back URL and method;
ww/zzreset geo. - The list numbers are for the chosen period, not lifetime. By design.