認証と HTTP ヘッダー

Google Ads API を呼び出す場合は、OAuth 2.0 認証情報が必要です。Google 広告クライアント センター(MCC)アカウントで API 呼び出しを行う場合は、リクエストごとに login-customer-id ヘッダーも指定する必要があります。このページでは、これらの値を設定する方法について説明し、REST インターフェースを使用するときに送受信される API 固有の HTTP ヘッダーについても説明します。

OAuth 2.0 認証情報

Google Ads API は、API リクエストの承認に OAuth 2.0 を使用します。OAuth 2.0 のユーザー認証フローとサービス アカウント フローの両方がサポートされています。詳しくは、Google Ads API の OAuth 2.0 をご覧ください。

Google API を初めて使用する場合は、gcloud CLI または OAuth 2.0 Playground を使用して、アプリのコードを記述する前に OAuth 2.0 認証情報と Google Ads API をテストできます。

OAuth 2.0 認証ワークフローを実装するには、https://oauth.net/code/ で入手できる OAuth 2.0 ライブラリのいずれかを使用することをおすすめします。ただし、ご自身で実装する必要がある場合に備えて、curl の手順を記載しています。

サービス アカウント

手順に沿って、Google Ads API 用の Google Cloud プロジェクトを構成します。サービス アカウントのメールアドレスとサービス アカウント キーを記録します。次に、サービス アカウント ガイドの共通の手順に沿って、Google 広告アカウントにアクセスするようにサービス アカウントを設定します。

ユーザー認証

手順に沿って、Google Ads API 用に Google Cloud コンソール プロジェクトを構成します。クライアント ID とクライアント シークレットを記録します。次に、デスクトップ アプリのフローの手順またはウェブアプリのフローの手順に沿って、更新トークンとアクセス トークンを生成します。Google Ads API へのアクセスに使用する scope は https://www.googleapis.com/auth/adwords です。

新しいアクセス トークンを生成する

サービス アカウント

サービス アカウントのメールアドレスとサービス アカウント キーを取得したら、サーバー間アプリケーションでの OAuth 2.0 の使用ガイドに沿って JWT クレーム セットを生成します。このクレーム セットは、OAuth 2.0 アクセス トークンを取得するために交換できます。ガイドに沿って操作する際は、必ず HTTP/REST タブを選択してください。Google Ads API へのアクセスに使用する OAuth 2.0 scope は https://www.googleapis.com/auth/adwords です。また、設定手順でサービス アカウントに Google 広告アカウントへの直接アクセス権が付与されるため、JWT クレーム セットを構築する際に sub パラメータをスキップできます。これにより、Google 広告ユーザーの権限借用が不要になります。

次に、Google Ads API へのすべての API 呼び出しの Authorization HTTP ヘッダーでアクセス トークンを使用します。

GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN

ユーザー認証

OAuth 2.0 のクライアント ID、クライアント シークレット、更新トークンを取得したら、curl コマンドライン ツールを使用して、API 呼び出しで使用する新しいアクセス トークンを生成できます。

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

次に、curl リクエストから返されたアクセス トークンを、Google Ads API へのすべての API 呼び出しの Authorization HTTP ヘッダーで使用します。

GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN

リクエスト ヘッダー

以降のセクションでは、Google Ads API にリクエストを行う際に必要となる、または使用される HTTP ヘッダーについて説明します。

ログイン用お客様 ID

クライアント アカウントに対して MCC アカウントから Google Ads API 呼び出しを行う場合(つまり、MCC アカウントとしてログインして、クライアント アカウントの 1 つに対して API 呼び出しを行う場合)は、login-customer-id HTTP ヘッダーも指定する必要があります。この値は、API 呼び出しを行うクライアント センターの Google 広告クライアント ID を表します。

このヘッダーを含めることは、ログイン後またはページの右上にあるプロフィール画像をクリックした後に Google 広告の UI でアカウントを選択することと同じです。顧客 ID を指定する際は、ハイフン(—)を必ず削除してください。例: 1234567890(123-456-7890 ではない)。ログイン用のお客様 ID について詳しくは、Google 広告のアクセスモデル ガイドをご覧ください。

GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID

リンクされているお客様 ID

リンクされたお客様 ID ヘッダーは、リンクされた Google 広告アカウントに対してアクションを実行する際に、パートナー(サードパーティ製アプリ分析プロバイダやデータ パートナーなど)によって使用されます。詳細については、API 呼び出しの構造ガイドをご覧ください。

Authorization: Bearer ACCESS_TOKEN
login-customer-id: PARTNER_CUSTOMER_ID
linked-customer-id: ADVERTISER_CUSTOMER_ID

レスポンス ヘッダー

API からの HTTP レスポンスでは、次のヘッダーが返されます。

リクエスト ID

request-id は、API リクエストを一意に識別する文字列です。特定の API 呼び出しに関する問題のデバッグやトラブルシューティングを行う場合は、Google デベロッパー サポートに問い合わせる際に request-id が重要な識別子となります。

request-id: 2a5Cj89VV7CNhya1DZjjrC