Export data from Apple Search Ads

Apple has a reporting API and no export button that lands the numbers where you work. The Hermoso connector pulls the report for you and puts it in a Google Sheet, a Looker Studio dashboard or a JSON file.

Hermoso connects to Apple Search Ads and exposes it as tools your agent can call: Claude, ChatGPT, Cursor, Codex, Cline, the CLI or plain HTTP. apple_ads_report pulls campaign, ad group, ad, keyword and search-term performance, and the rows come back as data rather than a CSV download you then have to carry somewhere.

The Apple Search Ads connector

Apple publishes no OAuth flow for its ads API, so connecting is a key exchange rather than a button: Hermoso generates the signing key, you paste its public half into Apple Ads and paste three ids back. The Apple Search Ads setup guide walks through it, including the Public Key field most people cannot find. One connection then serves the web app, the MCP server, the CLI and the REST API, so the same export works from Claude, ChatGPT or Cursor: connect Apple Search Ads to Claude or to ChatGPT once, then ask.

Reporting is one part of it. The same connection builds and runs the account: campaigns, ad groups, keywords and negatives, budget orders, targeting, keyword suggestions and change history. The Apple Ads channel page lists every tool.

What the report contains

One call, five levels. apple_ads_report reports at campaign, ad group, ad, keyword or search term level, and every row carries the metrics Apple's own dashboard shows: impressions, taps, installs, spend, tap-through rate, cost per tap and cost per acquisition. Ask for totals, or for a series at hourly, daily, weekly or monthly granularity. Rows come back ordered by spend, highest first, up to 5,000 a page, with a grand-totals row on request. App Store reports can also include entities with no delivery, so a paused keyword shows as a zero instead of a missing line.

Two rules Apple enforces, which the tool explains instead of failing quietly: a report below campaign level needs a campaign id (only a campaign-level report can cover the whole account), and search-term reports run in your organisation's own time zone, never UTC. Ads on Apple Maps are covered too: a business-brands report comes from the same tool with one parameter changed.

Connect Apple Search Ads to Google Sheets

This is the one destination Hermoso writes to itself. Connect Google Drive next to Apple Ads (one Google authorisation covers Drive, Sheets and Docs), then ask: "Pull Apple Search Ads performance by keyword for the last 30 days and put it in a new sheet called Apple Ads." The agent calls apple_ads_report, then create_sheet, and hands back the link. Next week, the same request with "append" adds rows with append_to_sheet instead of starting over.

Hermoso asks Google for the drive.file scope, which reaches only the files it created and the ones you pick, never your whole Drive. The full walkthrough, including replacing a tab in place and formatting it, is on Connect Apple Search Ads to Google Sheets.

Export Apple Search Ads to Looker Studio

Hermoso has no native Looker Studio connector, and we would rather say so than imply one. It does not need one: Looker Studio reads Google Sheets with its own built-in connector, so the sheet above is the bridge.

  1. Have the agent write the report into one tab. Daily granularity, one row per keyword per day, a header row and a date column. Ask for the date column to be formatted as a date (format_sheet does it) so Looker Studio reads it as one.
  2. Add the sheet as a data source. In Looker Studio, create a data source, choose Google Sheets, pick the spreadsheet and that tab, and keep "Use first row as headers" on.
  3. Build the report once. Spend by day, cost per acquisition by keyword, installs by campaign: whatever you would otherwise rebuild in a spreadsheet every Monday.
  4. Keep appending. Every week the agent appends new rows to the same tab, and the dashboard picks them up on its next data refresh. Keep the column names the same between runs, because Looker Studio maps fields by header.

The same sheet works for Power BI and Tableau, which both have Google Sheets connectors of their own.

Export Apple Search Ads to JSON

If you want the raw rows rather than a spreadsheet, there are three ways to get them, all using the same connection.

The REST API. Every Hermoso tool is callable at POST /v1/tools/{name} with an API key you create in the app on the MCP & CLI tab. The request body is the tool's arguments, and the reply's data field is the structured result, with the rows in data.rows:

curl -sX POST https://app.hermoso.ai/v1/tools/apple_ads_report \
  -H "Authorization: Bearer hmk_..." -H 'content-type: application/json' \
  -d '{"level":"keyword","campaignId":"1234567890","startTime":"2026-09-01","endTime":"2026-09-07","granularity":"DAILY"}' \
  | jq '.data.rows' > apple-search-ads.json

The CLI. npx -y hermoso call apple_ads_report --json '{...}' --structured prints the same structured result as JSON, ready to redirect into a file or pipe into another script.

Your agent. In any chat, ask for the rows as JSON and you get them in the reply, already shaped the way you asked.

For long reports, limit takes up to 5,000 rows a page and offset moves to the next one; the result's hasMore says whether another page exists. Reading a report does not spend credits. The full API reference is in the developer docs.

Other destinations

"Direct" means Hermoso writes it. Everything else is one step that a tool you already use does itself.

  • Google Sheets, Google Docs, Google Drive, OneDrive: direct.
  • Looker Studio, Power BI, Tableau: through the sheet, each with its own Google Sheets connector.
  • BigQuery: through the sheet, or through your own agent. BigQuery can query a Google Sheet as an external table. If your agent runs somewhere with a BigQuery client and your project credentials, it can insert the rows Hermoso returns straight into a table.
  • Excel: through the sheet or a file. Download the sheet as .xlsx, or have the agent leave a file in Google Drive or OneDrive.
  • PostgreSQL, Redshift, Snowflake or any warehouse: through your own agent or the API. Hermoso hands back JSON; whatever holds your database credentials writes it. Hermoso does not hold warehouse credentials.

Automating the weekly export

The prompt is the automation. Something like "Every Monday, pull last week's Apple Search Ads performance by keyword for every campaign, append it to the Apple Ads sheet, and tell me which keywords moved most on cost per acquisition" is a complete job. Run it on a cadence with the scheduling your client already has (scheduled tasks in Claude or ChatGPT, or a cron job calling the Hermoso CLI or the API) and the sheet, and every dashboard reading it, stays current.

Because the same connection also edits the account, the report and the fix live in one place: the agent that spots a keyword's cost per acquisition doubling can pause it or add a negative in the same conversation.

Frequently asked questions

How do I export data from Apple Search Ads?

Connect Apple Ads to Hermoso once, then ask your agent for the report you want, for example keyword performance for last week. The apple_ads_report tool pulls it from Apple's reporting API and the agent writes it to a Google Sheet, hands you JSON, or both.

Can I connect Apple Search Ads to Google Sheets?

Yes. Connect Apple Ads and Google Drive in Hermoso, then ask the agent to put the report in a sheet. It creates the sheet with create_sheet, or adds rows to an existing one with append_to_sheet, and can repeat that every week.

Can I export Apple Search Ads to Looker Studio?

Yes, through Google Sheets. Hermoso has no native Looker Studio connector. The agent writes the report into a sheet, you add that sheet as a Google Sheets data source in Looker Studio once, and every append shows up on the dashboard's next refresh.

How do I export Apple Search Ads data to JSON?

Call POST /v1/tools/apple_ads_report on the Hermoso API with an API key and read data.rows from the reply, or run hermoso call apple_ads_report --json '{...}' --structured from the CLI. Both return the same rows as JSON.

Is there an Apple Search Ads reporting API?

Yes, and Hermoso is built on it. apple_ads_report covers campaign, ad group, ad, keyword and search-term performance, and the other Apple Ads tools build and manage the account.

Can I get Apple Search Ads search-term reports?

Yes. Ask for the search-term level and name the campaign. Apple only serves search terms per campaign, in the organisation's own time zone.

How many rows can one report return?

Up to 5,000 a page, ordered by spend from highest to lowest, with a flag telling the agent whether more pages exist. A weekly keyword report for most accounts fits in one page.

Does this cover Ads on Apple Maps?

Yes. Reports for business-brands campaigns come from the same tool with the promoted object type set to Apple Maps instead of the App Store.

Do I need a developer to set this up?

No. Connect Apple Ads once in the app, then ask your agent in plain language: pull last week by keyword and put it in a sheet. The API and CLI are there if you do want to script it.

Start free: 30 credits at signup, and every feature on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.

Start free →   See pricing