App Store 提出
Shopify App Store に App を掲載することは重要なマイルストーンですが、提出プロセスは厳格です。Shopify の App レビューチームは、詳細な品質、パフォーマンス、セキュリティ、UX の基準に対して App を評価します。このモジュールでは、更新された要件、Built for Shopify バッジプログラム、リスティング最適化戦略、効果的な価格モデルについて説明します。
App レビュー要件(Winter '26 更新)
Shopify は Winter '26 リリースサイクルで App レビュー要件を更新しました。変更は、埋め込み App 体験、パフォーマンス影響測定、データプライバシーコンプライアンスへのより強い重点を反映しています。
コア要件
Shopify App Store に提出されるすべての App は、以下の基準要件を満たす必要があります:
認証とセキュリティ
- 適切な HMAC 検証を含む OAuth 2.0 実装
- 3 つの GDPR 必須 Webhook すべてが機能しテスト済み
- Access Token は保存時に暗号化
- クライアントサイドコードで機密データを露出しない
- 埋め込み App 用の Content Security Policy ヘッダー設定
ユーザーエクスペリエンス
- App は Shopify 管理画面に完全に埋め込み(コア機能の外部リダイレクトなし)
- Polaris デザインシステムコンポーネントまたは App Bridge アクションを使用
- すべての画面サイズで機能するレスポンシブレイアウト
- すべての非同期操作のローディング状態
- 明確な回復アクション付きのエラー状態
パフォーマンス
- ストアフロントへの影響が 100ms 追加ロード時間以下
- 同期 JavaScript インジェクションなし
- 管理ページが 3 秒以内にロード
- 効率的な API 使用(不要な呼び出しなし、適切なページネーション)
機能
- App は即座に明らかな明確な価値を提供する必要がある
- オンボーディングフローがマーチャントのセットアップをガイド
- すべてのリソースをクリーンアップするアンインストール Webhook ハンドラー
- Shopify の Online Store 2.0 テーマで正しく動作
Winter '26 のレビュープロセスには自動化パフォーマンスプロファイリングが含まれるようになりました。レビューチームはテストストアに App をインストールし、Shopify の内部パフォーマンススイートを実行してストアフロントへの影響を測定します。100ms の閾値を超える App は自動的に手動レビューにフラグされ、レビュータイムラインに 2-4 週間が追加されます。
よくある却下理由
Shopify の Partner コミュニティの公開データに基づくと、以下が最も頻繁な App 却下理由です:
- GDPR Webhook の欠如 -- 最も一般的な却下理由。3 つの Webhook すべてが 200 ステータスコードで応答し、実際にリクエストを処理する必要があります。
- 外部認証フロー -- マーチャントをログインまたはセットアップのために Shopify 管理画面外にリダイレクト。
- 不十分なエラーハンドリング -- 生のエラーメッセージや空白画面を表示する未処理の例外。
- 不十分なオンボーディング -- インストール後にマーチャントが App の使い方を理解できない。
- 過剰な権限 -- App が実際に必要としないスコープのリクエスト。
- 不正なアンインストール動作 -- アンインストール後も App が API 呼び出しを続ける。
提出前テストチェックリスト
# 1. Test OAuth flow from scratch
shopify app dev --reset
# 2. Verify all webhook subscriptions
shopify app webhooks list
# 3. Test GDPR webhooks manually
curl -X POST https://your-app.com/webhooks/customers/data_request \
-H "Content-Type: application/json" \
-H "X-Shopify-Hmac-Sha256: $(echo -n '{"shop_domain":"test.myshopify.com"}' | openssl dgst -sha256 -hmac 'your-secret' -binary | base64)" \
-d '{"shop_domain":"test.myshopify.com","customer":{"id":1,"email":"test@example.com"}}'
# 4. Test uninstall and reinstall
# Uninstall app from test store, verify cleanup, then reinstall
# 5. Run Lighthouse on storefront with app installed
npx lighthouse https://your-test-store.myshopify.com --only-categories=performance
Built for Shopify バッジ
Built for Shopify バッジは、App が獲得できる最高品質の認定です。マーチャントに対して、App が Shopify の最も厳格な品質基準を満たし、プラットフォームと深く統合されていることを示します。
バッジ要件
Built for Shopify バッジを獲得・維持するには、App は以下を満たす必要があります:
- 完全に埋め込み -- Shopify 管理画面外へのリダイレクトなし
- App Bridge 4.x 以降を使用 -- 最新の App Bridge API を使用
- 適用可能なすべての Extension Points を実装 -- レガシーアプローチの代わりに Shopify Functions、Checkout UI Extensions、Theme App Extensions を使用
- パフォーマンス閾値を達成 -- ストアフロントへの影響が一貫して 50ms 未満(基本要件より厳格)
- 高いマーチャント満足度を維持 -- 平均評価 4.0 以上で意味のあるレビュー量
- サポートリクエストに対応 -- 中央値応答時間 24 時間未満
- 依存関係を最新に保つ -- 依存関係に既知の重大な脆弱性なし
Shopify がバッジ要件を更新すると、既存のバッジ保持者は新しい基準に準拠するための 60 日間の猶予期間を受けます。App がコンプライアンスから外れた場合、バッジ削除の 60 日前、30 日前、7 日前にメール通知を受け取ります。Shopify Changelog で要件の更新を注意深く監視してください。
バッジの申請
Partner Dashboard → Apps → [Your App] → Distribution → Built for Shopify
バッジのレビューは標準的な App レビューとは別個の(より徹底的な)ものです。バッジレビューには 2-4 週間かかると見積もってください。App がバッジレビューで失敗する一般的な領域:
- 非推奨の API またはレガシー Extension パターンの使用
- Polaris コンポーネントを一貫して使用していない
- ディープリンクサポートの欠如(App は特定の管理 URL に応答する必要あり)
- 不完全なエラー回復フロー
App リスティング最適化
App Store リスティングは主要なセールスツールです。マーチャントは消費者が EC サイトをブラウズするように App Store をブラウズします -- 第一印象に基づいて素早く判断します。
タイトルとタグライン
- タイトル:30 文字以内に。主要キーワードを含める。
- タグライン:App が何をするか、誰のためかを明確に述べる一文。
Title: "SyncMaster - Inventory Sync"
Tagline: "Real-time inventory synchronization across all your sales channels"
カテゴリで上位にランクされている App を研究しましょう。タイトルとタグラインの構成方法に注目。最良のリスティングは機能ではなく利点をリードします。「在庫管理で週 10 時間節約」は「マルチチャネル在庫管理ツール」より効果的です。
App 説明の構造
読むためではなく、スキャンするために書きましょう。マーチャントは判断前にリスティングに平均 30 秒を費やします。
推奨構造:
- オープニングフック(2 文)-- 解決する問題と提供する結果
- 主要機能(4-6 項目のブレット)-- App が何をするか
- ソーシャルプルーフ(1 段落)-- マーチャント数、著名ブランド、パフォーマンス統計
- 使い方(3 ステップの番号リスト)-- シンプルなセットアップフロー
- サポートと価格(簡潔に)-- 含まれるサポート
キーワードとカテゴリ
Shopify の App Store 検索は以下の組み合わせを使用:
- App のタイトルとタグライン
- 説明テキスト
- カテゴリ選択(プライマリとセカンダリ)
- マーチャントレビューコンテンツ
理想的な顧客がブラウズする場所に基づいてプライマリカテゴリを選択。隣接する検索をキャプチャするためにセカンダリカテゴリを選択。
スクリーンショットとデモ動画
スクリーンショットのベストプラクティス
最大 6 枚のスクリーンショットをアップロードできます。各スクリーンショットはストーリーを語るべきです:
| スクリーンショット | コンテンツ | 目的 |
|---|---|---|
| 1 | 実データ付きメインダッシュボード | 動作中の App を表示 |
| 2 | 使用中の主要機能 | 主要な価値を示す |
| 3 | 設定/構成 | セットアップの容易さを示す |
| 4 | 結果/アナリティクス | 成果を証明 |
| 5 | モバイルレスポンシブビュー | クロスデバイスサポートを示す |
| 6 | インテグレーションタッチポイント | Shopify 管理画面への適合を示す |
技術要件:
- 最小 1600 x 900 ピクセル
- PNG または JPEG フォーマット
- スクリーンショットにブラウザクロームや OS レベルの UI を含めない
- 実際に見えるデータを使用(「Lorem ipsum」や空の状態ではなく)
デモ動画ガイドライン
60-90 秒のデモ動画はコンバージョン率を大幅に向上させます。構成:
- 0-10 秒:App が解決する問題を述べる
- 10-40 秒:App がその問題を解決する様子を表示(画面録画)
- 40-60 秒:結果/成果を表示
- 60-90 秒:行動喚起(今すぐインストール、無料トライアル)
Shopify は App Store リスティングにデモ動画を直接ホストします。MP4 ファイル(最大 200MB)をアップロード。YouTube や Vimeo にリンクしない -- 動画は自己完結型である必要があります。著作権でフラグされる可能性のあるBGMは避けてください。
価格戦略
正しい価格モデルの選択は、App ビジネスにとって最も重要な決定の一つです。
Shopify の価格モデル
| モデル | 説明 | 最適用途 |
|---|---|---|
| 無料 | 無料 | リード獲得、エコシステム App |
| フリーミアム | 無料枠 + 有料アップグレード | 成長重視の App |
| 月額固定 | 月額固定価格 | シンプルで予測可能な App |
| 段階制 | 使用量/機能に基づく複数プラン | 多様なマーチャントニーズを持つ App |
| 使用量ベース | アクション/トランザクションごとの課金 | 大量トランザクション App |
Shopify Billing API の実装
// services/billing.js
export async function createSubscription(client, shop, plan) {
const response = await client.query({
data: {
query: `mutation AppSubscriptionCreate(
$name: String!,
$returnUrl: URL!,
$lineItems: [AppSubscriptionLineItemInput!]!,
$test: Boolean
) {
appSubscriptionCreate(
name: $name,
returnUrl: $returnUrl,
lineItems: $lineItems,
test: $test
) {
appSubscription {
id
status
}
confirmationUrl
userErrors { field message }
}
}`,
variables: {
name: plan.name,
returnUrl: `${process.env.HOST}/billing/callback?shop=${shop}`,
test: process.env.NODE_ENV !== 'production',
lineItems: [
{
plan: {
appRecurringPricingDetails: {
price: { amount: plan.price, currencyCode: 'USD' },
interval: plan.interval,
},
},
},
],
},
},
});
const result = response.body.data.appSubscriptionCreate;
if (result.userErrors.length > 0) {
throw new Error(result.userErrors.map((e) => e.message).join(', '));
}
return result.confirmationUrl;
}
価格のヒント
- 常に無料トライアルを提供(7-14 日)。マーチャントは価値を見る前に支払うことに消極的です。
- マーチャントの Shopify プランに基づいて価格設定。月額 $2,000 の Shopify Plus マーチャントは $99/月を支払いますが、月額 $39 の Basic マーチャントは支払いません。
- App にネットワーク効果やより多くのインストールからのデータ優位性がある場合は無料枠を含める。
- 15-20% の年間割引はより長いコミットメントを促し、チャーンを減らします。
Shopify は Billing API を通じて処理されるすべての App 課金に対してレベニューシェアを取ります。2026 年時点で、Shopify は Partner ごとに年間最初の $1M USD は 0%、その閾値を超えると 15% を取ります。価格計算にこれを織り込んでください。
App Store SEO
検索の最適化
Shopify の App Store 検索アルゴリズムは以下を考慮します:
- 関連性 -- リスティングが検索クエリにどれだけ一致するか
- 品質シグナル -- 評価、レビュー数、インストール数、アンインストール率
- 新しさ -- 最近の更新と活動がメンテナンスされた App を示す
- パフォーマンス -- Built for Shopify バッジを持つ App がより高くランク
実行可能な SEO 戦術
- App タイトルにプライマリキーワードを含める
- 説明にキーワードの自然な変形を使用(キーワードスタッフィングではなく)
- すべてのマーチャントレビュー(ポジティブとネガティブ両方)に返信
- 定期的な更新をプッシュ(マイナーなものでも)してアクティブなメンテナンスを示す
- 満足したマーチャントにレビューを残すよう促す(ただしレビューにインセンティブを付けない -- Shopify の規約に違反)
App Store パフォーマンスの追跡
Partner Dashboard でこれらの指標を監視:
- インプレッション -- リスティングが検索結果に表示される頻度
- ページビュー -- マーチャントがリスティングをクリックスルーする頻度
- インストール率 -- ページビューからインストールへのコンバージョン
- アンインストール率 -- 30 日以内にアンインストールするマーチャントの割合
- 評価トレンド -- 平均評価の移動方向
成功する App Store リスティングは決して「完了」しません。活きたドキュメントとして扱い、主要機能をリリースしたらスクリーンショットを更新し、マーチャントが検索する内容に基づいて説明を改良し、インプレッションからインストール、有料サブスクリプションまでのコンバージョンファネルを継続的に最適化してください。