次の表に、アプリが管理する必要がある認証情報をまとめます。アプリタイプの詳細については、Google Identity OAuth 2.0 のドキュメントをご覧ください。
| 認証ワークフロー | 認証情報 | 認証情報の種類 | 目的 |
|---|---|---|---|
|
JavaScript ウェブアプリ Android アプリ |
OAuth クライアント ID | アプリの認証情報 | OAuth フロー中にアプリを一意に識別します。 |
| アクセス トークンと更新トークン | ユーザー認証情報 | ユーザーがアプリに Google 広告アカウントへのアクセス権を付与したことを表します。 | |
|
サーバーサイド ウェブアプリ パソコンアプリと iOS アプリ テレビとデバイスアプリ |
OAuth クライアント ID とクライアント シークレット | アプリの認証情報 | OAuth フロー中にアプリを一意に識別します。 |
| アクセス トークンと更新トークン | ユーザー認証情報 | ユーザーがアプリに Google 広告アカウントへのアクセス権を付与したことを表します。 | |
| サービス アカウント | OAuth サービス アカウント キー | アプリの認証情報 | OAuth リクエストの署名に使用されます。 |
| サービス アカウントのアクセス トークン | ユーザー認証情報 | ユーザーが Google 広告アカウントをサービス アカウントと共有している場合の、サービス アカウントの認可を表します。 |
Google Ads API アプリの認証情報を管理する際には、考慮すべき点がいくつかあります。
アプリの認証情報を安全に処理する
アプリの認証情報とは、アプリに固有の設定であり、ユーザーごとに異なることはありません。OAuth アプリの認証情報は、アプリの ID を使用してユーザー情報にアクセスできるため、細心の注意を払って取り扱ってください。OAuth アプリの認証情報は、パスワードと同様に安全な場所に保管して保護してください。可能であれば、Google Cloud Secret Manager などのシークレット マネージャーを使用してアプリの認証情報を保存します。クライアント認証情報を一般公開されているコード リポジトリにコミットしないでください。コード リポジトリに commit しないことを強くおすすめします。
ユーザーの認証情報を安全に処理する
ユーザー認証情報とは、ユーザーの認可を表す OAuth トークンを指します。これらのトークンは、ユーザーがアプリを直接認証するか、Google 広告アカウントをサービス アカウントと間接的に共有することで、ユーザーに代わって操作やデータへのアクセスを行う権限を付与するユーザーから委託されます。トークンを平文で送信しないでください。また、データ侵害が発生した場合に備えて、暗号化されたトークンを保存してください。ユーザーのアカウントへのアクセスが不要になったら、トークンまたはサービス アカウントの権限を取り消します。トークンが取り消されたら、アプリケーションまたはシステムから完全に削除します。
更新トークンの取り消しと有効期限を処理する
ユーザー認証フローを使用する場合は、更新トークンがいつでも無効になる可能性があることに注意してください。たとえば、マルチユーザー認証フローを使用している場合、ユーザーがアプリへのアクセスを取り消すことがあります。シングルユーザー認証フローを使用するアプリは、このような影響を受ける可能性は低いですが、ユーザーを保護するために設計された手動または自動のプロセスによって更新トークンが消去されることや、更新トークンの有効期限が切れることがあります。アプリでトークンの取り消し通知が必要な場合は、ユーザーに優れたエクスペリエンスを提供するために、クロスアカウント保護機能サービスと統合する必要があります。
API リクエスト間でユーザー認証情報を再利用する
OAuth アクセス トークンは有効期間が短く、1 時間後に期限切れになります。Google Ads API クライアント ライブラリを使用する場合、ライブラリはアクセス トークンの有効期限を処理し、スレッドセーフな方法で更新します。適切な OAuth 認証情報を使用して Google Ads API クライアント オブジェクトを作成し、そのライフサイクル全体で再利用します。
独自のアクセス トークンの更新と管理戦略を構築する場合は、アクセス トークンの有効期限を追跡し、有効な間はトークンを再利用します。トークンの更新をリクエストすると、認可サーバーは新しいアクセス トークンと残りの有効期間(秒単位)(expires_in)を返します。有効期限が 5 分未満の場合は、アクセス トークンを事前に更新することをおすすめします。