目次
はじめに:個人開発アプリ「kaita?」とOAuth審査
アプリの概要
Googleカレンダーを日記として活用したく、入力の専門ツールを開発しました。
https://kaita-app.com
使用技術:Next.js + Auth.js + Google Calendar API
今回このアプリを開発するうえでGoogleのOAuth審査を受けたので、通すためにやったことを記事にまとめます。
なぜOAuth審査が必要だったのか
本アプリでは、機密性の高いスコープ/制限付きスコープに分類される API を使用するので、OAuth審査(OAuth Verification)というGoogleによる審査が必要になります。
※100ユーザー以下なら審査不要ですが、警告も出るため、公開アプリとして運用するため申請しました。
参考:OAuth アプリ検証ヘルプセンター – Google Cloud Platform Console ヘルプ
結果:3回リジェクトされたが、3週間で承認された
- 初回申請
→ドメイン所有権でリジェクト(7日後)
→確認などで1往復 💌
→対応完了・再連絡(5日後)
→ブランディング違反でリジェクト(2日後) - 2回目の申請
→対応完了・返信(即日)
→再びブランディング違反でリジェクト(翌日) - 3回目の申請
→対応完了・返信(5日後)
→承認通知(即日)
合計:約3週間で承認 🎉
所感:
思ったよりGoogleの対応が優しかった。
ドメイン所有権でリジェクトされた際、確認したら丁寧に教えてもらえるなど、機械的でなくてありがたかった。
また、初回申請の後の連絡は時間がかかった印象だったが、それ以外は比較的早く連絡が来た印象でした。
初回リジェクト:ドメイン所有権が確認できない
受け取ったメール(抜粋)
⭐️要約:Search Consoleでドメイン所有権を確認してください
We need you to address the following items for us to continue your app’s verification:
The website you provided as your homepage is not registered to you.
Please take the following action(s):
⤷ Verify your ownership of the following domains: > [アプリドメイン]
対応した内容
別途記事にまとめたのでそちらを参照してください。
簡潔にまとめると、ドメインの所有権の確認はサーチコンソールで行うが、その際プロパティの作成を「ドメインプレフィックス」で行わないといけないよ、ということでした。
2回目のリジェクト:ブランディング違反
受け取ったメール
⭐️要約:現在のアプリケーション名では独自性が不明確
We need you to address the following items for us to continue your app’s verification: > * Your application name does not uniquely identify your brand and identity. > > Please take the following action(s) to continue with your request: > ⤷ Update and resubmit your app in Cloud Console with the following: > * An application name that uniquely identifies your brand and identity
対応した内容
AIに相談しつつ、末尾に「by [屋号の頭文字]」のように制作者を明記したアプリ名に変更しました。
がこれでは、不十分だということで再度リジェクトされました。
3回目のリジェクト:ブランディング違反(大幅修正)
受け取ったメール
⭐️Brand Similarity: “[アプリ名の一部]”がGoogle製品に類似
⭐️Google Product含有: アプリケーション名にGoogle商標が入っている
⭐️Unique Identity不足: “by [屋号の頭文字]”では独自性が不明確
Your application’s name violates Google API Services: User Data Policy.
Specifically:
Brand Similarity: Your app’s name [旧アプリ名] is a close resemblance to the Google product, which could potentially confuse users and lead them to believe your app is officially affiliated with or endorsed by Google.
Google Product: The presence of [旧アプリ名] on your app’s name reinforces the impression that your app is directly associated with Google.
Unique Identity: An application name that uniquely identifies your brand and identity.
To comply with our brand guidelines:
Please submit an application name that does not include any Google product names or modified any Google trademarks.
対応した内容(時系列)
1. アプリ名の再検討
Googleに全く関連しないアプリ名に変更。
リジェクト1回目でドメイン取得していたので、ちょっと残念でしたが、結果的にしっくりくるものに決められたのでよかったです。
※補足資料あり。
2. ドメイン変更
前述の通り、リジェクト1回目ですでにドメインを取得していたものの、
サービス名とドメインは一致させたかったので、新たにドメインを取得しました。
なので再度所有権の確認を実施。
- 新ドメイン取得(Cloudflare)
- Vercelでカスタムドメイン設定
- DNS設定(Aレコード、CNAME)
- Search Consoleでドメインプロパティ作成
- OAuth同意画面のドメイン更新(Google Cloud Console)
- リダイレクトURI更新(Google Cloud Console)
3. 英語対応(プライバシーポリシー・利用規約)
審査と並行して進めていたので、このタイミングでデプロイ。
合わせてGoogle Cloud Consoleのアプリのドメインの変更も実施しました。
必須ではないものの、下記に関してはメリットかなと考えています。
- ブラウザの翻訳機能を使うと表現が変わるリスクを避けられる
- 審査がスムーズに進む(気がする。審査官は英語でレビューしてくれるので。)
4. アプリ名変更に伴う作業もろもろ
アプリ名を変更したので、以下も変更しました。
- タイトルやディスクリプションなどメタ情報
- OGP画像(タイトルロゴ)
- LPのヒーローイメージ
- デモ動画(英語UI・英語字幕で再録画)
デモ動画に関しては、ドメインが変わるたびに作成しなおしています。
英語UIでは操作に関する字幕を省略できるので、作るのが楽でした。
5. 返信メール作成のポイント
わたしなりに意識していたことをまとめます。
- 変更内容を箇条書きで整理
- なぜそのように変更したのかを簡潔に説明(アプリ名の意味や由来など)
- 審査官の疑問を先回りして潰す
また、ドメインやアプリの挙動が少しでも変わればデモ動画の更新が必要になるだろうと予測し、リクエストされていなくても必要に応じてデモ動画を更新し、対応完了メールと共に共有するようにしていました。
(Google Developerチームからの返信には時間がかかる可能性があるので、なるべく少ないコミュニケーションの中で審査を完了させるため)
※補足資料あり。
結果
返信した当日に承認通知が届きました 🎉

デモ動画作成のポイント
初回申請時から意識すべきだなと感じた、デモ動画作成のポイントをまとめます。
基本方針:
- 英語UIで撮影(あれば)
- 英語字幕で補足説明
- 1-2分程度
ポイント:
- URLバーにClient IDをハッキリ映す(ブラウザのアドレスバーをうつす)
- 実際のログインフローを見せる(権限承認画面)
- スコープの使用例を実演
記事の構成上省略しましたが、初回リジェクトの際デモ動画についても指摘が含まれていました。
以下2点が原因だったようです。
- 初回ログイン時のポップアップが表示されていないかったこと(再ログインアカウントを使っていたため)
- 権限承認画面が映っていなかったこと(上記と同じ理由ですでに承認済みのアカウントを使っていたため)
※補足資料あり。
審査通過後の気づき
- ドメイン所有権は「ドメインプロパティ」で
- アプリ名は独自性のあるものを
- 英語対応は必須ではないがあればよし
- 突っ込まれそうな部分は事前に潰す
- 「これくらい大丈夫だろ」は通用しない。手間でも1発通過を意識してもれなく対応する意識が大切
審査申請前のチェックリスト
今回の経験を踏まえて、次回自分が申請する際の備忘録📝
- アプリ名にGoogle製品名を含んでいないか
- アプリ名にGoogleの商標を含んでいないか
- ドメイン所有権は「ドメインプロパティ」で確認済みか
- プライバシーポリシー・利用規約は英語版もあるか(あるいはブラウザの翻訳機能で異なる認識にならないか)
- デモ動画は英語字幕で作成しているか
- デモ動画にURLバー(Client ID)が映っているか
- リダイレクトURIは正しく設定されているか
- OAuth同意画面のすべての項目が新ドメインに更新されているか
補足資料について
本記事の内容を補完する資料として、noteにて以下の情報を公開しています。
- Google審査官と実際にやり取りしたメールの全文(英文)
- Google Cloud Consoleの設定画面の一部
- ブランディング違反でリジェクトされた実際のアプリ名の変更履歴
- 承認を得るために提出したデモ動画
情報の性質上、有料での公開としていますが、必要に応じてご参照ください。
Google OAuth審査 実際の対応資料集
https://note.com/ample_eel9268/n/n74d518ba4cc5
まとめ
結果、3回のリジェクトを経て約3週間で承認されました。
理由のわからないことは、エビデンスを提示した上で確認するときちんと答えてくれます。
少々根気は必要でしたが、丁寧に1つずつ対応することで無事通過することができました。
メール自体は英語でのやり取りとなりますが、 AIのおかげでぐっとハードルが下がりました。ありがたい🙏





![[ 備忘 ] 初めてのアプリリリースで手間取ったことメモ📝|Next.js × Firebase × Netlify](/_next/image?url=%2Fimg%2Feyecatch%2Fface-think.png&w=256&q=75)