はじめに
AIコーディングツール(Cursor / Antigravity)を使って、Chrome拡張機能を3つ開発し、Chrome Web Storeに公開しました。手書きコード0行、期間は1週間です。
| 拡張機能 | 概要 | リンク |
|---|---|---|
| NSP LinguaShift | Webページの日本語を自動で韓国語・英語に置換する語学学習ツール | Chrome Web Store |
| NSP OneTab | ワンクリックでタブを一括整理 | Chrome Web Store |
| NSP Link Preview | リンク先をその場にポップアップ表示 | Chrome Web Store |
3つとも完全無料、データ収集なし。
この記事では、開発よりも公開フェーズで踏んだ地雷と、Chrome Web Storeの審査を通すために最低限知っておくべきことを書きます。
Chrome拡張を有料公開すると住所が公開される
NSP Link Previewは、当初フリーミアムモデル(ミニウインドウ1つまで無料、複数は有料)で公開しました。Polar.shという決済サービスでライセンスキーの自動発行まで組んで、有料版としてChrome Web Storeに提出。審査も通過。
数日後、Chrome Web Storeの拡張機能ページに自分の本名と自宅住所が掲載されていることに気づきました。
原因:トレーダー申告
Chrome Web Storeには「トレーダー申告」という仕組みがあります。
- 有料アイテムや課金機能を提供する場合、EU法(消費者保護規制)に基づき、開発者の実名と住所の公開が義務
- 無料の拡張機能なら「非取引業者」を選択すれば住所公開は不要
- 有料にした瞬間に、住所公開が必須になる
Googleの公式ドキュメントにはちゃんと書いてあります。でも、開発に集中しているときにデベロッパーポリシーの全文を読み込む人は少ないのではないでしょうか。
参考:Chrome の拡張機能を公開したら自分の住所も公開した話 - Qiita(@KaitoMuraoka)
対処
気づいた瞬間に以下を実行しました。
- 拡張機能を非公開に設定
- 有料版の機能(ライセンスキー認証)を削除
- 全機能を無料化してコードを修正
- 「非取引業者」としてトレーダー申告を変更
- 無料版として再提出 → 審査通過 → 再公開
現在のNSP Link Previewは、複数ウインドウも含めて全機能が完全無料です。
個人開発者がChrome拡張を収益化するには
住所公開を避けてChrome拡張で収益を得たい場合、選択肢は以下になります。
- 拡張機能自体は無料にして、外部サービスで課金する(noteの有料記事、Gumroadなど)
- 法人を設立してオフィス住所を公開する(個人の自宅ではなくなる)
- バーチャルオフィスの住所を使う(EU法の要件を満たすか要確認)
自分は「拡張機能は無料、収益化はnoteの有料記事で」という形に落ち着きました。
審査を通すために最低限やること
パーミッション説明文
manifest.jsonで宣言している権限ごとに、「なぜこの権限が必要か」を審査フォームに記述する必要があります。ここが曖昧だとリジェクトされます。
例として、activeTabの説明文を1つだけ載せます。
activeTab(NSP LinguaShiftでの記述例)
ユーザーが現在閲覧しているページのテキストコンテンツを読み取り、
日本語の単語を韓国語または英語に置換して表示するために使用します。
ユーザーがツールバーのアイコンをクリックしたときのみ、
アクティブなタブに対して動作します。
書き方のポイント:
- **「何のために使うか」**を1文目に書く
- 「いつ動作するか」(ユーザーの操作トリガー)を明示する
- 「やらないこと」(外部送信しない、バックグラウンドで動かない等)を書く
特に3の「やらないこと」が大事です。審査担当者は「この権限で悪用されていないか」を確認しています。
他のパーミッション(storage、scripting等)の説明文の実例は、noteの記事に載せています。
プライバシーの申告
ユーザーデータの収集有無を申告します。外部にデータを送信しない設計であれば「収集しない」で問題ありません。
AIコーディングで開発した流れ(概要)
3つの拡張機能は、Google Antigravity、Cursor、Claude Codeを使って開発しました。3つとも月$20前後で使えるツールです。
開発で一番重要だったのは、AIにコードを書かせる前の工程でした。
① 企画(不満を1行で言語化する)
↓
② AIとの壁打ち(仕様を詰める。コードはまだ書かせない)
↓
③ 仕様書レビュー(AIが作った実装計画を人間が確認する)
↓
④ コード生成(ここでようやくAIにコードを書かせる)
いきなり「Chrome拡張を作って」と指示を出すと、仕様が曖昧なまま「なんとなく動くもの」が出てきて手戻りが大量に発生します。
②の壁打ちでは、AIへの最初の指示に**「まだコードは書かないでください」**と明示するのがポイントです。この1文がないと、AIはすぐにコードを書き始めます。
各段階の詳細な手順、AIへの具体的な指示文のテンプレート、3ツールの比較(どれが「止まるか止まらないか」)については、noteに詳しく書いています。
まとめ
- Chrome拡張を有料で公開すると、トレーダー申告により開発者の実名と住所が公開される
- 個人開発者は、拡張機能は無料にして別の方法で収益化するのが現実的
- 審査を通すには、パーミッション説明文に**「やらないこと」を明示する**
- AIコーディングでは、コードを書かせる前の企画・壁打ち・仕様レビューが最も重要
関連記事
開発の裏側を全部書いたnote記事があります。この記事では技術的なポイントに絞りましたが、以下の内容はnoteに載せています。
- 3つのAIツール(Cursor / Antigravity / Claude Code)に月9,000円払って比較した結果
- AIへのコピペで使える指示文テンプレート3種
-
storage、scripting等のパーミッション説明文の実例 - 公開後の導線設計(GitHub Pages・プレスリリース・note記事の連携)
- 3つの拡張機能をなぜ作ったかのストーリー