Skip to main content

Connect Apple Search Ads

SpendDaddy connects to Apple Ads through Apple's Campaign Management API. The connection lets SpendDaddy import campaigns, ad groups, keywords, and reports, and lets you apply approved optimization actions when the Apple Ads user has write access.

This guide covers the credentials needed by the Add app wizard. You will also need the separate App Store Connect credentials for the complete setup flow.

Before you start

  • Make sure you can sign in to the Apple Ads organization that owns the campaigns.
  • Ask an Apple Ads Account Admin to create or designate an API user if one does not already exist.
  • If possible, have at least one campaign for the app in that organization. SpendDaddy discovers app candidates from campaigns visible to the API user.

What the credentials mean

SpendDaddy fieldDescriptionWhere it comes from
Client IDIdentifies the Apple Ads API client attached to your public key.The Apple Ads API page after you upload and save the public key.
Team IDIdentifies the Apple Ads API team.The same credential block on the Apple Ads API page.
Key IDIdentifies the public key uploaded to Apple Ads.The same credential block on the Apple Ads API page.
Private keyThe private half of the EC key pair that matches the public key uploaded to Apple Ads.The .pem or .p8 file you generate locally.

The Team ID and Key ID requested here are the values shown in Apple Ads, not an App Store Connect issuer ID. The private key is secret and must never be committed to source control or shared in support messages.

The Apple Ads organization ID is not a field in the SpendDaddy wizard. SpendDaddy uses the API user's access list to discover available organizations and campaigns, then shows the app match for you to confirm.

1. Create an Apple Ads API user

An Account Admin should open Apple Ads → Account Settings → User Management and invite or edit a user with an API role. Apple documents the available API roles and access flow in Use the Campaign Management API.

Choose the smallest role that supports the work you want SpendDaddy to do:

  • Use API Account Manager or Limited Access API Read & Write when SpendDaddy should be able to apply approved campaign, bid, or budget changes.
  • Use an API Read Only role only for importing and reviewing data. Setup may validate successfully, but write actions will not be permitted.

The API user must accept the invitation and be able to access the organization and campaigns you want to connect.

2. Generate the key pair

Apple's OAuth implementation guide uses an elliptic-curve P-256 key pair. On macOS, Linux, or another Unix-like system with OpenSSL, run:

openssl ecparam -genkey -name prime256v1 -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem

Keep both files together. You will upload public-key.pem to Apple Ads and upload private-key.pem to SpendDaddy. Do not upload the public key to SpendDaddy in place of the private key.

3. Upload the public key to Apple Ads

  1. Sign in as the API user.
  2. Open Account Settings → API in Apple Ads.
  3. Paste the complete contents of public-key.pem, including the BEGIN and END lines, into Public Key and save it.
  4. Copy the displayed clientId, teamId, and keyId values.

Apple's OAuth guide describes this upload step and the generated identifiers in Implementing OAuth for the Apple Ads API.

You do not need to generate or paste a client secret into SpendDaddy. SpendDaddy uses the private key to create the short-lived OAuth client assertion when it connects to Apple Ads.

4. Add the credentials to SpendDaddy

In SpendDaddy, open Add app and complete the Apple Search Ads card:

  1. Paste the Apple Ads clientId into Client ID.
  2. Paste the Apple Ads teamId into Team ID.
  3. Paste the Apple Ads keyId into Key ID.
  4. Upload the matching private-key.pem file in Private key. The wizard accepts .pem and .p8 files.
  5. Select Store credentials and wait for validation.

After validation, SpendDaddy discovers the organizations and campaigns visible to the API user. Confirm the match for the intended app before creating it. SpendDaddy initially scopes campaigns by the app's App Store ID; you can adjust campaign scope later in Settings.

What success looks like

After the app is created, check that:

  • Apple Search Ads shows as connected in Settings.
  • The intended app and Apple Ads organization were selected during matching.
  • Campaigns appear under Campaigns after the first refresh.
  • Recommendations appear once campaign and revenue data are available.

For API-level details, see Apple's Calling the Apple Ads API guide.

Troubleshooting

Credentials fail during validation

  • Confirm that the public key saved in Apple Ads and the private key uploaded to SpendDaddy were generated as one pair.
  • Copy clientId, teamId, and keyId from the Apple Ads API page exactly.
  • Confirm that the API user accepted the invitation and still has an API role.
  • Make sure you uploaded the private key file, not public-key.pem and not a client secret.

No app or campaigns are discovered

Confirm that the API user can see the Apple Ads organization and that the organization contains a campaign for the intended app. If the API user can access multiple organizations, select the matching app shown by SpendDaddy.

Import works but approved changes fail

The API user probably has a read-only role or lacks write access to the relevant campaign group. Change the Apple Ads API user's role or campaign-group access, then return to Settings and validate the connection again.