サービス アカウント

このガイドでは、サービス アカウントを使用して Google Ads API にアクセスする方法について説明します。

サービス アカウントは、個々のエンドユーザーではなく、アプリに属しているアカウントです。サービス アカウントを使用すると、ウェブアプリと Google サービスの間でサーバー間のやり取りを行うことができます。アプリがサービス アカウントに代わって Google API を呼び出すため、ユーザーが直接関与することはありません。

サービス アカウントは手動認証を必要としない OAuth2 フローに対応しており、アプリケーションだけがアクセスできるキーファイルを使用します。

サービス アカウントの主なメリットは次の 2 つです。

  • Google API へのアクセスに必要な承認作業を、設定の一環として行います。そのため、手動操作が必要となる OAuth2 の他のフローでは、関連する面倒な作業が必要ありません。
  • OAuth2 アサーション フローにより、アプリは必要に応じて他のユーザーの権限を借用できます。

前提条件

  • 自身が所有する Google Workspace ドメインmydomain.commybusiness.com など)。
  • Google Ads API 開発者トークン(可能な場合はテスト アカウントも)
  • 使用している言語用のクライアント ライブラリ
  • Google Ads API 用に設定されている Google API Console プロジェクト。
  • アクセスしたい Google 広告アカウントに対する権限を持つ Google 広告ユーザー。 Google 広告では、権限借用なしでサービス アカウントを使用することはできません。

サービス アカウントのアクセスの設定

ユーザーの権限借用はドメインレベルでのみ制御されるため、Google OAuth2 でサービス アカウントとアサーション フローを使用するには、独自のドメインを Google Workspace に登録する必要があります。これにより、アプリとそのユーザーはドメイン内の任意のユーザーになりすますことができます。

  1. まず、サービス アカウントと認証情報を作成します。

    サービス アカウント キーを JSON 形式でダウンロードし、サービス アカウント ID をメモします。

  2. サービス アカウント ID と Google Ads API スコープ(https://www.googleapis.com/auth/adwords)をドメイン管理者と共有します。

    ドメイン全体の権限をサービス アカウントに委任するようドメイン管理者に依頼します。

  3. ドメイン管理者の方は、ヘルプセンターの手順を完了してください。

これで、サービス アカウントを使用して、OAuth2 アサーション フローで Google 広告アカウントにアクセスできるようになりました。

クライアント ライブラリの構成

以下からご使用の言語を選択し、手順に従ってクライアント ライブラリを設定してください。

セキュリティに関する懸念

サービス アカウントには Google Workspace ドメインに対するドメインレベルの委任制御があるため、サービス アカウントが承認された Google サービスへのアクセスを許可するキーファイルを保護することが重要です。このサービス アカウントはドメイン内のすべてのユーザーになりすますことができるため、これは特に当てはまります。

また、必要最小限の API セットにのみサービス アカウントへのアクセスを許可することをおすすめします。これは、サービス アカウントのキーファイルが不正使用された場合に攻撃者がアクセスできるデータ量を制限する予防措置です。