Meta Pixel and Conversions API Reference
bighadj22/codflow
Bundles Meta's official Pixel and Conversions API documentation so tracking changes, event deduplication and conversion events are checked against the real spec.
Runs Apple Ads work through the asc CLI, covering auth profiles, ad-account discovery, campaigns, reports and guarded changes, plus the move from API v5 to Platform v1.
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-ads --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/asc-apple-ads .claude/skills/asc-apple-ads && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .claude/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-adsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-ads --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/asc-apple-ads .agents/skills/asc-apple-ads && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .agents/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-ads --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/asc-apple-ads .cursor/skills/asc-apple-ads && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .cursor/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rorkai/app-store-connect-cli-skills.git --path skills/asc-apple-ads--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-ads --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/asc-apple-ads .gemini/skills/asc-apple-ads && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .gemini/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-adsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/asc-apple-ads .github/skills/asc-apple-ads && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .github/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rorkai/app-store-connect-cli-skills asc-apple-ads --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/asc-apple-ads .opencode/skills/asc-apple-ads && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "asc-apple-ads" agent skill from https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-apple-ads into .opencode/skills/asc-apple-ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asc-apple-ads", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
asc-apple-adsRuns Apple Ads work through the asc CLI, covering auth profiles, ad-account discovery, campaigns, reports and guarded changes, plus the move from API v5 to Platform v1.
The skill covers driving Apple Ads from the asc ads commands. It separates two APIs: direct commands use the Apple Ads Platform API v1 with an ad account ID, while the older Campaign Management API v5 commands sit under asc ads v5 with an organization ID, and the skill notes that Apple retires v5 on January 26, 2027. Org IDs and ad account IDs must never be swapped, and each leaf command is checked with --help before a request file is built.
Apple Ads credentials are separate from App Store Connect ones, so the skill sets up profiles with asc ads auth login, or Ads-specific environment variables in CI, and checks them with auth status, discover and doctor. Discovery lists each ad account with its organization and roles, and the agent must not pick the first result automatically; it prints the chosen account before any change. Work starts read-only, and output is lossless JSON that you project with jq.
Read from SKILL.md and the folder at commit 9c7e769. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.ads.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ASC_ADS_PRIVATE_KEYASC_ADS_ACCESS_TOKENASC_ADS_KEY_IDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Apple Ads with the asc CLI loads about 3.3k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,155 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rorkai/app-store-connect-cli-skills at commit 9c7e769, republished under its MIT licence (© rorkai). 1,155 words, ~3,305 tokens.
.claude/skills/asc-apple-ads/SKILL.md (or your agent's skills folder).Run Apple Ads work through asc ads. Apple Ads credentials are separate from App Store Connect credentials; asc auth login does not configure Ads.
asc ads <resource> ... commands use Apple Ads Platform API v1 and an ad account ID.asc ads v5 ... and use an organization ID. Apple retires v5 on January 26, 2027.--help before building a request file. Platform v1 payloads and response envelopes differ from v5; the CLI does not translate them.--file - to read a JSON request body from stdin; the CLI rejects it when stdin is a terminal.jq for projections instead of asking for table or markdown output.Store both contexts when a profile must support v1 and legacy v5:
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" \
--networkFor CI, set Ads-specific variables and bypass the host keychain:
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=1ASC_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:
asc ads auth status --validate --output json
asc ads auth discover --ads-profile "Marketing" --output json
asc ads auth doctor --output jsonDiscovery 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.
Identity and ACL calls need no ad account context:
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 jsonThen prove the selected account with a small app search:
asc ads apps search \
--ads-profile "Marketing" \
--ad-account "987654" \
--query "Example" \
--limit 1 \
--output jsonApp 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:
{
"filters": [
{"field": "campaignId", "operator": "EQUALS", "value": ["campaign-id"]}
],
"pagination": {"offset": 0, "pageSize": 100, "fetchTotalCount": true}
}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 jsonOmitting --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:
asc ads change-history --help
asc ads suggestions --help
asc ads rejection-reasons --help
asc ads reports brands --helpKeyword 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.
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 jsonV1 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:
{
"pagination": {"offset": 0, "pageSize": 20},
"filters": [
{"field": "campaignId", "operator": "EQUALS", "value": ["campaign-id"]}
],
"groupBy": ["countryOrRegion"],
"timeRange": {
"start": "2026-08-01",
"end": "2026-08-14",
"timeZone": "ORTZ",
"granularity": "DAILY"
}
}asc ads reports apps campaigns \
--ads-profile "Marketing" \
--ad-account "987654" \
--file report.json \
--output jsonReport commands do not accept --paginate; change pagination in the body. Inspect the leaf help because report entities accept different groupBy and option values.
Recommendations and suggestions also use endpoint-specific bodies. Applying or dismissing recommendations can change spend and requires --confirm:
asc ads recommendations daily-budgets find --ads-profile "Marketing" --ad-account "987654" --file query.json
asc ads recommendations daily-budgets apply --ads-profile "Marketing" --ad-account "987654" --file recommendations.json --confirmDo not mutate until the user has approved the ad account, resource type, target IDs, and reviewed payload. Keep request JSON in files; never invent fields from a related v5 schema.
Campaign creation may start spending. CampaignCreate requires adAccountId, billingEvent, dailyBudget, name, promotedObjectId, promotedObjectType, and targeting. The CLI sends the file unchanged: --ad-account selects the request context but does not inject adAccountId into the JSON. Start from this paused shape, replace every placeholder with values read from the selected account, and recheck the current Apple v1 schema for any account-specific requirements:
{
"name": "ASC agent validation 2026-08-15T00:00:00Z",
"status": "PAUSED",
"adAccountId": 987654,
"promotedObjectType": "APPSTORE_APP",
"promotedObjectId": "123456789",
"billingEvent": "TAPS",
"dailyBudget": {"value": {"amount": "1", "currency": "USD"}},
"startTime": "2030-01-01T00:00:00.000",
"endTime": "2030-01-02T00:00:00.000",
"targeting": {"countryOrRegion": {"include": ["US"]}},
"bidStrategy": {"bidStrategyType": "MANUAL_CPT", "bidStrategyGoal": "TAP"}
}A payload with explicit top-level "status":"PAUSED" can run without --confirm; an omitted or non-paused status requires it.
asc ads campaigns create --ads-profile "Marketing" --ad-account "987654" --file paused-campaign.json
asc ads campaigns pause --ads-profile "Marketing" --ad-account "987654" --campaign "campaign-id"
asc ads campaigns resume --ads-profile "Marketing" --ad-account "987654" --campaign "campaign-id" --confirmCampaign updates need --confirm when they can change budget, targeting, bids, delivery, dates, or status. A name-only update or a name plus PAUSED status does not. Deletes, bulk creates or updates, recommendation apply or dismiss calls, budget-order writes, and other operationally risky mutations require confirmation before auth or network access.
Ad-group creation and keyword bulk writes are examples of always-confirmed delivery or targeting changes. V1 bulk keyword files use wrapper objects such as KeywordCreateBulkRequest, not the v5 raw-array shape:
asc ads ad-groups create --ads-profile "Marketing" --ad-account "987654" --file ad-group.json --confirm
asc ads targeting-keywords create-bulk --ads-profile "Marketing" --ad-account "987654" --file keywords.json --confirm
asc ads targeting-keywords delete --ads-profile "Marketing" --ad-account "987654" --keyword "keyword-id" --confirmShared budgets use the budget-orders command group. Create, update, and delete are context-free but require confirmation; view and find accept optional ad-account context.
asc ads budget-orders create --ads-profile "Marketing" --file shared-budget.json --confirm
asc ads budget-orders update --ads-profile "Marketing" --budget-order "budget-id" --file update.json --confirm
asc ads budget-orders delete --ads-profile "Marketing" --budget-order "budget-id" --confirmAd-account creation also requires --confirm because its account family cannot change and Apple provides no delete endpoint. An ad-account update containing delegations requires confirmation because it replaces the complete list.
Use the dedicated multipart command for brand assets. Poll until Apple finishes processing:
asc ads assets upload --ads-profile "Marketing" --file ./brand.png --brand "BRAND_ID" --ad-account "987654"
asc ads assets view --ads-profile "Marketing" --asset "ASSET_UUID" --ad-account "987654"Only use an asset when eligibility.status is ELIGIBLE; for LIMITED, inspect allowedGroups. Do not attach PENDING or INELIGIBLE assets.
Use first-class commands for routine work. Raw v1 requests accept only v1/... paths or https://api.ads.apple.com/v1/... URLs:
asc ads api request \
--method POST \
--path v1/campaigns/query \
--ads-profile "Marketing" \
--ad-account "987654" \
--file query.json \
--output jsonUnknown mutations fail closed, and risky known mutations require --confirm. The raw command rejects multipart asset upload; use asc ads assets upload.
Keep legacy calls explicit:
asc ads v5 api request \
--method POST \
--path v5/campaigns/find \
--ads-profile "Marketing" \
--org "123456" \
--file selector.json \
--output jsonKeep existing v5 payloads under asc ads v5 until each script has a reviewed v1 body and response parser. Common moves:
| Deprecated v5 | Platform API v1 |
|---|---|
asc ads v5 campaigns list | asc ads campaigns find |
asc ads v5 apps localized-details | asc ads apps locales find |
asc ads v5 product-pages list | asc ads product-pages find |
asc ads v5 reports campaigns | asc ads reports apps campaigns |
asc ads v5 campaigns pause / resume | asc ads campaigns pause / resume |
| v5 campaign or ad-group negative keywords | asc ads negative-keywords ... with scope in the body |
Seven v5 leaves have no one-command v1 replacement: product-page countries, product-page devices, targeting-keyword bulk delete, both negative-keyword bulk deletes, and impression-share report list and view. Do not pretend that geo search, insights impression-share, or single-resource deletes preserve those contracts.
PAUSED status for disposable campaign tests.asc ads campaigns view --ads-profile "Marketing" --ad-account "987654" --campaign "campaign-id" --output json.asc ads campaigns delete --ads-profile "Marketing" --ad-account "987654" --campaign "campaign-id" --confirm; do not delete a pre-existing parent.campaigns view again. Treat Apple's not-found response as cleanup proof; report any campaign that still exists or could not be removed.© rorkai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/asc-apple-ads of rorkai/app-store-connect-cli-skills.
Open the folder on GitHubat commit 9c7e769
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in rorkai/app-store-connect-cli-skills, which our catalogue first saw on October 7, 2026.
Apple Ads with the asc CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Apple Ads with the asc CLI this skillrorkai/app-store-connect-cli-skills | 1.1k | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Meta Pixel and Conversions API Referencebighadj22/codflow | 354 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Custom Product Pagesappeeky/aso-skills | 2.2k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Paid Ads AuditAgriciDaniel/claude-ads | 9.9k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Meridian Budget Optimizationgoogle/meridian | 1.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Soku CLIAbout-Intelligence/soku-cli | 306 | — | ~2.4k | Automated safety check: Pass | MIT |
bighadj22/codflow
Bundles Meta's official Pixel and Conversions API documentation so tracking changes, event deduplication and conversion events are checked against the real spec.
appeeky/aso-skills
When the user wants to design, deploy, or measure Apple Custom Product Pages (CPP) — the alternate App Store product pages with different screenshots, preview videos, and promo text shown to users…
AgriciDaniel/claude-ads
Runs a source-grounded paid advertising audit across up to 12 ad platforms, with parallel platform workers, deterministic scoring and a versioned JSON bundle.
google/meridian
Reopens a fitted Meridian MMM from a saved file and runs budget allocation scenarios, producing an HTML report and a Python script that repeats the run.
About-Intelligence/soku-cli
Guides an agent through the soku command line tool for ads, GA4 and PostHog data reads, ads writes, SEO hosting, automations, files and skill management.
AgriciDaniel/claude-ads
Audits an Amazon Ads account across Sponsored Products, Brands, Display and DSP, producing evidence-based findings, prioritized recommendations and draft-only changes.
rorkai/app-store-connect-cli-skills
Orchestrates App Store releases with the asc CLI: staging a version, uploading or building, publishing and submitting for review, with dry-run and confirmation gates.
rorkai/app-store-connect-cli-skills
Diagnoses why an App Store version cannot be submitted or is stuck in review, using the asc CLI for validation, repair routing, status checks and retry decisions.
rorkai/app-store-connect-cli-skills
Creates a new App Store Connect app record by driving the New App form through browser automation, for cases where no public API covers app creation.
rorkai/app-store-connect-cli-skills
Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands.
rorkai/app-store-connect-cli-skills
Reconcile App Store Connect subscriptions and in-app purchases with RevenueCat products, entitlements, offerings, and packages using asc and RevenueCat MCP.
rorkai/app-store-connect-cli-skills
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 resources.
Works with
Categories
Runs Apple Ads work through the asc CLI, covering auth profiles, ad-account discovery, campaigns, reports and guarded changes, plus the move from API v5 to Platform v1. The skill covers driving Apple Ads from the asc ads commands. It separates two APIs: direct commands use the Apple Ads Platform API v1 with an ad account ID, while the older Campaign Management API v5 commands sit under asc ads v5 with an organization ID, and the skill notes that Apple retires v5 on January 26, 2027.
Apple Ads with the asc CLI fits situations like: setting up and verifying Apple Ads credentials for the asc CLI; listing ad accounts and pinning the right one before running commands; pulling Apple Ads campaign reports as JSON; migrating scripts from Campaign Management API v5 to Platform API v1.
Run `npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a claude-code`. Or copy the skill folder (skills/asc-apple-ads in rorkai/app-store-connect-cli-skills) into .claude/skills/asc-apple-ads in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a codex`. Or copy the skill folder (skills/asc-apple-ads in rorkai/app-store-connect-cli-skills) into .agents/skills/asc-apple-ads in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rorkai/app-store-connect-cli-skills --skill asc-apple-ads -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/asc-apple-ads, .gemini/skills/asc-apple-ads, .github/skills/asc-apple-ads and .opencode/skills/asc-apple-ads in your project.
Going by SKILL.md and its folder, Apple Ads with the asc CLI needs credentials named ASC_ADS_PRIVATE_KEY, ASC_ADS_ACCESS_TOKEN and ASC_ADS_KEY_ID. Our summary lists: The asc CLI with Apple Ads API credentials (client ID, team ID, key ID and private key); An Apple Ads account; jq for projecting JSON output.
SKILL.md names 1 domain. In commands or code: api.ads.apple.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Apple Ads with the asc CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Apple Ads with the asc CLI: Meta Pixel and Conversions API Reference (bighadj22/codflow, 354 stars), Custom Product Pages (appeeky/aso-skills, 2.2k stars), Paid Ads Audit (AgriciDaniel/claude-ads, 9.9k stars) and Meridian Budget Optimization (google/meridian, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rorkai (a GitHub organization) maintains it in rorkai/app-store-connect-cli-skills, which has 1,064 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 5, 2026.
Source: rorkai/app-store-connect-cli-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.