Pull unrecognized host app bundle IDs from Google Analytics via gog, diff them against the mapping tables and add URL scheme mappings
日本語の概要は準備中です。原文の説明を表示しています。
Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc metadata pull`.
日本語の概要は準備中です。原文の説明を表示しています。
実行スコア 未検証
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Run a two-phase ASO audit: offline checks against local metadata files, then keyword gap analysis via Astro MCP.
asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata".asc migrate export or asc localizations download, normalize it into the canonical ./metadata layout before running this skill.references/aso_rules.md to understand the rules each check enforces.metadata/version/ (highest semantic version number). Use this for all version-level fields.en-US unless the user specifies otherwise.subtitle): metadata/app-info/{locale}.jsonkeywords, description, whatsNew): metadata/version/{latest-version}/{locale}.jsonname is missing from the app-info JSON, fetch it via asc apps info list or ask the user. Do not flag it as a missing-field error.Run these 5 checks against the local metadata directory. No network calls required.
Tokenize the subtitle field (and name if available). Flag any token that also appears in the keywords field — it is already indexed and wastes keyword budget.
Severity: ⚠️ Warning
Example: "quran" appears in subtitle AND keywords — remove from keywords to free 6 characters
How to check:
metadata/app-info/{locale}.json for subtitle (and name if present)metadata/version/{latest-version}/{locale}.json for keywords、 , , or iterate characters — each character or character-group is a token. Whitespace tokenization does not work for CJK.Flag fields using less than their recommended minimum:
| Field | Minimum | Limit | Rationale |
|---|---|---|---|
| Keywords | 90 chars | 100 | 90%+ usage maximizes indexing |
| Subtitle | 20 chars | 30 | 65%+ usage recommended |
Severity: ⚠️ Warning
Example: keywords is 62/100 characters (62%) — 38 characters of indexing opportunity unused
Flag empty or missing required fields: subtitle, keywords, description, whatsNew.
Note: name may not be in the export — only flag it if the app-info JSON explicitly contains a name key with an empty value.
Severity: ❌ Error
Example: subtitle is empty for locale en-US
Check the keywords field for formatting issues:
quran, recitation)quran;recitation)quran|recitation)Severity: ❌ Error
Example: keywords contain spaces after commas — wastes 3 characters
Compare keywords fields across all available locales. Flag locales where keywords are identical to the primary locale (en-US by default) — this usually means they were not localized.
Severity: ⚠️ Warning
Example: ar keywords identical to en-US — likely not localized for Arabic market
How to check:
Check whether keywords appear naturally in the description field. While Apple does not index descriptions for search, users who see their search terms reflected in the description are more likely to download — this improves conversion rate, which indirectly boosts rankings.
Severity: 💡 Info
Example: 3 of 16 keywords not found in description: namaz, tarteel, adhan
How to check:
keywords and description for each localeIf Astro MCP is available and the app is tracked, run keyword gap analysis. Run this per store/locale, not just for the US store — keyword popularity varies dramatically across markets.
Get current keywords: Call get_app_keywords with the app ID to retrieve tracked keywords and their current rankings.
Ensure multi-store tracking: For each locale with a corresponding App Store territory (e.g., ar-SA → Saudi Arabia, fr-FR → France, tr → Turkey), use add_keywords to add keyword tracking in that store. Without this, search_rankings returns empty for non-US stores.
Extract competitor keywords: Call extract_competitors_keywords with 3-5 top competitor app IDs to find keyword gaps. This is the highest-value Astro tool — it reveals keywords competitors rank for that you don't. Run this per store when possible.
Get suggestions: Call get_keyword_suggestions with the app ID for additional recommendations based on category analysis.
Check current rankings: Call search_rankings to see where the app currently ranks for tracked keywords in each store.
Diff against metadata: Compare suggested and competitor keywords against the tokens present in subtitle, name (if available), and keywords fields from the local metadata.
Surface gaps: Report all gaps ranked by popularity score (highest first). Include the source (competitor analysis vs. suggestion).
When recommending keyword additions, consider how single words combine across indexed fields (title + subtitle + keywords). For example:
Flag high-value combos in recommendations.
mcp__astro__add_app for gap analysis"add_keywords before queryingPresent results as a single audit report. The report covers only the latest version directory.
### ASO Audit Report
**App:** [name] | **Primary Locale:** [locale]
**Metadata source:** [path including version number]
#### Field Utilization
| Field | Value | Length | Limit | Usage |
|-------|-------|--------|-------|-------|
| Name | ... | X | 30 | X% |
| Subtitle | ... | X | 30 | X% |
| Keywords | ... | X | 100 | X% |
| Promotional Text | ... | X | 170 | X% |
| Description | (first 50 chars)... | X | 4000 | X% |
#### Offline Checks
| # | Check | Severity | Field | Locale | Detail |
|---|-------|----------|-------|--------|--------|
| 1 | Keyword waste | ⚠️ | keywords | en-US | "quran" duplicated in subtitle |
**Summary:** X errors, Y warnings across Z locales
#### Keyword Gap Analysis (Astro MCP)
| Keyword | Popularity | In Metadata? | Suggested Action |
|---------|-----------|--------------|-----------------|
| quran recitation | 72 | ❌ | Add to keywords |
#### Recommendations
1. [Highest priority action — errors first]
2. [Next priority — keyword waste]
3. [Utilization improvements]
4. [Keyword gap opportunities]
asc metadata pull to ensure canonical metadata files are current.asc metadata keywords diff --app "APP_ID" --version "1.2.3" --dir "./metadata"asc metadata keywords apply --app "APP_ID" --version "1.2.3" --dir "./metadata" --confirmasc metadata keywords sync --app "APP_ID" --version "1.2.3" --dir "./metadata" --input "./keywords.csv" when importing external keyword researchまだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Pull unrecognized host app bundle IDs from Google Analytics via gog, diff them against the mapping tables and add URL scheme mappings
日本語の概要は準備中です。原文の説明を表示しています。
Print the path to VivaDicta's app container directory in the iOS Simulator
日本語の概要は準備中です。原文の説明を表示しています。
Print the path to VivaDicta's App Group container directory in the iOS Simulator
日本語の概要は準備中です。原文の説明を表示しています。
Pull current keyword rankings from Astro MCP, compare against the previous rankings check, and save a new rankings file to the vault. Use to measure ASO impact after metadata changes.
日本語の概要は準備中です。原文の説明を表示しています。
Automatically translate and sync App Store metadata (description, keywords, what's new, subtitle) to multiple languages using LLM translation and asc CLI. Use when asked to localize an app's App Store listing, translate app descriptions, or add new languages to App Store Connect.
日本語の概要は準備中です。原文の説明を表示しています。
Sync and validate App Store metadata and localizations with asc, including legacy metadata format migration. Use when updating metadata or translations.
日本語の概要は準備中です。原文の説明を表示しています。