Chrome Web Store の審査で、キーワードスパムと判定された話
拡張機能を提出したところ、コードでも権限でもなく、ストア掲載文を理由に却下された。対応サービス名を並べたのは説明のつもりだったが、外からはキーワードの羅列と区別がつかなかった。何を削り、どう書き直したかの記録。

Chrome Web Store に拡張機能を出すとき、審査で見られるのはコードと権限だと思っていました。実際に返ってきたのは、説明文についての却下でした。理由は Keyword Spam。掲載文が、キーワードの羅列と判定された、ということです。
対応サービス名を並べていた
却下されたのは Safe Privacy Mask の掲載文でした。AIチャットやWebフォームに文章を入力するとき、個人情報らしき文字列を送信前にマスクする拡張です。
説明文には、利用できる場所を具体的に伝えるつもりで、ChatGPT、Claude、Gemini、Copilot など、複数のサービス名を並べていました。
意図としては、対応範囲の説明でした。この拡張はどこで動くのか、自分が普段使っているサービスは含まれるのか。それが分からないまま入れてもらうより、先に書いておいたほうが親切だと考えていました。
検索結果に出すためにキーワードを増やしたつもりは、ありませんでした。
意図は、外からは見えない
ただ、掲載文を受け取る側から見えているのは、並んだサービス名だけです。
十数個の固有名詞が続いているとき、その一つひとつが本当に必要な説明なのか、検索のために置かれた単語なのかを、外から区別する方法はありません。
「対応範囲の説明」と「キーワードの羅列」は、書いた側にしか区別がつかない。今回のケースで一番こたえたのは、この部分でした。自分の意図は掲載文の外側にあって、読む人には渡らない。
公開情報として確認したこと
却下のあとで、Chrome Web Store のスパムに関する FAQ を読みました。
そこには、説明文で対応サイトやブランドを列挙する場合は5件を超えないこと、それより長くなるならリンクやスクリーンショットで示すこと、という記載がありました。特定のキーワードの登場回数も、5回未満に抑えるのがよいとされています。
数の基準が書かれていたのは意外でした。自分の掲載文は、その線をはっきり超えていました。
ここまでのうち、却下と書き直しは実際に経験したことで、5件という基準は公開ドキュメントで確認した内容です。以下は、そこから考えたことになります。
何を変えたか
列挙をやめて、機能と利用場面を中心に書き直しました。
冒頭で挙げるサービス名は代表的なものだけに絞り、対応サイトの節はこう変えました。
インストール後、主要なAIチャットサービスでそのまま利用できます。標準対応しているサービスの一覧は、拡張機能の設定画面でご確認いただけます。
一覧を設定画面へ移したのは、情報を隠すためではありません。対応先は増えたり変わったりするので、ストア掲載文よりも拡張機能の中にあるほうが、正確な状態を保てます。これは書き直してから気づいた利点でした。
迷いはありました。名前を消せば、利用者は自分の使っているサービスで動くのかが分かりにくくなります。審査のために説明を減らすのは後退ではないか、とも考えました。
書き直した掲載文で再提出したところ、そのまま公開に至りました。ただ、どの変更が決め手だったのかは、こちらからは分かりません。
説明文は、検索のための文章ではなかった
書き直したあとで読み返すと、前の説明文は「対応サービス一覧」が中心になっていました。何をする道具なのかが、そのうしろに追いやられていた。
いま優先しているのは3つです。何をする道具か。どの場面で使うか。データと権限をどう扱うか。
サービス名をいくつ並べても、道具そのものが分かりやすくなるわけではありませんでした。少なくとも自分の場合は、名前を減らしたほうが、説明として読みやすくなりました。
審査も、道具を作る工程だった
これを「審査に通す方法」としてまとめるつもりはありません。一度断られただけで、一般的な基準を語れるとは思っていません。審査の判断そのものを批判したいわけでもありません。
分かったのは、コードが動けば完成ではない、ということでした。名前、説明文、権限の表示、スクリーンショット、プライバシーの申告。そこまで含めて、初めて見る人にどう伝わるかを設計する必要がある。
自分の意図ではなく、そのページを初めて開いた人からどう見えるか。そちらで考えると、直す場所が分かりやすくなりました。