Android Developer Console API は、アプリ配信者や個々のデベロッパーが Android Developer Console でパッケージ名をプログラムで登録できるように設計された公開インターフェースです。
サーバー間機能:
| App Distribution | 個人のデベロッパー |
|---|---|
| ストアにアプリを公開するデベロッパーに代わって、パッケージ名と鍵を登録します。ストア管理の鍵を使用してパッケージ名を登録します。パッケージ名に関連付けられた鍵の所有権を証明します。 | 継続的デプロイ ワークフローでパッケージ名と鍵を登録します。パッケージ名に関連付けられた鍵の所有権を証明します。 |
始める前に
始める前に、次のものを用意する必要があります。
- Google Cloud プロジェクトへの管理者権限。
- 以下に関する基本的な知識
以下の用語についても知っておく必要があります。
| 用語 | 定義 |
|---|---|
| デベロッパー アカウント | 1 つ以上のパッケージ名を所有できる Android Developer Console アカウントを表します。確認ステータス(NOT_VERIFIED または VERIFIED)が含まれます。 |
| パッケージ名 | デベロッパー アカウント内の特定の Android パッケージ名(例: com.example.app)。1 つ以上の鍵に関連付けることができます。登録状態(DRAFT、IN_REVIEW、REGISTERED、PENDING_TRANSFER)が含まれます。 |
| キー | Android パッケージ名の署名に使用される特定の公開証明書/鍵。SHA-256 ハッシュと現在の登録状態(DRAFT、OWNERSHIP_VERIFIED、IN_REVIEW、REGISTERED、PENDING_TRANSFER)が含まれます。 |
始める
Android Developer Console API にアクセスするには、次の手順を行います。
Google Cloud プロジェクトを作成する
- Google Cloud アカウントを作成します(まだ作成していない場合)。
- Google Cloud コンソールを開きます。
- Google Cloud プロジェクトを作成します。
Google Cloud プロジェクトで API を有効にする
- Google Cloud コンソールを開きます。
- ナビゲーション メニュー(☰)で、[API とサービス] > [ライブラリ] を選択します。
- プロジェクトのプルダウン メニューから、API を有効にする Google Cloud プロジェクトを選択します。
- API とサービスの検索バーを使用して、Android 開発者コンソール APIを選択します。
- API を有効にします。
- 検索結果から API を選択して、API の概要ページに移動します。
- 青色の [有効にする] ボタンをクリックします。Google Cloud により、選択したプロジェクトの API が有効になります。通常、この処理はすぐに完了します。有効にすると、使用を開始できます。
API を認証する
Android Developer Console API を呼び出すには、OAuth 2.0 を使用してリクエストを認証する必要があります。
OAuth 2.0 で認証する
Android Developer Console API では、デベロッパー アカウントのリソースとパッケージ名へのアクセスを承認するために OAuth 2.0 認証が必要です。デベロッパー アカウントのデータは、Google Cloud プロジェクトではなくユーザーの Google アカウントに関連付けられているため、サービス アカウント、Workload Identity 連携、API キーを使用して API リクエストを認証することはできません。
OAuth 2.0 スコープ
すべてのオペレーションで次のスコープが必要です。
| OAuth 2.0 スコープ | 説明 |
|---|---|
https://www.googleapis.com/auth/androiddeveloperconsole |
Android Developer Console アカウントのパッケージ名とデータの参照、管理 |
OAuth 2.0 ウェブサーバー フローを実装する
Android Developer Console API と統合するには、アプリケーションで OAuth 2.0 ウェブサーバー フローを使用する必要があります。アプリケーションの種類と自動化のニーズに応じて、次の 2 つの主な認証情報管理戦略から選択できます。
| オプション A(推奨): オフライン / 自動アクセス(CI/CD とサーバーの統合) | オプション B: エフェメラル / インタラクティブ アクセス |
|---|---|
|
この戦略により、自動化されたプロセス(CI/CD パイプラインなど)を人間の介入なしにバックグラウンドで実行できます。 1 回限りのユーザーの同意の設定: 初期設定時に、デベロッパーまたはアカウント所有者がブラウザで 1 回限りの同意フローを完了します。アプリケーションが API スコープとともにオフライン アクセス( access_type=offline)をリクエストします。Google は認証コードを返します。アプリケーションは、この認証コードを最初のアクセス トークンと有効期間の長い更新トークンに交換します。バックグラウンド実行: refresh_token をデプロイ環境またはシークレット マネージャー(GitHub Actions Secrets、Google Secret Manager など)に安全に保存します。以降の API 呼び出しでは、自動化されたワークフローが保存された更新トークンを使用して、必要に応じて有効期間の短い新しいアクセス トークンを取得し、手動ログインや 2FA プロンプトをバイパスします。 |
有効期間の長い更新トークンを環境に保存しないようにする場合、またはアプリケーションがインタラクティブなユーザー コンテキストで実行される場合: 実行時にプロンプトを表示する: オフライン アクセスをリクエストしたり、更新トークンを保存したりしないでください。ツールまたはアプリケーションが実行されるたびに、ユーザーをブラウザの Google OAuth 同意ページにリダイレクトして認証を求める。 有効期間の短いアクセス: ユーザーがログインして同意すると、アプリケーションは有効期間の短いアクセス トークンを直接(または認証コード交換を使用して)受け取ります。このアクセス トークンは API 呼び出しに使用され、実行後に破棄されます。今後の実行では、ユーザーは再認証する必要があります。 |
パッケージ名を登録する
パッケージ名の登録とは、鍵をパッケージ名に関連付けるプロセスです。鍵の登録方法は、Android で新規のパッケージ名に鍵を登録するか、既存のパッケージ名に鍵を登録するかによって異なります。
新しいパッケージ名を登録する
Android で一度も使用されたことのない新規のパッケージ名を登録する場合は、アプリの署名鍵ペアの公開鍵証明書を指定します。
既存のパッケージ名を登録する
既存のパッケージ名を登録するには、既知の署名用の秘密鍵の所有権を証明する必要があります。新規登録の場合とは異なり、API は登録可能な既知の公開証明書フィンガープリントのリストを返します。これらの鍵は直接登録に使用できます。
登録する鍵が「理由が必要」と表示されている場合でも、登録は可能です。ただし、所有権の証明を完了するだけでなく、デベロッパーはパッケージ名を使用する理由も提出する必要があります。
主な資格要件ルール
利用可能な鍵のリストは、パッケージ名の共有を最小限に抑えられるように設計されたパッケージ名の利用資格ルールに基づいて決定されます(Android デベロッパーの確認の一環として導入されました)。
パッケージ名が複数のデベロッパーによって使用されている場合や、複数の署名鍵が存在する場合は、以下のルールに基づいて利用資格が判断されます。
| シナリオ | 直接登録のルール | その他のデベロッパーに適用されるルール |
|---|---|---|
| 過半数を占める鍵所有者 | 既知の合計インストール数の 50% 以上を占める鍵が優先されます。 | その他すべてのデベロッパーは、理由を提示する必要があります。 |
| インストール数が 50 件以上 | 50% 以上を占める鍵が一つもない場合は、インストール数が 50 件以上のすべての鍵が対象になります。 | 50 件を占める鍵がないデベロッパーは、理由を提示する必要があります。 |
| インストール数が 50 件未満 | インストール数 50 件以上という基準値を満たす鍵がない場合は、すべての鍵が先着順で利用可能になります。 | 最初のデベロッパーが登録すると、他のデベロッパーは正当な理由を提示しなければならなくなります。 |
鍵の所有権を確認する
既存のパッケージ名の確認を完了するために、API は確認文字列を提供します。この確認文字列は、アプリのアセット フォルダ内の adi-registration.properties という新しいファイルに含める必要があります。次に、登録する公開鍵に対応する秘密鍵を使用して APK に署名し、アップロードする必要があります。
鍵の登録を正当化する
キーの登録に理由が必要な場合、デベロッパーは詳細なビジネス上の理由を提出する必要があります。Google がこの理由を審査します。パッケージ名の登録の承認には最大で 24 時間ほどかかることがあります。
ユーザー エクスペリエンスのベスト プラクティス
Android Developer Console API を使用するアプリケーションは、シームレスな統合を実現するために、これらのパターンに従うことをおすすめします。
OAuth 認可のコンテキストを明確にする
OAuth 認可をリクエストする前に明示的なコンテキストを提供することで、デベロッパーはアカウントへのアクセスが必要な理由を理解できます。ユーザーを効果的に誘導するには、OAuth 同意画面を起動する前に、想定される機能について明確に説明します。
次の形式で認可コンテキストを構成します。
- タイトル: 「Android Developer Console アカウントをリンクする」
- 概要: 「[application-name] 内で Android デベロッパーの確認用のパッケージ名の登録を管理する」
- 操作ボタン: [Google で続ける] ボタンまたは [Google でログイン] ボタン
デベロッパー アカウントを特定する
ListDeveloperAccountsAPI メソッドと統合して、アクセスが承認されているすべてのデベロッパー アカウントを取得して一覧表示します。- デベロッパーが希望するデベロッパー アカウントを選択できるように、アカウント選択ツールを提供します。
- アカウント
displayNameを目立つように表示し、nameフィールドの口座番号を補助情報として使用します。 - アカウントの確認ステータス(
verificationState)を表示します。VERIFIED: 確認済みのデベロッパー ID を、肯定的な視覚的手がかり(緑色のチェックマークなど)で確認します。NOT_VERIFIED: 確認が完了していないことを示し、アカウントのパッケージ登録を制限します。必要に応じて、アカウントの選択時にデベロッパーを Android Developer Console に誘導するメインの CTA ボタンを指定します。
Google アカウントに関連付けられているデベロッパー アカウントがないために空のレスポンスが返された場合は、メインの CTA ボタンを使用してデベロッパーを Android Developer Console に誘導します。
パッケージ名を管理する
ListAndroidPackagesAPI エンドポイントと統合して、デベロッパー アカウントに関連付けられているすべてのパッケージ名を取得します。デベロッパーがパッケージの状態を効果的にモニタリングできるように、リストやテーブルなど、一元化されたインターフェースを提供します。packageNameを現在の登録ステータス(DRAFT、IN_REVIEW、REGISTERED、PENDING_TRANSFER)とともに表示し、ステータスごとに異なる視覚的なインジケーターを適用します。作成時に「わかりやすい名前」を指定して保存した場合は、必要に応じて表示に含めることができます。
鍵を管理
ListAndroidPackageKeysAPI エンドポイントを呼び出して、パッケージ名に関連付けられているすべてのキーを取得し、デベロッパーに登録ステータスをモニタリングするための構造化された概要(テーブルやリストなど)を提供します。- 各キーの
certificateFingerprintSha256を登録状態(DRAFT、OWNERSHIP_VERIFIED、IN_REVIEW、REGISTERED_ACTIVE、PENDING_TRANSFER)とともに表示し、状態を区別するために異なる視覚的なインジケーターを使用します。
CreateAndroidPackageKeyAPI メソッドと統合することで、デベロッパーが既存のパッケージ名で追加の鍵を登録できるようにします。
パッケージ名を登録する
- デベロッパーがテキスト フィールドにパッケージ名を入力するフォームベースのレイアウトを使用します。ただし、この情報がアプリによってすでに収集されている場合(以前のプロンプトなど)は除きます。
CreateAndroidPackageAPI メソッドを呼び出して、デベロッパー アカウントにパッケージ名を登録し、GetAndroidPackageRegistrationPolicyAPI メソッドを呼び出して、適用される鍵の利用資格ルールを決定します。- パッケージ名に指定された
keySelectionStrategyに基づいて、デベロッパーに次のいずれかを行うよう促します。keySelectionStrategyがSELECT_KEY_FROM_LISTに設定されている場合: 提供されたknownKeysリスト(SHA-256 証明書フィンガープリントを含む)から、登録用の鍵をデベロッパーに選択してもらいます(ラジオボタンを使用するなど)。このフローでは、鍵の所有権の確認が必要です(下記の鍵の所有権を確認するを参照)。keySelectionStrategyがUSE_ANY_KEYに設定されている場合: デベロッパーに鍵を直接指定するよう促します。この場合、鍵の所有権の確認は必要ありません。
CreateAndroidPackageKeyAPI メソッドを呼び出して、選択した鍵を新しいパッケージ名に関連付けます。
または、アップロードされたアプリからパッケージ名またはキーを直接検出して抽出することもできます。
鍵の所有権を確認する
keySelectionStrategy が SELECT_KEY_FROM_LIST に設定されている場合、デベロッパーは秘密署名鍵の所有権を証明する必要があります。所有権の証明には、API で生成された verificationToken を組み込んだ署名付き APK を送信する必要があります。
鍵の所有権の確認をサポートするには、VerifyAndroidPackageKeyOwnership API メソッドを統合し、次のユーザー インターフェース コンポーネントを構築します。
- トークン表示コンポーネント:
verificationTokenをコード スニペット ブロック内に目立つように表示します。これには、便利な [クリップボードにコピー] ボタンも含まれます。 - デベロッパーの設定手順:
verificationTokenを含むadi-registration.propertiesファイルをアプリのアセット フォルダに配置するようデベロッパーに指示する詳細な手順を提供します。 - APK 送信ドロップゾーン: 署名済み APK を受け取るための専用のファイル アップロード ドロップゾーンを提供します。
鍵の登録を正当化する
既知の鍵の justificationRequired フィールドが REQUIRED に設定されている場合、その鍵をパッケージ名とともに登録するには、デベロッパーは詳細なビジネス上の理由を提出する必要があります。
JustifyAndroidPackageKeyRegistration API メソッドを呼び出して、この理由を送信します。アプリケーションのユーザー インターフェースに、デベロッパーから理由を収集するための専用のテキスト入力領域を設け、鍵登録リクエストを送信する前に理由の提供が必要であることをデベロッパーに通知します。Google は、送信された理由を審査します。このプロセスでは、パッケージ名の登録が完了するまでに、承認に最大 24 時間かかることがあります。
マネージド鍵の鍵検証を自動化する
アプリケーションがデベロッパーの署名鍵を管理している場合、デベロッパーは所有権の確認のために APK に手動で署名することはできません。代わりに、VerifyAndroidPackageKeyOwnership API 呼び出しを自動的に実行する必要があります。
トークンの追加と APK のアップロード プロセスを自動的に処理することで、アプリケーションからこれらの手動手順を排除できます。鍵の所有権の確認は、システムに保存されている鍵を使用してアプリケーションによってシームレスに管理されることをデベロッパーに通知してください。
ブランド ガイドラインを遵守する
ユーザーの信頼を維持し、透明性を確保するため、Android Developer Console API と統合するすべてのアプリケーションは、以下のブランド ガイドラインを遵守する必要があります。
用語と大文字の使用
ユーザー向けの資料やドキュメントでこのプロダクトに言及する場合は、常に正式名称の「Android Developer Console」を使用してください。「ADC」という略語は使用しないでください。
このプログラムは、Android デベロッパーの確認と呼ばれます。すべてのコンテキストで、この大文字と小文字の区別とスペルに従ってください。
APK や AAB との混同を避けるため、「パッケージ」ではなく「パッケージ名」という用語を使用します。
パッケージ名を追加するプロセスを説明する場合は、「パッケージ名を申請する」ではなく「パッケージ名を登録する」という表現を使用します。
「ログイン」の行動を促すフレーズを使用する
Android Developer Console での OAuth 2.0 認証は、Google Identity Services に依存しています。Google Identity Services のブランドの取り扱いガイドラインに準拠するため、承認ボタンには「Google で続行」または「Google でログイン」という行動を促すフレーズを使用する必要があります。このテキストは必須であり、変更できません。これにより、ユーザーは Google の認証情報を使用して、アプリケーションが Google アカウントにアクセスすることを承認していることを理解できます。
ブランド アイデンティティと整合性を維持する
Android Developer Console のロゴをアプリケーション インターフェースに組み込む場合は、ビジュアル アイデンティティとブランドの整合性を維持するために、次の仕様に準拠する必要があります。
- ロゴの配置と階層: 公式に承認された Android Developer Console のロゴのみを使用してください。ロゴは、アプリが Google の公式プロダクトであると誤解されないよう、常にアプリの主要なブランディング要素よりも目立たないようにする必要があります。
- 視覚的なスタイルと歪み: アセットは常に、アスペクト比が完全に制限された状態でレンダリングする必要があります。ロゴのコンポーネントを歪めたり、引き伸ばしたり、傾けたり、切り抜いたり、反転したり、変更したりしないでください。公式のカラーパレットを変更したり、前景色と背景色を入れ替えたり、ドロップ シャドウ、グロー効果、装飾的なグラデーションを適用したりしないでください。
- 使用制限: Google が所有するブランド要素を独自のアプリケーション アセットに組み込まないでください。Android Developer Console のロゴアセットは、有効な統合を明示的に示すために、アプリケーション レイアウトのコンテキスト内でのみ使用できます。
参考情報
- Android Developer Console API リファレンス
- Android デベロッパー ID Status API でアプリの登録ステータスを確認する
- Android Developer Console に登録する
- Google Play Console に登録する
- アプリに署名する