このガイドでは、サービス アカウントを使用して Google Ads API にアクセスする方法について説明します。
サービス アカウントは、個々のエンドユーザーではなく、アプリに属するアカウントです。サービス アカウントを使用すると、ウェブアプリと Google サービス間のサーバー間のやり取りが可能になります。アプリはサービス アカウントに代わって Google API を呼び出すため、ユーザーは直接関与しません。
サービス アカウントは手動認証を必要としない OAuth2 フローに対応しており、アプリケーションだけがアクセスできるキーファイルを使用します。
サービス アカウントの主なメリットは次の 2 つです。
- Google API へのアクセスに必要な承認作業を、設定の一環として行います。そのため、手動操作が必要となる OAuth2 の他のフローでは、関連する面倒な作業が必要ありません。
- OAuth2 アサーション フローを使用すると、必要に応じてアプリが他のユーザーの権限を借用できます。
前提条件
- 所有している Google Workspace ドメイン(
mydomain.com
、mybusiness.com
など)。 - Google Ads API 開発者トークン(可能な場合はテスト アカウントも)
- 使用している言語用のクライアント ライブラリ
- Google Ads API 用に設定された Google API Console プロジェクト。
- アクセスしたい Google 広告アカウントの権限を持つ Google 広告ユーザー。 Google 広告では、権限借用のないサービス アカウントの使用はサポートされていません。
サービス アカウントのアクセスの設定
ユーザーの権限借用はドメインレベルでのみ制御されるため、Google OAuth2 でサービス アカウントとアサーション フローを使用するには、独自のドメインを Google Workspace に登録する必要があります。これにより、アプリとそのユーザーは、ドメイン内の任意のユーザーになりすますことができます。
まず、サービス アカウントと認証情報を作成します。
JSON 形式でサービス アカウント キーをダウンロードし、サービス アカウント ID をメモします。
サービス アカウント ID と Google Ads API のスコープ(
https://www.googleapis.com/auth/adwords
)をドメイン管理者と共有します。ドメイン全体の権限をサービス アカウントに委任するようドメイン管理者にリクエストします。
ドメイン管理者の方は、ヘルプセンターの手順を完了してください。
これで、サービス アカウントを使用して、OAuth2 アサーション フローで Google 広告アカウントにアクセスできるようになりました。
クライアント ライブラリの構成
以下からご使用の言語を選択し、手順に従ってクライアント ライブラリを設定してください。
Java
.NET
Python
PHP
Ruby
Perl
セキュリティに関する懸念
サービス アカウントには Google Workspace ドメインに対するドメインレベルの委任制御があるため、サービス アカウントが認可されている Google サービスにアクセスできるようにする鍵ファイルを保護することが重要です。このサービス アカウントは、ドメイン内の任意のユーザーになりすますことができるため、これは特に重要です。
もう 1 つのおすすめの方法は、必要最小限の API セットにのみサービス アカウントへのアクセスを許可することです。これは、サービス アカウントのキーファイルが不正使用された場合に、攻撃者がアクセスできるデータの量を制限するための予防措置です。