Create campaign
create_campaignCreate a manual tracker campaign. Only name is required — domain defaults to the workspace default, cost model to none, rotation to by_position. Give offer_id (and optionally landing_id) to build the default flow with that single destination, or send a full flows tree (flows → rules → destinations; see get_campaign include=flows for the shape). Returns the campaign with its click_url.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | Tag ids (see list_tags) | |
| alias | No | Short code used in the click URL /c/{alias}; generated when omitted. Globally unique. | |
| flows | No | Routing tree, evaluated in order. Exactly one flow should be is_default (catch-all, no rules). On update the list is complete: rows match by id, omitted rows are deleted. | |
| notes | No | ||
| pixels | No | Attached conversion pixels (complete list on update) | |
| group_id | No | ||
| offer_id | No | Create shortcut: route the default flow to this offer (ignored when flows is sent) | |
| cost_type | No | How click cost is booked (auto = from the {cost} macro) | |
| domain_id | No | Tracking domain (see list_domains; defaults to the workspace default on create) | |
| postbacks | No | Campaign-level outgoing postbacks (complete list on update) | |
| cost_value | No | Cost per click / per 1000 (cpc / cpm) or per conversion (cpa); % for revshare | |
| landing_id | No | Create shortcut: show this landing before the offer (needs offer_id) | |
| auto_metric | No | ||
| sticky_flow | No | Cookie-pin a returning visitor to the flow and destination they got first (priority flows still win) | |
| site_list_id | No | Site list attached to the campaign | |
| traffic_loss | No | 0–100 % traffic-loss compensation; null = inherit the traffic source | |
| cost_currency | No | Default USD | |
| flow_rotation | No | auto = EPC/CR bandit split of each flow's destinations | |
| network_links | No | Ids of campaigns already running on the campaign's API traffic source, exactly as the network shows them — network actions (start/stop, stats, bids, lists) then act on them. Complete list: replaces the manual links, [] clears them, omit to leave them as they are. A link turns a manual campaign into an api one; removing the last turns it back. Ignored for sources without an API connection. | |
| remember_offer | No | Keep a returning visitor on the offer they first got | |
| auto_min_clicks | No | auto rotation: clicks before exploiting (default 100) | |
| back_button_url | No | Back button target http(s) URL, macros allowed (target = url) | |
| uniqueness_mode | No | ||
| uniqueness_scope | No | ||
| backup_domain_ids | No | Ordered failover pool for automatic domain switching (max 20) | |
| traffic_source_id | No | ||
| uniqueness_period | No | Hours (1–8760, default 24) | |
| back_button_target | No | Back button: where a visitor pressing Back on a served landing / PWA install page is sent; null = off | |
| auto_explore_percent | No | auto rotation: exploration share 0–50 (default 10) | |
| back_button_offer_id | No | Back button target offer (target = offer) | |
| back_button_campaign_id | No | Back button target campaign (target = campaign; not the campaign itself) | |
| sticky_flow_keep_click_id | No | Sticky flow: a return visit resumes the original click id instead of minting a new click | |
| sticky_flow_skip_inactive | No | Sticky flow: route afresh when the sticky flow is paused (default true); false keeps serving it |