このガイドでは、サービス アカウントを使用して 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 サービスへのアクセスを許可するキーファイルを保護することが重要です。このサービス アカウントはドメイン内のすべてのユーザーになりすますことができるため、これは特に当てはまります。
また、必要最小限の API セットにのみサービス アカウントへのアクセスを許可することをおすすめします。これは、サービス アカウントのキーファイルが不正使用された場合に攻撃者がアクセスできるデータ量を制限する予防措置です。