# Create an affiliate campaign

> Set up a campaign — type, commission, typical plan price, milestone bonuses and translations — then fund and activate it so creators can join and earn.

A campaign is your affiliate program for one app: what creators earn, who may join, and the copy they read before they sign up. An app can run several campaigns, for example an open program and a private one for a few partners. Every new campaign starts as a draft, and goes live when you activate it with a funded wallet.

## Create the campaign

<!-- steps -->

### Open Campaigns → Create Campaign

Select the app in the app switcher, click **Campaigns** in the sidebar, then **Create Campaign**.

### Name and describe it

Enter the **Campaign Name** and a **Description**. Creators read the description on your join page — say what the app does, who it's for and what kind of content works. A public campaign needs a description to be listed in the program directory.

### Pick the campaign type

| Type | Who can join | Join link |
|---|---|---|
| **Public** | Anyone. Listed in the creator marketplace and eligible for the [program directory](#get-listed-in-the-program-directory). | Works |
| **Private** | Anyone who has the link. Not listed anywhere. | Works |
| **Invite Only** | Only creators you invite by email. | Returns "not found" |

You can change the type later in **Campaign Settings**.

### Set the commission

Enter the **Commission Percentage** (default 30, any value from 0 to 100) and choose what it's paid on: **Every payment** (the first one and every renewal while the subscriber stays — the default) or **First purchase only** (one commission per referred user; renewals earn nothing). One-time in-app purchases earn on each purchase under Every payment. A 0% campaign tracks attribution without paying commission, and InfluTo charges no fee on it — useful when you pay a creator outside InfluTo. The maths, the 10% platform fee and the rules for changing the rate later are on [Commissions and fees](https://docs.influ.to/platform/commissions.md).

### Add a typical plan price (optional)

**Typical plan price** and **Billing period** (per week, per month, per year or one-time) power the earnings estimate creators see on your join page. Enter the plan most of your subscribers pick — a $49.99 annual plan is `49.99` per year.

Once the app has at least 10 paid production purchases in the last 180 days, the estimate switches to the plans people actually buy: the period comes from the subscription length and the price from what they paid. The price you entered becomes the fallback. Either way it is display-only and never changes what anyone is paid.

### Add milestone bonuses (optional) and create

Add up to five one-time bonuses (next section), then click **Create Campaign**. The campaign card shows "Draft — not visible to creators yet".

<!-- /steps -->

## Milestone bonuses

A milestone bonus is a one-time reward on top of commission, such as $40 for a creator's first 10 installs. It gives new creators a reason to post early.

| Field | Rule |
|---|---|
| Milestones per campaign | Up to 5 |
| **Metric** | **Installs**, **Trials** or **Paid subscriptions** |
| **Threshold** | 1–100,000 |
| **Bonus amount** | $1–$1,000 |
| **Time limit (days)** | 7–365, counted from when the creator joined the campaign. Empty means no limit. |
| **Max creators** | 1–10,000 creators can earn it. Empty means no cap. Caps your total exposure at max × amount. |
| **Approve automatically** | On: earned bonuses go straight to payout. Off: you review each one. |

How progress is counted:

- **Installs** count only attributed installs from clicks that weren't flagged as suspicious, and never sandbox activity. See [Analytics](https://docs.influ.to/platform/analytics.md).
- **Trials** and **Paid subscriptions** come from verified store purchases.
- Progress adds up across all of a creator's codes in the campaign, and each milestone pays a creator once.

Review earned bonuses on the campaign page under **Bonus awards**: **Approve** or **Void** each one marked "Needs review". Approved bonuses show "Pays next payout" and are paid from your wallet in the next monthly payout run. Bonuses waiting for review or payout block wallet withdrawals.

You can edit milestones later in **Edit Campaign**. Edits don't change bonuses that were already earned.

## Activate, pause and resume

| State | What it means | How to get there |
|---|---|---|
| **Draft** | Not visible to creators. The join page doesn't load and codes don't validate. | Every new campaign |
| **Active** | Creators can join (public and private), codes validate, purchases earn commission. | **Activate Campaign** on the campaign page |
| **Paused** | 72-hour grace period, then new referrals stop earning. | **Pause Campaign**, or automatically when the wallet runs out |
| **Active again** | Back to normal. | **Resume Campaign** — always manual |

**Activating** needs at least $50 in your wallet that isn't reserved for pending commissions. If you're short, the dashboard opens **Fund your creator budget** with an **Add funds** button (the API returns HTTP 402). After you fund the wallet, the Billing page offers **Activate campaign** in one click. See [Wallet and payouts](https://docs.influ.to/platform/wallet.md).

**Pausing** protects creators who are mid-promotion:

- For 72 hours after you pause, purchases by people a creator referred still earn commission. After that, new purchases through the campaign earn nothing.
- Referral links keep sending people to your store listing the whole time, so links already posted never break.
- Codes typed into your app stop validating as soon as the campaign is paused.
- Renewals of subscribers that creators already brought in keep earning at their locked rate.

If your wallet can no longer cover pending commissions, InfluTo pauses your active campaigns the same way. Top up, then resume each campaign yourself.

**Deleting** happens in **Campaign Settings → Danger Zone**. A draft is deleted immediately. Any other campaign must be paused, have no active creators (use **Terminate Partnership** on each), and the last termination must be at least three days old. Historical data is kept.

## Campaign settings

On the campaign page:

- **Campaign Settings** — **Campaign Type**, **Commission Percentage** and **Accepting New Affiliates**. Rate increases apply immediately; decreases are scheduled with 7 days' notice to creators. See [Changing the commission rate](https://docs.influ.to/platform/commissions.md#changing-the-commission-rate).
- **Accepting New Affiliates** — turn it off to stop new sign-ups through the join link and hide the campaign from the marketplace and the directory. Invitations still work, and existing creators are unaffected.
- **Edit Campaign** — name, description, typical plan price, codes per creator (how many referral codes one creator can hold for the app; default 5, up to 100), milestones and translations.

## Tracking campaigns

A tracking campaign holds your own codes — one per Facebook group, social account, landing page or printed QR code — to see which channel brings installs and sales. Its codes:

- count clicks, installs, trials, paid subscriptions and revenue for that channel, like a creator's code;
- pay no commission and no platform fee, and need no wallet balance;
- give the user no referral benefit: InfluTo reports them with `code_kind: "tracking"` (see the [HTTP API](https://docs.influ.to/reference/http-api.md#post-sdkset-referral-code)), so your app can skip referral offers for them;
- can't be joined or given to creators.

Create one with **Create Campaign → Tracking codes**, activate it, then add codes on the campaign page under **Tracking codes** (one per line; 4–20 letters, digits, `_` or `-`; up to 100 at a time). A code that's taken by a creator or a free-access code — or differs only in lookalike characters (`O`/`0`, `I`/`L`/`1`) — is refused with the reason. Share each code's link, `influ.to/{app_slug}/{CODE}`, and add `?s=` per post (`influ.to/{app_slug}/{CODE}?s=post-12`). See the results in **Analytics → By group / tag** with **Code** or **Code → post**.

Agents: `influto_create_campaign` with `code_kind: "tracking"`, then `influto_create_tracking_codes`.

## Localization

Creators see your campaign in their own language. InfluTo supports 11: English, Czech, Russian, Spanish, German, Hungarian, Ukrainian, Portuguese (Brazil), Polish, French and Italian.

- Open **Edit Campaign → Translations**. One button translates the missing languages and updates outdated ones; **Retranslate all** regenerates every language from the current English.
- Translations are stale-aware. Each language remembers the English it was made from. When you edit the English name or description, existing translations are marked outdated — they stay live until you update them. A translation you edit by hand counts as up to date.
- Join links take `?lang=`, for example `https://influ.to/join/{org}/{slug}?lang=cs`. Invitation emails go out in five of these languages; see [Invite creators](https://docs.influ.to/platform/invite-influencers.md).

## Get listed in the program directory

[influ.to/affiliate-programs](https://influ.to/affiliate-programs) is InfluTo's public directory of affiliate programs, which search engines index. A campaign is listed when all of these are true:

- it is **Public** and **Active**,
- it is **Accepting New Affiliates**,
- the app has an icon,
- the campaign has a description.

Each app is listed once. If several campaigns qualify, the directory shows the one with the highest commission, then the most active creators, then the newest. The others stay joinable by link but aren't indexed. Private and invite-only campaigns are never listed, and their join pages are not indexed.

## With an AI agent

| Task | Tool |
|---|---|
| Create a campaign (as a draft) | `influto_create_campaign` |
| Activate or pause | `influto_set_campaign_status` — returns 402 when the wallet is short; `influto_get_wallet_topup_link` gives you the funding link |
| Change name, description, rate, price, milestones, translations | `influto_update_campaign` (`name_i18n`, `description_i18n`, `ugc_ideas_i18n`) |
| Read the campaign, including `pricing` (`source: observed` or `declared`) | `influto_get_campaign` |
| Translate the copy | `influto_localize_campaign` |
| Review bonuses | `influto_list_bonus_awards`, `influto_review_bonus_award` |

Agents follow the same rules as the dashboard, including the 7-day notice for rate decreases. See [Agent tools](https://docs.influ.to/agents/tools.md).

## Next

<!-- cards -->
- [Fund your wallet](https://docs.influ.to/platform/wallet.md) — Top up from $50 and activate the campaign.
- [Invite creators](https://docs.influ.to/platform/invite-influencers.md) — Share the join link or send invitations.
- [Commissions and fees](https://docs.influ.to/platform/commissions.md) — What a purchase costs you and what the creator earns.
<!-- /cards -->
