Skip to content

v0.3.0 — Full Apple Search Ads v5 surface + AI negatives

Latest

Choose a tag to compare

@SamPetherbridge SamPetherbridge released this 09 Jun 04:17
d2e625b

Built on asa-api-client 0.2.1 (full Apple Search Ads API v5 coverage). This release adds AI-assisted optimization and surfaces the complete reachable v5 resource set as CLI commands.

✨ New features

AI-powered optimization

  • asa optimize negatives — pull search-term reports across campaigns, classify relevance with an AI model (Anthropic or Gemini via PydanticAI), and optionally apply suggestions as campaign-level negative keywords. Supports filtering, CSV export, and --dry-run.

New v5 lookup & reference commands

  • asa apps search — find advertisable apps and their adamId
  • asa geo search — find geo locations for targeting
  • asa countries list — supported countries and ad languages

Creative & catalog commands

  • asa ads list/get/create/update/delete — view and manage ads (creatives) within ad groups
  • asa product-pages list/get/locales — custom product pages (CPP) and their per-locale details

Account & billing commands

  • asa budget-orders list/get — view budget orders
  • asa auth orgs — list organizations your credentials can access

🐛 Fixes

  • asa --version now derives both the CLI and asa-api-client versions from package metadata, so it stays accurate without manual updates.
  • Adapted report metric fields to the v5 API (installstap_installs, conversion_ratetap_install_rate, avg_cpatotal_avg_cpi).

⬆️ Dependencies

  • Adopted asa-api-client 0.2.1 (from 0.1.6).
  • Upgraded pydantic-ai to 1.99 and refreshed transitive dependencies (aiohttp, cryptography, urllib3, requests, authlib, pyjwt, idna, and others).

Notes

  • Ad creation validates the creative-type/product-page pairing client-side; CREATIVE_SET is not yet supported (asset selection). Use --dry-run to preview create payloads.
  • The generic Custom Reports endpoint is intentionally not surfaced — Apple disabled GET /custom-reports (403) in March 2026 in favour of Insights; the impression-share POST/poll flow remains available via asa impression-share.

Full changelog: v0.2.0...v0.3.0