asc-apple-ads
Use when managing Apple Ads with asc, including OAuth profiles, ad-account discovery, Platform API v1 campaigns and targeting, reports, assets…
Skill by rorkai
Chalk Labs
Need help deploying asc-apple-ads?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rorkai-asc-apple-ads
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, security, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/asc-apple-ads
What's inside
- Skill name
asc-apple-ads- Description
- Use when managing Apple Ads with asc, including OAuth profiles, ad-account discovery, Platform API v1 campaigns and targeting, reports, assets, recommendations, guarded mutations, raw requests, and Campaign Management API v5 migration.
- License
- MIT
- Instructions
- 262 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# asc Apple Ads
Run Apple Ads work through `asc ads`. Apple Ads credentials are separate from App Store Connect credentials; `asc auth login` does not configure Ads.
## Pick the API first
- Direct `asc ads <resource> ...` commands use Apple Ads Platform API v1 and an ad account ID.
- Deprecated Campaign Management API v5 commands live under `asc ads v5 ...` and use an organization ID. Apple retires v5 on January 26, 2027.
- Never substitute an org ID for an ad account ID. The CLI keeps them separate.
- Run the exact leaf command with `--help` before building a request file. Platform v1 payloads and response envelopes differ from v5; the CLI does not translate them.
- For non-interactive pipelines, pass `--file -` to read a JSON request body from stdin; the CLI rejects it when stdin is a terminal.
- Resource, report, upload, and raw commands emit lossless JSON. Use `jq` for projections instead of asking for table or markdown output.
## Authenticate and pin the account
Store both contexts when a profile must support v1 and legacy v5:
```bash
asc ads auth login \
--name "Marketing" \
--client-id "$ASC_ADS_CLIENT_ID" \
--team-id "$ASC_ADS_TEAM_ID" \
--key-id "$ASC_ADS_KEY_ID" \
--private-key "$ASC_ADS_PRIVATE_KEY_PATH" \
--ad-account "987654" \
--org "123456" \
--network
```
For CI, set Ads-specific variables and bypass the host keychain:
```bash
export ASC_ADS_CLIENT_ID="SEARCHADS_CLIENT_ID"
export ASC_ADS_TEAM_ID="SEARCHADS_TEAM_ID"
export ASC_ADS_KEY_ID="KEY_ID"
export ASC_ADS_PRIVATE_KEY_PATH="$HOME/.asc/apple-ads-private-key.pem"
export ASC_ADS_AD_ACCOUNT_ID="987654"
export ASC_ADS_BYPASS_KEYCHAIN=1
```
`ASC_ADS_PRIVATE_KEY` and `ASC_ADS_PRIVATE_KEY_B64` also work. If another trusted process minted a short-lived token, set `ASC_ADS_ACCESS_TOKEN`; scoped v1 calls still need an ad account ID.
Check auth without printing a token:
```bash
asc ads auth status --validate --output json
asc ads auth discover --ads-profile "Marketing" --output json
asc ads auth doctor --output json
```
Discovery calls Platform v1 `GET /v1/me` and `GET /v1/acls`. Compare each ACL's ad-account ID, name, organization ID, and roles; never select the first result automatically. Print the chosen account before any mutation, then pass both `--ads-profile "Marketing"` and `--ad-account "987654"` when more than one profile or account is available.
For named profiles, the profile's `ad_account_id` and `org_id` stand alone; they do not inherit context from another profile or root config. V1 context precedence is `--ad-account`, `ASC_ADS_AD_ACCOUNT_ID`, the selected profile, then profile-less root config. Legacy v5 uses the matching `--org` and `ASC_ADS_ORG_ID` chain.
## Start read-only
Identity and ACL calls need no ad account context:
```bash
asc ads me view --ads-profile "Marketing" --output json
asc ads acls list --ads-profile "Marketing" --output json
asc ads orgs view --ads-profile "Marketing" --org-id "123456" --output json
```
Then prove the selected account with a small app search:
```bash
asc ads apps search \
--ads-profile "Marketing" \
--ad-account "987654" \
--query "Example" \
--limit 1 \
--output json
```
App search requires at least one of `--query`, `--cpids`, or `--return-owned-apps`. Storefronts use comma-separated ISO alpha-2 codes. Add `--paginate` only when every search result is needed.
Use each resource's `find` command for inventory. Most v1 queries put filters, sorting, and pagination in a JSON object. A subordinate-resource filter looks like this:
```json
{
"filters": [
{"field": "campaignId", "operator": "EQUALS", "value": ["campaign-id"]}
],
"pagination": {"offset": 0, "pageSize": 100, "fetchTotalCount": true}
}
```
```bash
asc ads campaigns find --ads-profile "Marketing" --ad-account "987654" --output json
asc ads ad-groups find --ads-profile "Marketing" --ad-account "987654" --file query.json --output json
asc ads ads find --ads-profile "Marketing" --ad-account "987654" --file query.json --output json
```
Omitting `--file` from `campaigns find` requests the default first page. To control or exhaust the result set, use `pagination.offset`, `pageSize`, and `fetchTotalCount` in a query file, read the response pagination, and advance the offset until complete. This command has no `--paginate` flag. Platform filters use the singular `value`; do not copy v5 `Selector` fields such as `conditions` or plural `values`, which current `asc` rejects before auth.
The direct v1 tree also covers ad accounts and advertiser resources; app eligibility, locales, product pages, and rejection reasons; brands, business categories, locations, location groups, creatives, and assets; geographic targeting and shared budgets; reports for apps and brands; insights, suggestions, recommendations, and change history. Discover the exact leaf instead of falling back to raw HTTP:
```bash
asc ads change-history --help
asc ads suggestions --help
asc ads rejection-reasons --help
asc ads reports brands --help
```
Keyword queries need a selector file. Targeting keywords require an `id`, `adGroupId`, or `campaignId` filter. Negative keywords require `id` or `adGroupId`; campaign-level negative keywords combine `campaignId` with an `adGroupId` filter whose operator is `IS_NULL`.
```bash
asc ads targeting-keywords find --ads-profile "Marketing" --ad-account "987654" --file keyword-query.json --output json
asc ads negative-keywords find --ads-profile "Marketing" --ad-account "987654" --file negative-keyword-query.json --output json
```
## Reports and optimization
V1 reports require an endpoint-specific body. Dates live under `timeRange`, page controls use `offset` and `pageSize`, and campaign or ad-group IDs belong in `filters`:
```json
{
"pagination": {"offset": 0, "pageSize": 20},From rorkai/app-store-connect-cli-skills, MIT.
More from rorkai/app-store-connect-cli-skills
- 0.827score
asc-xcode-build
rorkai
Build, archive, export, and manage Xcode version/build numbers with asc, including portable iOS compilation and packaging.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-submission-health
rorkai
Diagnose App Store submission blockers and operate review health with asc, including readiness validation, repair routing, status monitoring, cancellation…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-release-flow
rorkai
Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-metadata-sync
rorkai
Sync, validate, and apply App Store metadata and store assets with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-crash-triage
rorkai
Triage TestFlight crashes, beta feedback, and performance diagnostics using asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-id-resolver
rorkai
Resolve App Store Connect IDs (apps, builds, app and digital-goods versions, groups, testers) from human-friendly names using asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-in-app-events
rorkai
Create and localize App Store in-app events, upload event media, and submit or recover event review submissions with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-shots-pipeline
rorkai
Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-subscription-localization
rorkai
Bulk-localize subscription, subscription-group, and in-app purchase display names across App Store locales using asc, including API 4.4.1 version-scoped v2…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-cli-usage
rorkai
Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery).
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.818score
asc-workflow
rorkai
Define, validate, run, resume, and audit repo-local multi-step automations with current `asc workflow` and `.asc/workflow.json`, including step outputs and…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.778score
asc-aso-audit
rorkai
Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP.
SkillBFreshness: B★ 1.1KClaude Code +9
Signals
- Stars
- 1,100
- Forks
- 67
- Open issues
- 0
- Last commit (this folder)
- Aug 17, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- asccli.sh
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from rorkai
- 0.827score
asc-xcode-build
rorkai
Build, archive, export, and manage Xcode version/build numbers with asc, including portable iOS compilation and packaging.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-submission-health
rorkai
Diagnose App Store submission blockers and operate review health with asc, including readiness validation, repair routing, status monitoring, cancellation…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-release-flow
rorkai
Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-metadata-sync
rorkai
Sync, validate, and apply App Store metadata and store assets with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-shots-pipeline
rorkai
Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-subscription-localization
rorkai
Bulk-localize subscription, subscription-group, and in-app purchase display names across App Store locales using asc, including API 4.4.1 version-scoped v2…
SkillAFreshness: A★ 1.1KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get asc-apple-ads running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
asc-apple-ads skill. Agent Mart. https://agentmart.dev/skills/rorkai-asc-apple-ads (last updated 2026-10-24)