Kwern
Connectors

Apple Ads

How to create the Apple Ads API user Kwern needs, what it reads from your campaigns, and how an approved bid change is applied.

What you need

An Apple Ads account where you can add an API user, under Account Settings · API. Apple grants no third-party OAuth here, so the connection is a key pair rather than a login.

Connect it

  1. Open Apple Ads — Kwern reads campaigns through an API user. Apple Ads creates them under Account Settings · API. Open Apple Ads
  2. Generate a key pair — Kwern creates the pair and keeps the private half. You upload the public half in Apple Ads.

    The public key stays valid 60 minutes. Generate it when Apple Ads is open and ready.

    I already have an API user:

    • The private key — Drop the private key that already signs for the API user, or paste it. Nothing is uploaded to Apple, so its other integrations keep working. It is stored encrypted and never shown again.
  3. Create the API user — Add an API user, paste the public key and give it a role that reads and writes campaigns on at least one ad account.
  4. Client ID, Team ID, Key ID — Apple Ads shows the three ids together once the API user exists.
  5. Check — Asking Apple Ads which ad accounts this user can act on…

An account connected from Settings › Accounts is not linked to any product yet: open the product's Apps page to link it.

What Kwern reads

A 30-day report a day: the campaigns in scope with their impressions, taps, spend and installs, their ad groups with status, Search Match and default bid, the keywords of those campaigns with their match type and current bid, the search terms that actually triggered an ad, and the share of impressions on each search term. Impressions, taps, spend and installs accumulate as the connector's series.

One ad account may serve several apps. The report is reduced to the campaigns in scope before anything reads it, so another app's spend never enters a snapshot or a run.

What Kwern can change

Keyword bids, daily budgets, an ad group's default bid, pauses and re-enables, negative keywords and keyword additions, each as a proposal you approve. The agent never creates a campaign, and its instructions keep a bid or a budget move within 20 % of its current value unless it says why.

Campaigns are created from a chat instead: ask the chat to start your campaigns, and it lays out the campaigns from your monthly budget and proposes each one whole, as one proposal. Publishing it creates the campaign, its ad groups, keywords and ad through this connection, and the campaign starts enabled.

Because approving spends money, the scope is checked again at the moment you approve, not only when the draft was written: a campaign outside the scope you set is refused whatever the agent decided. The monthly budget on the agent's page is context for its runs, not a limit Kwern enforces.

The agents that use it

The Apple Ads agent needs it. It is off by default, because turning it on is a decision to let something move live spend.

When it breaks

An API user without a write role reads fine and is refused on a write; the proposal is marked failed with Apple's reason. A revoked key marks the account as needing attention and pauses the agent.

Apple Ads connector · All connectors · Apple Ads agent

On this page