> For the complete documentation index, see [llms.txt](https://docs.sellermagnet.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sellermagnet.com/ppc-management-beta/ppc-manager-overview/ppc-rule-builder.md).

# PPC Rule Builder

{% hint style="info" %}
**Difficulty:** 🔴 Advanced · **Reading time:** \~12 min
{% endhint %}

{% hint style="success" icon="rocket" %}
**Open this page in your dashboard:** [**Go to PPC Rule Builder \[BETA\] →**](https://dashboard.sellermagnet.com/ppc/rules/builder)
{% endhint %}

{% hint style="warning" icon="triangle-exclamation" %}
**BETA:** The PPC Manager is in beta, and the Rule Builder is one of its newest surfaces. A few advanced actions and OR-group logic ship in the interface ahead of the automation worker - the guide flags each one where it applies. Please report anything unexpected at <info@sellermagnet.com>.
{% endhint %}

## 📋 Overview

![SellerMagnet PPC Rule Builder - visual automation canvas screenshot](/files/qRxXq0TrQZnqYyFoz9HX)

The **Rule Builder** is a visual, drag-and-drop canvas for assembling automated bid rules. Instead of filling in a form, you drag **conditions** (ACoS, CTR, spend, clicks, and more) and **actions** (raise or lower bids, pause a keyword, add a negative, send an alert) onto a canvas, wire them together with AND/OR logic, and save.

It is important to understand what the Rule Builder is **not**: it is not a separate automation engine. Under the hood the canvas serialises to the exact same JSON schema used by the [Bid Rules](/ppc-management-beta/ppc-manager-overview/ppc-bid-rules.md) page, and it saves through the same endpoint. A rule you build here shows up in your Bid Rules list, runs on the same schedule, and appears in the same execution history. Think of the Rule Builder as a richer editor over the same rule engine.

**Rule Builder vs the Create Rule modal**

The [Bid Rules](/ppc-management-beta/ppc-manager-overview/ppc-bid-rules.md) page has a simple **Create Rule** modal that is perfect for a single, one-action rule where every condition is joined by AND. The Rule Builder is the power-user surface for the same idea. Use it when you want to:

| You want to...                                                                            | Create Rule modal | Rule Builder        |
| ----------------------------------------------------------------------------------------- | ----------------- | ------------------- |
| Add several AND conditions                                                                | Yes               | Yes                 |
| Group conditions with **OR** logic                                                        | No                | Yes (visual groups) |
| Choose from advanced actions (bid to breakeven, pause campaign, add negative, send alert) | No                | Yes                 |
| Scope by **campaign name pattern** (wildcards)                                            | No                | Yes                 |
| Set a **per-condition lookback window**                                                   | No                | Yes                 |
| **Simulate** the rule against history before saving                                       | No                | Yes (Test Rule)     |
| Review the **last 30 runs** in-panel                                                      | No                | Yes                 |
| Load a ready-made **template**                                                            | No                | Yes                 |

{% hint style="info" icon="lightbulb" %}
**When to use which:** Reach for the modal for quick guardrails like "ACoS > 35% and Clicks > 25, decrease bid 10%." Reach for the Rule Builder when a rule needs OR branches, a non-bid action, pattern scoping, or you want to preview its impact before it goes live.
{% endhint %}

***

## The Canvas at a Glance

The Rule Builder is a three-pane workspace.

| Pane                                  | What it does                                                                                                                                                   |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Building Blocks** (left)            | The palette. Drag Conditions, Logic (AND/OR), and Actions onto the canvas                                                                                      |
| **Canvas** (center)                   | Where the rule takes shape: a **WHEN** section for conditions and a **THEN** section for actions, with the campaign scope card on top                          |
| **Properties / Last 30 runs** (right) | Edit the selected block's settings, or switch tabs to review recent runs. Below it sits the action bar: Schedule, Active toggle, Test Rule, Run Now, Save Rule |

The canvas reads top to bottom like a sentence: **Apply to** (scope) these campaigns, **WHEN** these conditions match, **THEN** do this.

{% hint style="warning" %}
**Amazon Ads connection required.** The Rule Builder needs a connected Amazon Advertising account. If you see a "Connect Your Amazon Advertising Account" banner, connect it in Settings first - otherwise the campaign scope selector and simulation have no data to work with.
{% endhint %}

***

## Building a Rule Step by Step

{% stepper %}
{% step %}

### Step 1: Name the rule

Type a descriptive name in the field at the top of the canvas (it defaults to "Untitled Rule"). A consistent naming style like `[Action]-[Condition]-[Scope]` keeps a long rule list readable, for example `Cut-HighACoS-AllCampaigns`.
{% endstep %}

{% step %}

### Step 2: Set the scope (Apply to)

The scope card sits at the top of the canvas. Choose which campaigns the rule touches:

| Scope mode                | Behaviour                                                                       |
| ------------------------- | ------------------------------------------------------------------------------- |
| **All campaigns**         | The rule evaluates every campaign, including ones you create later              |
| **Specific campaigns**    | Pick campaigns from a multi-select list (hold Ctrl/Cmd to select several)       |
| **Match by name pattern** | Enter a wildcard pattern such as `SP - Auto - *` or `*brand*`. Case-insensitive |
| **Match by tag**          | Coming soon - the option is visible but disabled                                |

{% hint style="danger" %}
**"All campaigns" is future-inclusive.** A rule scoped to All campaigns will also run on any new campaign you launch later. If you only ever want it on today's campaigns, choose Specific campaigns and select them explicitly.
{% endhint %}
{% endstep %}

{% step %}

### Step 3: Drag in conditions (the WHEN block)

From the **Conditions** section of the palette, drag a metric onto the canvas. Available condition metrics:

| Metric          | Unit | Typical use                              |
| --------------- | ---- | ---------------------------------------- |
| **ACoS**        | %    | Cap advertising cost of sale             |
| **CTR**         | %    | Find low-relevance keywords              |
| **CVR**         | %    | Spot strong or weak converters           |
| **Spend**       | €    | Set a spend floor before acting          |
| **Clicks**      | -    | Require enough data to be meaningful     |
| **Impressions** | -    | Gate on visibility volume                |
| **Orders**      | -    | Target zero-order or high-order keywords |
| **Sales**       | €    | Filter by revenue                        |

Each dropped condition starts with a sensible default (for example ACoS defaults to `> 30`). Select the block to open its **Properties** on the right and adjust the **Metric**, **Operator** (`>`, `≥`, `<`, `≤`, `=`), **Value**, and **Lookback (days)** - 7, 14, or 30. The lookback window is per-condition, so one rule can measure ACoS over 14 days while requiring Clicks over 30 days.

{% hint style="info" icon="lightbulb" %}
**Always add a data-volume gate.** Pair any efficiency condition (ACoS, CTR, CVR) with a `Clicks >` or `Spend >` condition so the rule never acts on a keyword with two clicks and a temporarily wild ACoS.
{% endhint %}
{% endstep %}

{% step %}

### Step 4: Add logic - AND vs OR

Conditions inside the same group are joined by **AND** (all must match). AND is the default: simply drop another metric into the same group and it chains automatically with an "AND" divider between blocks.

For **OR** logic, add a second group. Drag the **OR** block from the palette (or click **+ Add OR group**) to create a new group. The canvas shows an **OR** divider between groups, so the rule reads "match group 1 **OR** match group 2." Each group carries its own set of AND conditions.

{% hint style="warning" %}
**OR groups are ahead of the worker.** You can build and save OR groups today, and Test Rule will evaluate them, but until the automation worker update ships, saved rules chain **all** conditions as AND when they actually execute. The Rule Builder shows a reminder toast when you save a multi-group rule. If you need true OR behaviour live right now, split it into two separate single-group rules.
{% endhint %}
{% endstep %}

{% step %}

### Step 5: Drop an action (the THEN block)

From the **Actions** section of the palette, drag an action into the THEN zone. Available actions:

| Action               | Takes a value?            | Availability                                       |
| -------------------- | ------------------------- | -------------------------------------------------- |
| **Change bid by %**  | Yes (e.g. `+10` or `-30`) | Live                                               |
| **Set bid to value** | Yes (e.g. `0.50 €`)       | Live                                               |
| **Pause keyword**    | No                        | Live                                               |
| **Enable keyword**   | No                        | Live                                               |
| **Bid to breakeven** | No                        | Beta - simulates now, executes after worker update |
| **Pause campaign**   | No                        | Beta - simulates now, executes after worker update |
| **Add negative**     | No                        | Beta - simulates now, executes after worker update |
| **Send alert**       | No                        | Beta - simulates now, executes after worker update |

Actions carrying a **Beta** tag ship in the interface ahead of the worker. When you select one, its Properties panel shows the note: "This action ships in the UI but waits on a worker update before applying. Saved rules using it will simulate but not execute until then." They are safe to build and test - they just will not change anything in Amazon yet.

For **Change bid by %**, a positive value raises bids and a negative value lowers them; on save this maps to an Increase or Decrease rule type automatically.
{% endstep %}

{% step %}

### Step 6: Test before you save

Click **Test Rule** in the action bar. The builder evaluates your conditions against the **last 30 days** of data and returns a plain-language summary, for example: how many times per day the rule would have fired, how many keywords and campaigns would have matched, an estimated monthly spend and sales impact, and up to five sample matched keywords. Treat the impact numbers as directional estimates from recent performance, not guarantees.
{% endstep %}

{% step %}

### Step 7: Schedule, activate, and save

In the action bar:

* **Schedule:** Daily, Hourly, or Weekly.
* **Active:** leave the toggle on to deploy the rule live, or turn it off to save a draft that does not run.
* Click **Save Rule.** The rule is written through the standard Bid Rules endpoint and now appears on the [Bid Rules](/ppc-management-beta/ppc-manager-overview/ppc-bid-rules.md) page.

**Run Now** applies a saved rule once, on demand. You must save the rule first - Run Now targets the saved rule, so it prompts you to save if you have not yet.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Load Template to start fast.** The **Load Template** menu (top right) drops a fully wired starter rule onto the canvas - such as pausing low-CTR keywords, boosting strong converters, cutting wasteful spend, or auto-negating ACoS bombs. Load one, then tweak the thresholds to fit your account before saving.
{% endhint %}

***

## How the Canvas Maps to the Bid Rules Engine

When you save, the Rule Builder flattens the visual canvas into the same JSON structure the Bid Rules engine reads:

* Every condition block becomes a `{metric, operator, value, lookback_days}` entry - identical to a modal condition row.
* The first action block becomes the rule's primary action. A **Change bid by %** action resolves to an Increase Bid or Decrease Bid rule type based on the sign of the value.
* Your scope choice becomes the campaign filter (a specific-campaign list, a name pattern, or all campaigns).
* The visual layout is stored alongside the rule so the canvas can be reconstructed.

Because the output schema and save endpoint are shared, everything you already know about Bid Rules still applies: the same daily/weekly cadence semantics, the same execution log, and the same Approval Center review flow if you run in manual-review mode. The Rule Builder is a friendlier way to author the rule, not a different thing to manage.

***

## Worked Example: Stop Wasteful Keywords, Visually

Let's build a "pause the money drains" rule end to end.

**Goal:** Pause any keyword that has spent real money without converting, but only on the auto campaigns.

{% stepper %}
{% step %}

### Name and scope

* **Name:** `Pause-NoSales-AutoCampaigns`
* **Scope:** choose **Match by name pattern** and enter `* Auto *` so the rule only touches your auto-targeting campaigns.
  {% endstep %}

{% step %}

### WHEN conditions (all AND)

Drag three conditions into one group so they chain with AND:

| Condition  | Operator | Value  | Lookback |
| ---------- | -------- | ------ | -------- |
| **Orders** | `=`      | `0`    | 14 days  |
| **Clicks** | `>`      | `20`   | 14 days  |
| **Spend**  | `>`      | `15 €` | 14 days  |

The `Clicks > 20` and `Spend > 15` gates ensure the rule only fires on keywords with meaningful, statistically reliable data - not a keyword that has had three clicks.
{% endstep %}

{% step %}

### THEN action

Drag **Pause keyword** into the THEN zone. It takes no value.
{% endstep %}

{% step %}

### Test, then deploy

Click **Test Rule.** Suppose it reports it would have matched 12 keywords across 4 campaigns and lists the worst offenders. That looks right, so set **Schedule** to Daily, leave **Active** on, and click **Save Rule.** The rule now runs daily and shows up in your Bid Rules list, where you can review its execution log a week later.
{% endstep %}
{% endstepper %}

> **Recovery plan:** Review paused keywords monthly. Some fail because of a listing problem (out of stock, weak images) rather than being bad keywords. Fix the root cause and re-enable them.

***

<details>

<summary><strong>⚠️ Common Mistakes to Avoid</strong></summary>

{% hint style="danger" %}

* **No data-volume gate.** A rule of "ACoS > 40%, lower bid" with no click or spend condition will fire on keywords with almost no data. **Fix:** always add `Clicks > 20` or `Spend > 10 €` in the same group.
* **Expecting OR to run live today.** Two groups joined by OR will simulate correctly, but until the worker update, execution treats every condition as AND. **Fix:** for true OR behaviour right now, save two separate single-group rules instead.
* **Saving a Beta action and expecting Amazon changes.** Bid to breakeven, pause campaign, add negative, and send alert are Beta - they simulate but do not execute yet. **Fix:** for live automation today, use Change bid by %, Set bid to value, Pause keyword, or Enable keyword.
* **Percentage changes too aggressive on a daily schedule.** A daily `-30%` bid change collapses a 1.00 € bid to about 0.08 € in a week. **Fix:** keep daily percentage changes modest (roughly 5-15%) and reserve larger swings for weekly schedules.
  {% endhint %}

{% hint style="warning" %}

* **Forgetting to save before Run Now.** Run Now acts on the saved rule. If you have not saved, it will ask you to. **Fix:** click Save Rule first, then Run Now.
* **Scoping to All campaigns by accident.** All campaigns includes future campaigns too. **Fix:** use Specific campaigns or a Name pattern when you want a bounded scope.
  {% endhint %}

</details>

## ✅ Best Practices

* **Simulate every rule before saving.** Test Rule against 30 days of history is the cheapest way to catch a rule that would match far too many (or zero) keywords.
* **One clear job per rule.** A rule that both cuts waste and scales winners tends to fight itself. Build focused rules and let them run side by side.
* **Gate on volume, then on efficiency.** Put a Clicks or Spend condition alongside every ACoS/CTR/CVR condition so thin data cannot trigger action.
* **Start from a template.** Load Template gives you a sane baseline; adjust the thresholds to your margins rather than starting from a blank canvas.
* **Keep names descriptive.** `[Action]-[Condition]-[Scope]` makes a growing rule list self-documenting.
* **Draft with Active off.** Save promising ideas with the Active toggle off, test them over a few days, then flip them live.

***

## 🔧 Troubleshooting

### The canvas is empty and I cannot drag anything

| Check                                 | Solution                                                                                                   |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Is your Amazon Ads account connected? | Look for the connect banner at the top. Connect in Settings first                                          |
| Did you drag onto a drop zone?        | Drop conditions in the WHEN zone and actions in the THEN zone; the target highlights when you drag over it |

### Test Rule returns zero matches

| Check                                    | Solution                                                                                 |
| ---------------------------------------- | ---------------------------------------------------------------------------------------- |
| Are the thresholds too strict?           | Loosen one condition (e.g. lower a Spend floor) and test again                           |
| Enough data in the lookback window?      | Widen the per-condition lookback to 30 days                                              |
| Does the scope actually match campaigns? | Check your name pattern - it is case-insensitive but must still match the campaign names |

### I saved a rule but nothing changed in Amazon

| Check                                        | Solution                                                                                                          |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Is the action a Beta (worker-parity) action? | Bid to breakeven, pause campaign, add negative, and send alert simulate but do not execute yet. Use a live action |
| Did you build OR groups?                     | Multi-group OR logic executes as AND until the worker update. Split into separate rules if needed                 |
| Is the Active toggle on?                     | A rule saved with Active off is a draft and does not run                                                          |
| Has the schedule elapsed?                    | A daily rule runs once per day; a weekly rule once per week. Use Run Now to apply immediately                     |

### Run Now does nothing

Run Now targets a saved rule. Save the rule first, then click Run Now.

***

## ❓ FAQ

<details>

<summary><strong>Is a rule I build here the same as a Bid Rule?</strong></summary>

Yes. The Rule Builder saves through the same endpoint and schema as the Create Rule modal on the [Bid Rules](/ppc-management-beta/ppc-manager-overview/ppc-bid-rules.md) page. Your rule appears in that list and runs on the same engine. The builder is just a richer way to author it.

</details>

<details>

<summary><strong>Can I edit a rule I made in the modal using the Rule Builder?</strong></summary>

Both surfaces write to the same rule store, so rules live in one place on the Bid Rules page. The Rule Builder is best for authoring new rules visually and for rules that need OR groups, advanced actions, pattern scoping, or simulation.

</details>

<details>

<summary><strong>Why can I select an OR action but the guide says it runs as AND?</strong></summary>

OR grouping is built into the interface and the simulator ahead of the automation worker. Until the worker update ships, a saved multi-group rule chains all conditions as AND when it actually executes. The builder reminds you with a toast when you save one.

</details>

<details>

<summary><strong>What is the difference between Test Rule and Run Now?</strong></summary>

Test Rule is a dry run: it evaluates your rule against the last 30 days of data and shows what would have matched, without changing anything. Run Now executes a saved rule once, for real, on demand.

</details>

<details>

<summary><strong>What does the lookback window do?</strong></summary>

It sets how many past days each condition measures - 7, 14, or 30. It is per-condition, so one rule can require ACoS over 14 days and Clicks over 30 days at the same time.

</details>

<details>

<summary><strong>Where do I review what a rule actually did?</strong></summary>

Switch the right pane to the **Last 30 runs** tab to see recent executions (started time, entities matched, entities changed, and status) once the rule is saved. For full history, open the rule on the Bid Rules page and check its execution log.

</details>

***

## ➡️ What's Next?

{% content-ref url="/pages/AgCa0wMskRJ5quPLWZtg" %}
[PPC Bid Rules](/ppc-management-beta/ppc-manager-overview/ppc-bid-rules.md)
{% endcontent-ref %}

{% content-ref url="/pages/xUaJFWbcCTCya95L64xQ" %}
[PPC Approval Center](/ppc-management-beta/ppc-manager-overview/ppc-approval-center.md)
{% endcontent-ref %}
