Skip to main content
POST
Change an Apple Ads campaign, ad group or keyword

Authorizations

Authorization
string
header
required

Bearer authentication using the project Secret Key (prefixed with sk_), used exactly as shown in the dashboard. Endpoints that support sandbox data take an explicit environment field or parameter. All v4 public endpoints require the Secret Key — see Authentication. Never expose the Secret Key in client-side code.

X-Qonversion-Actor-Assertion
string
header
required

Authorization supplied by Qonversion MCP, naming the acting dashboard user and granted scopes. Required together with secretAuth for campaign management. Direct HTTP clients cannot supply this authorization.

Headers

Idempotency-Key
string

Alternative to the body field. Copied into idempotency_key when the body omits it.

Maximum string length: 64

Body

application/json

Exactly ONE of status, bid, daily_budget, and the matching before_* value, which is mandatory.

level
enum<string>
required

Which entity is being changed. Ids below the level are ignored.

Available options:
campaign,
ad_group,
keyword
campaign_id
string
required

Apple campaign id. A STRING: Apple ids are int64.

idempotency_key
string
required

Required. Reuse for the same attempt. A different body with the same key returns 409.

Maximum string length: 64
ad_group_id
string

Required for ad_group and keyword levels.

keyword_id
string

Required for the keyword level.

keyword_text
string

Required for the keyword level — Apple wants the keyword identity echoed back.

keyword_match_type
string

Required for the keyword level (e.g. EXACT, BROAD).

org_id
string

Optional. The organization is DERIVED server-side from the campaign; a value that disagrees with the resolved one is rejected rather than silently overriding it.

status
enum<string>

New status. ACTIVE is accepted as the keyword-level spelling of ENABLED.

Available options:
ENABLED,
PAUSED,
ACTIVE
before_status
string

Required with status. The status you believe is current — a mismatch is a 409.

bid
string

New bid, a decimal STRING in the advertising account's currency (never converted). Ad group and keyword levels.

before_bid
string

Required with bid. Also bounds the change: a bid more than three times the current confirmed one is refused. When there is no confirmed history the ceiling cannot be applied and the response says so with baseline_unverified.

daily_budget
string

New campaign daily budget, a decimal STRING in the advertising account's currency.

before_daily_budget
string

Required with daily_budget.

dry_run
boolean

Simulate only. Nothing is sent to Apple and the response carries would_send.

Response

The change was accepted by Apple, or simulated when dry_run was set.

confirmed
boolean
required

Apple confirmed the new value. false together with applied means the change was accepted but not yet reflected back.

applied
boolean
required

The change was submitted to Apple.

dry_run
boolean
required

True when nothing was sent.

action_id
string
required

Identifier of this change; include it when contacting support.

baseline_unverified
boolean

Present and true when there was no confirmed bid history for this entity, so the ×3 ceiling could NOT be applied and the change was counted as a raise. Treat it as a prompt for explicit human confirmation: it is the one signal that the server could not check the size of what it was about to do.

would_send
object

Dry runs only — the exact payload Apple would have received.