> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.qonversion.io/llms.txt
> Use this file to discover all available pages before exploring further.

# How do I pause campaigns and change bids and budgets for Apple Ads in Qonversion?

> From the Qonversion Apple Ads report you can pause and resume Apple Ads campaigns, ad groups and keywords, change keyword bids and change campaign daily budgets. It requires the Manage Apple Ads campaigns capability and an Apple Ads role that can edit campaigns; amounts use the Apple Ads organization currency, one change cannot raise a value above 3×, and per-project rate limits apply.

You can change Apple Ads campaigns from the Apple Ads report in the Qonversion dashboard: pause and resume campaigns, ad groups and keywords, change keyword bids, and change campaign daily budgets. Every change targets exactly one entity and does exactly one thing. You need the Qonversion capability **Manage Apple Ads campaigns** (account owners and administrators have it through their role) and an Apple Ads connection whose Apple Ads role can edit campaigns. Amounts are entered in the Apple Ads organization's currency, a single change cannot raise a bid or daily budget above 3× the current value, and each Qonversion project is limited to 10 changes per minute and 60 per hour, plus daily limits on changes that can increase spend.

## What can I change at each level?

Campaign management in Qonversion works on three Apple Ads entity levels: campaigns, ad groups and keywords. Every change targets exactly one entity.

| Level | Pause / resume | Bid | Daily budget |
| - | - | - | - |
| Campaign | Yes — **Status** switch | No — campaigns have no bid | Yes — **Daily budget** cell |
| Ad group | Yes — **Status** switch | No — the ad group default bid cannot be changed | No — ad groups have no budget of their own |
| Keyword | Yes — **Status** switch | Yes — **Bid** cell | No — keywords have no budget of their own |

* Campaigns, ad groups and keywords can each be paused and resumed (Apple status `PAUSED` / `ENABLED`).
* Bids can be changed only for keywords. Campaigns have no bid (they have a daily budget), and ad groups support pause and resume only — the ad group default bid cannot be changed from Qonversion.
* Only the daily budget of a campaign can be changed. Ad groups and keywords have no budget of their own; in the **Daily budget** column their cells show a dash with the explanation “Apple Ads sets budgets per campaign — an ad group or keyword has none of its own, it spends the campaign’s.”
* Only the campaign's daily budget is editable; the campaign's lifetime (total) budget cannot be changed from Qonversion.
* Each change does exactly one thing: change the status, change the bid, or change the daily budget.
* Summary rows (**Total**, **Unallocated**) and Apple's Search Match placement rows cannot be changed; Search Match has no id, state or bid in Apple Ads.
* A change can only target a campaign that belongs to the current Qonversion project's Apple Ads data. Any other campaign id is answered with HTTP 404 `campaign_not_found` (“Campaign `<id>` is not attributed to this project. Reload the report — the campaign list comes from it.”).

## Where in the dashboard do I make a change?

All controls are in the Apple Ads report of the Qonversion dashboard.

| Control | Where | What it does |
| - | - | - |
| **Status** switch | **Status** column on the **Campaigns**, **Ad groups** and **Keywords** levels, and the campaign page header | Off pauses, on resumes |
| **Bid** cell | **Bid** column on the **Keywords** level | Opens the keyword bid dialog |
| **Daily budget** cell | **Daily budget** column on the **Campaigns** level, and the campaign page header | Opens the daily budget dialog |
| Bulk bar | Appears when you select rows with checkboxes | **Enable…**, **Pause…**, **Adjust bids…** for many rows |

### How do I pause or resume a campaign, ad group or keyword?

In the report tables (Campaigns, Ad groups, Keywords) and in the campaign page header, the **Status** column shows a switch. Turning it off pauses the entity and turning it on resumes it. A single switch change is sent immediately, without a confirmation dialog.

Next to the **Status** switch the row can show **not delivering** (enabled, but Apple is not serving it) or **Unknown** (Apple reports no state, or a state other than active/paused — the switch is then disabled). Right after resuming, Apple often still reports the entity as not running, so **not delivering** can appear briefly after a successful resume.

### How do I change a keyword bid?

On the **Keywords** level the **Bid** column shows each keyword's current Apple bid. Clicking the amount (pencil icon) opens a dialog titled `Keyword bid — <keyword>` with:

* **Apple’s current bid**;
* a **New bid** field with −/+ steppers of 0.01;
* percent shortcuts −50%, −20%, −10%, +10%, +20%, +50%;
* the buttons **Cancel** and **Save changes**.

The bid dialog states that Apple applies a new bid to future auctions only: spend already in the report does not change, and the bid is a ceiling, not a price.

### How do I change a campaign daily budget?

On the **Campaigns** level the **Daily budget** column (and the campaign page header) shows each campaign's daily budget. Clicking it opens a dialog titled `Daily budget — <campaign>` with **Apple’s current daily budget**, a **New daily budget** field with −/+ steppers of 1.00, and percent shortcuts −50%, −25%, +25%, +50%, +100%.

The **Daily budget** column header explains: “The maximum Apple may spend per day on this campaign; actual spend can be lower”. The budget dialog adds: “This is a daily limit, not a spend forecast — Apple can spend less depending on auction demand.”

### Why is a control disabled?

A change is only possible when the report shows Apple's current value for that row. If the current status, bid or daily budget is not in the report, the matching control is disabled with an explanation, for example “Apple’s current bid for this row is not in this report yet, and a bid cannot be changed without a verified current value.”

## Who can change campaigns?

Two separate checks must both allow the change: the Qonversion capability of the dashboard member, and the Apple Ads role of the Apple Ads user behind the connection.

### Which Qonversion members have the Manage Apple Ads campaigns capability?

Changing campaigns requires the **Manage Apple Ads campaigns** capability. It covers pausing and enabling campaigns, ad groups and keywords and changing daily budgets and bids (it spends the account’s Apple Ads budget); it does not include changing the Apple Ads connection or importing spend history.

Account owners and administrators have **Manage Apple Ads campaigns** through their role; it cannot be switched off for them. Every other role gets it only when an owner or administrator grants it to that person.

### How do I grant the capability to a member?

<Steps>
  <Step title="Open Members">
    An account owner or administrator opens **Members** and edits the member.
  </Step>

  <Step title="Open the Capabilities tab">
    In the edit-member drawer, go to the **Capabilities** tab.
  </Step>

  <Step title="Switch it on and save">
    Switch on **Manage Apple Ads campaigns** and click **Save Changes**. The switch takes effect only after Save Changes.
  </Step>
</Steps>

* The capability can be granted only to an existing member from the edit-member drawer; the invite form has no capabilities.
* Only account owners and administrators can change capabilities, and nobody can change their own.

### What do members without the capability see?

Members without the capability see the **Status**, **Bid** and **Daily budget** values read-only: no switches, edit buttons, row checkboxes or bulk bar are shown. In the dashboard, a change attempted without the capability is refused with HTTP 403 and “Managing Apple Ads campaigns requires the owner or administrator role, or the “Manage Apple Ads campaigns” capability.”

**Manage Apple Ads campaigns** is separate from managing the Apple Ads connection and importing spend history. A member with only this capability can change campaigns but cannot reconnect Apple Ads or import spend; in that case connection problems are shown as “Ask an account owner or administrator to …”.

### Which Apple Ads role does the connection need?

Changes also require that the Apple Ads user behind the connection has a role that can edit campaigns in Apple Ads:

| Can make changes | Cannot make changes |
| - | - |
| Account Admin, Admin, API Account Manager, API Campaign Manager, Campaign Group Manager, Campaign Manager | Read Only, API Read Only, API Account Read Only, Account Read Only, Limited Access variants, and unknown roles |

Campaign management works with either kind of Apple Ads connection (Sign in with Apple or an API key); what decides whether changes are allowed is the Apple Ads role of the connected user, not the connection type.

When the connection's Apple role is read-only, the report shows “Reporting is connected. Campaign management isn't enabled” with “This project’s Apple Ads access is read-only (role: `<role>`). Change the role in Apple Ads, then reconnect with Apple.” A change sent anyway is refused with HTTP 403 `read_only_credential`: “The Apple Ads API user for org `<id>` cannot make changes (role: `<role>`). Change the role in Apple Ads or connect a different key.”

### When does the Apple Ads connection block changes?

Changes cannot be made while the Apple Ads connection is missing, rejected by Apple, expired or revoked, or still being verified. The report explains the state in a banner with an action such as **Connect Apple Ads**, **Reconnect with Apple**, **Fix credentials** or **Review credentials**, and pressing a campaign control in that state opens a dialog that says “No changes were made.”

If Qonversion has not been able to confirm the connection’s Apple permissions for more than 48 hours, changes are refused. In the dashboard the report shows **Apple Ads permissions need to be refreshed** with a **Refresh connection** action. A change sent anyway gets HTTP 503 `permission_data_stale` (“Apple has not confirmed this credential's permissions for more than 48 hours, so a change cannot be authorised right now. Reopen Apple Ads settings to refresh, then try again.”); through MCP the change fails with HTTP 503.

### Which accounts have campaign management?

Campaign management is part of the Apple Ads feature: accounts that have the Apple Ads report also get campaign management, subject to the Manage Apple Ads campaigns capability and the Apple Ads role. There is no separate add-on. Apple Ads is available to accounts with the Apple Ads feature — contact support.

## What amounts can I enter for bids and daily budgets?

| Rule | Details |
| - | - |
| Format | A new bid or daily budget must be a positive amount with a dot as the decimal separator and at most two decimal places (for example 1.20). |
| Zero | Not allowed: “A bid must be greater than zero. To stop spending, pause instead.” |
| Comma as decimal separator | Rejected: “Use a dot for decimals — Apple takes 1.20, not 1,20.” |
| Currency | The Apple Ads account (organization) currency, not converted to USD |
| Same value as now | Cannot be saved |
| Raise in one change | At most 3× the current value; decreases have no size limit |

### Which currency do I use?

Bids and daily budgets are entered and sent in the Apple Ads account (org) currency, not converted to USD — even when the report shows spend in USD or another display currency. A change in any other currency is rejected with `<field>.currency must be <ORG CURRENCY>, the default currency of org <id>.`, and if the org currency is not known yet the change is refused until Apple Ads settings are refreshed.

### Can I save the same amount again?

No. Saving the same amount as the current one is not possible: **Save changes** stays disabled while the field holds the current value (the dialog opens pre-filled with it), and if you type your way back to it the dialog says “That is already the current bid.” or “That is already the current daily budget.”

### How much can I raise a bid or budget in one change?

In the dashboard, one change cannot raise a bid or daily budget to more than 3× the current value shown in the report. Above that, **Save changes** is disabled and the dialog says `We will not send more than <3× amount> — one change cannot raise this to more than 3× the current value.` Raise in steps instead. Decreases have no size limit (the amount must stay above zero). For example, a keyword bid of 0.50 can be raised to at most 1.50 in one change.

The server also refuses a single change that raises a bid or daily budget above 3× the last value Qonversion saw Apple confirm for that entity, with HTTP 422 and the field message “a single change may not raise the bid above 3× the current one (`<amount>`). Raise it in steps.” (or “…the daily budget above…”).

Through MCP and the API, the 3× ceiling is checked against the last amount Qonversion saw Apple confirm. If Qonversion has no confirmed history for the entity, the ceiling is not applied, the change counts as an increase, and the success response includes `baseline_unverified: true`.

## What limits apply to campaign changes?

Limits are counted per Qonversion project, not per user, and are shared by every member and every surface: changes made in the dashboard and through Qonversion’s MCP server (AI agents acting as a dashboard user with the `apple_ads:write` scope) count toward the same limits.

| Limit | Value | What counts | Error code |
| - | - | - | - |
| Per minute | 10 changes per rolling minute | Pauses, resumes, bid and budget changes alike | `per_minute` |
| Per hour | 60 changes per rolling hour | Pauses, resumes, bid and budget changes alike | `per_hour` |
| Enables per day | 20 resumes per rolling 24 hours | Resumes (enables) | `enables_per_day` |
| Bid increases per day | 20 bid increases per rolling 24 hours | Bid increases, and the first bid change on a keyword Qonversion has never changed | `bid_raises_per_day` |
| Daily-budget increases per day | 10 daily-budget increases per rolling 24 hours | Daily-budget increases, and the first budget change on a campaign Qonversion has never changed | `budget_raises_per_day` |

* Each project can make at most 10 changes per rolling minute and 60 per rolling hour, counting pauses, resumes, bid and budget changes alike (only changes that did or may have reached Apple count). Over the limit the change is refused with HTTP 429 and “Too many changes in the last minute (limit 10).” or “Too many changes in the last hour (limit 60).”; the dashboard adds “Try again in a minute.” or “Try again within the hour.”
* Changes that can increase spend have daily limits per project: 20 resumes (enables), 20 bid increases and 10 daily-budget increases in any rolling 24 hours. Over the limit the change is refused with HTTP 429 (for example “Daily limit of 20 enables reached for this project.”), and the dashboard adds “This limit counts changes in the last 24 hours. Each change stops counting 24 hours after it was made.”
* Rate-limit refusals carry error class `rate_limit`, one of the codes above, and a `Retry-After` header equal to the full window length (60, 3600 or 86400 seconds) — an upper bound, not the exact moment the limit frees up.

### Do pauses and decreases count?

Pausing is never subject to the daily limits — only to the 10-per-minute and 60-per-hour limits. Lowering a bid or daily budget is also exempt from the daily limits, except the first change on a keyword or campaign that Qonversion has never changed before, which is counted as an increase.

### Why did lowering a bid count as an increase?

If Qonversion has never successfully changed that keyword or campaign before (no pause, resume, bid or budget change made through Qonversion), the first bid or daily-budget change on it is counted toward the daily increase limit even when it lowers the value. The tooltip of the row’s confirmation note then adds: “Applied, but we had no confirmed previous value for this row — the “before” we sent came from the report, not from a change we had seen Apple confirm.”

### Do failed changes count?

Changes that provably did not happen (refused by Apple, refused before reaching Apple) do not count toward the limits; changes whose outcome is unknown do count.

## What do I see after I make a change?

| State | What the row shows | What to do |
| - | - | - |
| Pending | A spinner and **Pausing…**, **Resuming…**, **Setting bid…** or **Setting daily budget…**; the row's controls are disabled | Wait for Apple to answer |
| Confirmed | The value Apple confirmed and **✓ Paused · just now** (or **Resumed**, **Bid set**, **Daily budget set**) | Nothing; the note disappears by itself |
| Failed | **! Pause failed** (or **Resume failed**, **Set bid failed**, **Set daily budget failed**) | Click it for the reason; **Try again** when offered |
| Outcome unknown | **? Outcome unknown** | Reload the report and check before retrying |
| Value changed | Refusal HTTP 409 `value_changed`, no retry offered | Reload the report and decide against the current value |

**Pending.** While a change is being sent, the row shows a spinner and a progress label such as **Pausing…**, **Resuming…**, **Setting bid…** or **Setting daily budget…**, and the row's controls are disabled until Apple answers.

**Confirmed.** When Apple confirms a change, the row immediately shows the value Apple confirmed and a note **✓ Paused · just now** (or **Resumed**, **Bid set**, **Daily budget set**). The note disappears once the report shows the same value, and clicking it dismisses it.

**Failed.** If Apple or Qonversion refuses a change, the row shows **! Pause failed** (or **Resume failed**, **Set bid failed**, **Set daily budget failed**). Clicking it shows the reason, Apple’s error code as `Apple Ads: <code>` when Apple gave one, what it means (usually “Nothing changed on Apple’s side.”), and the buttons **Dismiss** and, when retrying makes sense, **Try again**.

**Outcome unknown.** If no answer comes back from Apple, the row shows **? Outcome unknown**: the change may or may not have been applied. Reload the report and check before retrying. The **Check and retry** button asks about the same attempt instead of sending a second change, so it cannot double-apply.

**Value changed.** If the entity was changed through Qonversion shortly before (for example by a teammate) and the value you saw is no longer the one Apple confirmed, the change is refused with HTTP 409 `value_changed` (“The status changed since you loaded the report (now …, you saw …). Reload and try again.”) and no retry is offered: reload the report and decide against the current value.

A change never alters historical metrics: spend, installs and revenue already in the report stay as they are.

Each change carries a one-time key, so repeating the same request (double click, network retry) applies it only once and returns the original result. A second identical request while the first is still running gets HTTP 409 `in_progress` (“The same change is already being applied. Wait for it to finish.”).

## What happens to changes made in the Apple Ads console?

Changes made directly in the Apple Ads console are not detected before a change is sent: Qonversion checks the value you saw only against changes it confirmed itself shortly before, so a change from Qonversion overwrites a newer console edit. Before changing an entity in Qonversion that someone may have edited in the Apple Ads console, check its current value in Apple Ads.

## How do bulk actions work?

Rows can be selected with checkboxes, across levels. The bulk bar then shows `<N> selected` with a per-level breakdown (for example “2 campaigns · 3 keywords”) and the buttons **Enable…**, **Pause…**, **Adjust bids…** and ✕ to clear the selection (also Esc).

| Bulk action | Applies to | Confirmation |
| - | - | - |
| **Pause…** | Selected campaigns, ad groups and keywords | Always asks |
| **Enable…** | Selected campaigns, ad groups and keywords | Always asks |
| **Adjust bids…** | Selected keywords with a known bid | Preview dialog |
| Daily budget | Not available in bulk | — |

### Pause and enable

Bulk pause/enable always asks for confirmation. The dialog is titled `Pause <N> entities?` or `Enable <N> entities?`, lists up to 5 names (then `+ <N> more`), explains the effect (“Apple stops serving them until you enable them again.” or “Apple resumes serving them — spend can start again.”) and has **Cancel** and `Pause <N>` or `Enable <N>`.

In a bulk pause or enable, rows already in the requested state are skipped (counted as “skipped”), not re-sent.

### Adjust bids

**Adjust bids…** opens **Adjust keyword bids**: choose −50, −20, −10, +10, +20 or +50 % (default +10 %). Each selected keyword moves by that percent from its own current Apple bid, a preview lists “old → new”, and the button reads `Update <N> bids`. Selected campaigns, ad groups and keywords without a known bid are left unchanged.

### Progress and results

Bulk changes are sent one at a time; the bar shows `Pausing <i> of <N>… one by one, keeping Apple’s rate limits` with a **Stop after current** button, then a result such as `<n> paused · <m> skipped · <k> failed` with **Retry failed**. Each item is still subject to the per-project rate limits (10 changes per minute, 60 per hour, plus the daily increase limits).

### Can I change daily budgets in bulk?

No. There is no bulk daily-budget change; daily budgets are changed one campaign at a time.

## Can I make changes in the demo account?

No. In the read-only demo account changes are never sent: the dashboard shows “Not available in the demo account. This project is a read-only demo, so the change was never sent to Apple — nothing changed.”

## Can I change campaigns through MCP or the REST API?

Campaign changes through the public API are possible only via Qonversion's MCP server acting as a dashboard user with the `apple_ads:write` scope. A project Secret Key alone is refused with HTTP 403 (“Changing Apple Ads campaigns requires the apple\_ads:write scope and an authenticated dashboard user.”), and the user's **Manage Apple Ads campaigns** capability is re-checked on every call. Through MCP, a member without the capability gets HTTP 403 with “This user is not allowed to manage Apple Ads campaigns in this account.”

Through MCP, the same entity levels (keyword bids, campaign daily budgets), the Apple Ads organization currency, the Apple Ads role requirement and the per-project limits apply. In addition:

* Through MCP, every resume and every live bid or daily-budget change is held for human confirmation before it is sent; pauses run without confirmation.
* Every change carries an idempotency key of at most 64 characters. On the REST change endpoint `idempotency_key` is required (in the body or the `Idempotency-Key` header); a request without it is refused with HTTP 422. Through MCP it is optional: when you omit it, the tool generates a new key for each attempt, so to retry a change safely pass your own key and resend the same key. Reusing a key for a different change is refused with HTTP 409 `idempotency_key_reuse`.
* API and MCP callers can send `dry_run: true` to validate a change and see what would be sent without changing anything in Apple Ads; dry runs do not count toward the rate limits.
* Through the public REST API, 4xx refusals (409, 422, 429 with `Retry-After`, 403, 404) are returned verbatim, but any 5xx (outcome unknown, temporarily unavailable, permission data stale) is returned with its status and a generic error body without the dashboard's code and message. Through MCP, the change tools pass on only the error message text of a 4xx refusal, and any 5xx becomes a generic error; see [How do I use Apple Ads through the Qonversion MCP server?](/docs/mcp-apple-ads).

Tool names, parameters and the confirmation flow are documented in [Apple Ads via MCP](/docs/mcp-apple-ads).

## What is not supported?

* Changing the ad group default bid, or a bid on a campaign.
* Changing a budget on an ad group or keyword, or a campaign's lifetime (total) budget.
* Changing anything other than status, keyword bid or campaign daily budget: name, targeting, dates, and creating or deleting campaigns, ad groups or keywords cannot be done from Qonversion.
* Changing summary rows (**Total**, **Unallocated**) or Apple's Search Match placement rows.
* Changing daily budgets in bulk.
* Raising a bid or daily budget above 3× the current value in one change.
* Detecting edits made directly in the Apple Ads console; a change from Qonversion overwrites them.
* Making changes with a project Secret Key over the plain REST API.
* Making changes in the read-only demo account.

## Related pages

* [Apple Ads report](/docs/apple-ads-report) — how to read the Campaigns, Ad groups and Keywords levels where the Status, Bid and Daily budget controls live.
* [Connect Apple Ads](/docs/apple-search-ads) — how to connect Apple Ads with Sign in with Apple or an API key and fix connection problems.
* [Apple Ads via MCP](/docs/mcp-apple-ads) — the MCP tools for pausing, resuming and changing bids and daily budgets, with scopes and the confirmation flow.
* [Apple Ads troubleshooting](/docs/apple-ads-troubleshooting) — fixes for common Apple Ads report and connection problems.
* [Apple Ads REST API](/reference/v4/apple-ads) — the REST API v4 endpoints for the report, series and connection status.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.