asc-aso-audit について
asc-aso-auditは、App Store最適化メタデータを監査するスキルです。ローカルチェックに加え、Astro MCPによる任意のキーワード差分分析を行い、メタデータの品質や各地域での見つけやすさを確認できます。
主な機能
- 01ローカルメタデータの項目と長さを検査
- 02キーワードの浪費や形式上の問題を検出
- 03ロケール間でキーワードを比較
- 04Astro MCPでキーワード差分を分析
- 05Apple生成のアプリタグを参考情報として利用
活用シーン
- 01アプリのリリース前にメタデータを監査
- 02未活用または不足するキーワード機会の発見
- 03各市場向けローカライズの比較
- 04競合アプリのキーワード範囲の確認
MCP 対応
Astro MCPが利用可能な場合、追跡中のアプリのキーワード取得、競合キーワード抽出、候補の取得、検索順位の確認に使います。Astroの分析はローカルメタデータチェックを補完します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rorkai/ app-store-connect-cli-skills --skill asc-aso-auditインストール後、Claude Code で/asc-aso-auditを入力して読み込まれたか確認します。
同梱ファイルreferences/aso_rules.md
詳細
asc ASO 監査
2 段階の ASO 監査を実行します。まずローカルのメタデータファイルを対象にオフラインチェックを行い、次に Astro MCP を使用してキーワードのギャップを分析します。 利用可能な場合は、Apple が生成したアプリタグを見つけやすさを示すシグナルとして含めます。
前提条件
asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata"を使って、メタデータをローカルの標準ファイルに取得していること。- メタデータが
asc migrate exportまたはasc localizations downloadから取得された場合は、このスキルを実行する前に、標準の./metadataレイアウトに正規化してください。 - Astro によるギャップ分析の場合:Astro MCP でアプリが追跡されていること(任意。オフラインチェックは追跡なしで実行できます)。
- Apple が生成した見つけやすさタグの場合:API がアプリのタグを返すときは、
asc app-tags list --app "APP_ID" --output jsonが動作します。
開始前に
references/aso_rules.mdを読み、各チェックで適用するルールを確認します。metadata/version/の下にある最新のバージョンディレクトリ(セマンティックバージョン番号が最も大きいもの)を特定します。すべてのバージョンレベルのフィールドでこのディレクトリを使用します。- ユーザーから別の指定がない限り、プライマリロケールは
en-USです。
メタデータのファイルパス
- アプリ情報フィールド(
subtitle):metadata/app-info/{locale}.json - バージョンフィールド(
keywords、description、whatsNew):metadata/version/{latest-version}/{locale}.json - アプリ名:エクスポートされたメタデータに含まれていない場合があります。アプリ情報 JSON に
nameがない場合は、asc apps info listで取得するか、ユーザーに確認してください。欠損フィールドのエラーとして報告しないでください。
フェーズ 1:オフラインチェック
ローカルのメタデータディレクトリを対象に、以下の 5 つのチェックを実行します。ネットワーク呼び出しは不要です。
1. キーワードの無駄遣い
subtitle フィールド(および利用可能な場合は name)をトークン化します。keywords フィールドにも含まれるトークンは、すでにインデックス登録されており、キーワードの上限を無駄にしているため、報告します。
Severity: ⚠️ Warning
Example: "quran" appears in subtitle AND keywords — remove from keywords to free 6 characters
確認方法:
metadata/app-info/{locale}.jsonを読み、subtitle(および存在する場合はname)を確認しますmetadata/version/{latest-version}/{locale}.jsonを読み、keywordsを確認しますsubtitle(およびname)をトークン化します:- ラテン文字/キリル文字のスクリプト: 空白で分割し、先頭と末尾の句読点を除去して、小文字にします
- 中国語/日本語/韓国語:
、,,で分割するか、文字ごとに処理します。各文字または文字のまとまりをトークンとします。CJK では空白によるトークン化は機能しません。 - アラビア語: 空白で分割した後、接頭辞を除去した候補(
ال接頭辞を除去)も生成します。Apple は定冠詞を正規化する可能性が高いためです。たとえば、subtitle の「القرآن」は、keywords に「القرآن」と「قرآن」の両方がある場合に報告します。
- keywords をカンマで分割し、空白を除去して、小文字にします
- 共通する項目を報告します(接頭辞除去によるあいまい一致も含みます)
任意:アプリタグとの整合性
アプリタグは Apple が生成するラベルで、検索結果や製品ページに表示されることがあります。編集可能な ASO メタデータではありませんが、Apple の分類が意図したポジショニングと一致しているかを判断する有用な根拠になります。
asc app-tags list --app "APP_ID" --output json
asc app-tags view --app "APP_ID" --id "TAG_ID" --output json
タグは参考情報としてのみ使用します:
- 表示されているタグが subtitle/keyword 戦略を補強している場合は、その整合性を記載します。
- タグが意図しないカテゴリや用途を示している場合は、今後の分類改善につながる可能性があるメタデータ/カテゴリの変更を提案します。
- メタデータを変更すれば、Apple が生成したタグがすぐに変わると約束しないでください。
任意:Apple 公式検索プラン
App Store Connect と Apple Ads の認証情報が両方とも設定されている場合は、選択したメタデータと公式の有料検索データを組み合わせる、実験的な読み取り専用プランを使用します:
asc optimize search plan \
--app "APP_ID" \
--version "1.2.3" \
--ad-account "AD_ACCOUNT_ID" \
--country "US" \
--genre "PRODUCTIVITY_UTILITIES" \
--locale "en-US" \
--out-dir ".asc/optimization/1.2.3" \
--output markdown
- App Store Connect の認証には
asc authを、Apple Ads の認証にはasc ads auth loginをそれぞれ使用します。2 つの認証情報セットは独立しています。 - 生成された CSV および JSON ファイルはレビュー用の成果物として扱います。このコマンドはメタデータ、完全一致キーワード、除外キーワードを適用しません。また、Apple Ads のデータソースで一部の取得に失敗した場合も、レポート上で確認できる状態にします。
- Apple の人気度、アプリ固有の有料リーチ、有料検索の結果、メタデータの網羅状況は、それぞれ区別して扱います。このプランからオーガニック検索順位やキーワードの難易度を推測しないでください。
2. 活用が不十分なフィールド
推奨最小値に満たないフィールドを報告します。
| フィールド | 最小値 | 上限 | 理由 |
|---|---|---|---|
| キーワード | 90 文字 | 100 | 90%以上使用することで、インデックス登録を最大化できます |
| サブタイトル | 20 文字 | 30 | 65%以上の使用が推奨されます |
Severity: ⚠️ Warning
Example: keywords is 62/100 characters (62%) — 38 characters of indexing opportunity unused
3. 欠落しているフィールド
空または必須フィールドの欠落を報告します:subtitle、keywords、description、whatsNew。
注:name はエクスポートに含まれない場合があります。アプリ情報 JSON に name キーが空の値で明示的に含まれている場合に限り、報告してください。
Severity: ❌ Error
Example: subtitle is empty for locale en-US
4. 不適切なキーワード区切り文字
keywords フィールドの書式上の問題を確認します。
- カンマの後にスペースがある(
quran, recitation) - カンマではなくセミコロンを使用している(
quran;recitation) - カンマではなくパイプを使用している(
quran|recitation)
Severity: ❌ Error
Example: keywords contain spaces after commas — wastes 3 characters
5. ロケール間のキーワードの不足
利用可能なすべてのロケールで keywords フィールドを比較します。キーワードがプライマリロケール(デフォルトでは en-US)と同一のロケールを報告します。これは通常、ローカライズされていないことを意味します。
Severity: ⚠️ Warning
Example: ar keywords identical to en-US — likely not localized for Arabic market
確認方法:
- すべてのロケールのキーワードを読み込みます
- プライマリ以外の各ロケールをプライマリロケールと比較します
- 完全一致を報告します(大文字と小文字は区別しません)
6. 説明文のキーワード網羅率
キーワードが description フィールドに自然な形で含まれているか確認します。Apple は検索に説明文をインデックス登録しませんが、検索語が説明文にも記載されていると、ユーザーはダウンロードしやすくなります。これによりコンバージョン率が上がり、間接的にランキングも向上します。
Severity: 💡 Info
Example: 3 of 16 keywords not found in description: namaz, tarteel, adhan
確認方法:
- 各ロケールの
keywordsとdescriptionを読み込みます - 各キーワードについて、説明文に部分文字列として含まれているか確認します(大文字と小文字は区別しません)
- 活用形も考慮します:アラビア語の語根の一致、動詞の活用(例:「memorizar」≈「memorices」)、格変化(例:ロシア語の「сура」≈「суры」)
- ロケールごとに欠落しているキーワードを報告します。既存の文に自然な形で織り込むことを推奨します
- 報告対象外:非ラテン文字の説明文に含まれるラテン文字のキーワード(例:キリル文字のテキスト内の「quran」)。これらは別々の検索経路を対象としています
フェーズ 2:Astro MCP キーワードギャップ分析
Astro MCP が利用可能で、アプリが追跡対象の場合は、キーワードギャップ分析を実行します。米国のストアだけでなく、ストア/ロケールごとに実行してください。キーワードの人気度は市場によって大きく異なります。
手順
-
現在のキーワードを取得する:アプリ ID を指定して
get_app_keywordsを呼び出し、追跡対象のキーワードと現在のランキングを取得します。 -
複数ストアの追跡状況を確認する:各ロケールの App Store テリトリーについて、既存の追跡状況を照会します。追跡されていないストアは利用不可として報告し、監査を続行します。追跡設定を追加することをユーザーが別途許可した場合に限り、
add_keywordsを使用してください。未追跡ストアのランキングが空でも、パフォーマンスが低いことの証拠にはなりません。 -
競合他社のキーワードを抽出する:競合アプリ上位 3~5 件のアプリ ID を指定して
extract_competitors_keywordsを呼び出し、キーワードの不足を特定します。これは Astro のツールの中で最も価値が高く、競合他社がランキング入りしている一方で、自社が獲得できていないキーワードを明らかにします。可能な場合はストアごとに実行します。 -
候補を取得する:アプリ ID を指定して
get_keyword_suggestionsを呼び出し、カテゴリ分析に基づく追加の推奨を取得します。 -
現在のランキングを確認する:
search_rankingsを呼び出し、各ストアの追跡対象キーワードでアプリが現在どの順位にあるかを確認します。 -
メタデータと照合する:候補および競合他社のキーワードを、ローカルメタデータの
subtitle、name(利用可能な場合)、keywordsフィールドに含まれるトークンと比較します。 -
不足を提示する:すべての不足を人気度スコアの高い順に報告します。情報源(競合分析または候補)も記載します。
フィールド間の組み合わせ戦略
キーワードの追加を推奨する際は、単語がインデックス対象フィールド(タイトル+サブタイトル+キーワード)をまたいでどのように組み合わさるかを考慮します。たとえば:
vaktiがすでに含まれている場合、キーワードに「namaz」を追加すると、「namaz vakti」という検索に一致できるようになります(人気度 66)- サブタイトルに「Quran」が含まれている場合、キーワードに「holy」を追加すると、「holy quran」という検索に一致できるようになります(人気度 58)
推奨では価値の高い組み合わせを報告してください。
スキップ条件
- Astro MCP に接続されていない場合 → 次の注記を表示してスキップします:"Connect Astro MCP for keyword gap analysis"
- Astro でアプリが追跡されていない場合 → 次の注記を表示してスキップします:"Add app to Astro with
mcp__astro__add_appfor gap analysis" - ロケールのストアが追跡されていない場合 → ギャップを報告し、そのランキングの確認をスキップします。追跡の設定には別途承認が必要です。
出力形式
結果は単一の監査レポートとして提示します。レポートの対象は最新バージョンのディレクトリのみです。
### 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]
注記
- オフラインチェックはネットワークに接続しなくても実行でき、ローカルファイルのみを読み取ります。
- Astro のギャップ分析は追加機能のため、なくても監査は有用です。
- 正規のメタデータファイルを最新の状態に保つため、このスキルは
asc metadata pullの後に実行してください。 - 監査後にキーワードのみを更新する場合は、正規のキーワードワークフローを優先してください:
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" --confirm- 外部で調査したキーワードをインポートする場合は、
asc metadata keywords sync --app "APP_ID" --version "1.2.3" --dir "./metadata" --input "./keywords.csv"
- 変更を加えた後、修正を検証するために監査を再実行してください。
- Field Utilization テーブルには、内容を網羅するためにプロモーション用テキストが含まれていますが、その内容を検証するチェックはありません(Apple によるインデックス登録の対象ではありません)。