> For the complete documentation index, see [llms.txt](https://docs.amply.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.amply.tools/user-guide/creating-a-campaign.md).

# Creating a campaign

How to build and ship a campaign from scratch, using the multi-step form in the dashboard. No code required.

**Use this when** you want to send users to a specific URL, ask them to rate the app, or (soon) block a flow — based on their behavior. **Don't use this when** you're debugging event delivery or auditing past campaigns — use the [events screen](/user-guide/sessions-and-events.md) and the campaign list instead.

**The faster path:** with [AI-assisted integration](/getting-started/ai-assisted-integration.md) set up, describe the campaign to your AI assistant in plain language and review the draft it builds — no form-filling. This page is the manual path.

## Before you start

You'll need:

* A project with at least one application already added
* An event name in mind for the trigger (for example, `OnboardingCompleted`, `PaywallViewed`) — either a standard SDK event or a custom event your app already sends
* For Deep Link campaigns: the destination URL

If the triggering event isn't arriving yet, open the [Events](/user-guide/sessions-and-events.md) screen first and confirm it's listed for at least one platform. A campaign that listens for an event that never fires will simply never fire.

## Step-by-step

{% stepper %}
{% step %}

### Open the campaign list

From the project, open **Campaigns**. You'll see tabs for **All**, **Draft**, **Active**, and **Cancel**. Click **New campaign** in the top right.
{% endstep %}

{% step %}

### Name it and pick a type

Enter a **Campaign name** — something a teammate will recognize in the list a month from now (for example, `Trial ended — reactivation deep link`).

Pick a campaign type:

* **Rate & Review** — prompts the user to rate your app using the platform's native review dialog
* **Deep Link** — opens a URL in your app or in the browser
* **Blocking** — labelled **Soon**; not yet available

The type decides what later steps you'll see. Deep Link adds a **What** step for the URL. Rate & Review does not.
{% endstep %}

{% step %}

### Who — define the audience

Start with **All users**. Narrow it down by clicking **Add rule** and picking a condition. Available conditions:

* **Countries** — include or exclude a list of countries
* **OS Version** — match on operating system version
* **App Version** — match on the app version currently installed
* **App Install Version** — match on the app version the user originally installed
* **Applications** — include or exclude specific applications in the project
* **Custom Property** — match on a property you set via the SDK (string, number, boolean, or datetime)
* **Install Date** — match on when the user first installed the app, as an absolute date or relative ("less than 7 days ago")

Rules combine with **And** — all of them must match. See [Targeting an audience](/user-guide/targeting-an-audience.md) for patterns and examples.

Click **Continue** when the audience looks right.
{% endstep %}

{% step %}

### When — pick a trigger event and frequency

Under **Triggering Event**, choose the event the campaign listens for. The dropdown suggests event names the SDK has already seen in this project.

Optionally narrow the trigger further by adding **event parameters** — for example, only trigger when `screen_name` equals `paywall`. Parameters support string, number, and boolean comparisons.

Under **Repeat Rules**, choose how often the campaign is allowed to fire for a single user:

* **every** N occurrences of the event, **globally** or **in session**
* **on** specific occurrences (1st, 3rd, etc.)

Under **Frequency Limits**, cap how often the campaign can fire overall per session or per device, optionally over a time window (seconds, minutes, hours, or days).

Click **Continue**.
{% endstep %}

{% step %}

### What — set the content (Deep Link only)

If you picked **Deep Link**, enter the **DeepLink** URL the campaign should open when it fires. This can be:

* A regular `https://` link to open in the browser or in-app browser
* A custom scheme (for example, `yourapp://promo/spring`) your app already handles

For **Rate & Review**, there's nothing to configure — the platform's native review prompt is shown.

Click **Finish** to save the campaign.
{% endstep %}

{% step %}

### Activate it

A new campaign saves as **Draft**. From the campaign list or the campaign's detail screen, change its state to **Active**. Only Active campaigns evaluate against live traffic.

To pause a campaign, switch its state to **Cancel**. It stops firing immediately for new events.
{% endstep %}
{% endstepper %}

## After you ship

Spot-check the campaign in the first hour:

* Open the campaign from the list and check that the state is **Active**
* On a test device, reproduce the triggering event and confirm the deep link opens or the review prompt appears
* In [Events](/user-guide/sessions-and-events.md), confirm the triggering event is arriving from real devices — not just your test

How the app actually receives the deep link depends on the SDK integration. See the developer-guide pages for platform-specific listener setup: [Android](/developer-guide/android-integration.md), [iOS](/developer-guide/ios-integration.md).

## Common mistakes

* **Campaign saved as Draft and forgotten.** Draft campaigns don't fire. Flip to Active.
* **Triggering event name typo.** Pick from the dropdown whenever possible. If you type a name by hand, copy-paste from the event catalog.
* **Audience too narrow.** If nothing fires for a day, loosen the rules and re-test.
* **Rate & Review in a debug build.** On Android, the Play Store review prompt only appears in release builds distributed through Play. Debug shows a simulated dialog.

## Related

* [Targeting an audience](/user-guide/targeting-an-audience.md) — patterns for the Who step
* [Campaigns](/user-guide/campaigns.md) — campaign types and the options each one supports
* [Sessions and events](/user-guide/sessions-and-events.md) — confirm your trigger event is arriving
* [Campaign delivery](/concepts/campaign-delivery.md) — how a campaign evaluates against an event
