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 Console プロジェクトを設定します。クライアント 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 /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_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 /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
リクエスト ヘッダー
開発者トークン
Google Ads API では、API を呼び出すためにデベロッパー トークンも必要です。開発者トークンをすでにお持ちの場合は、https://ads.google.com/aw/apicenter にアクセスして確認できます。メッセージが表示されたら、Google 広告の MCC アカウントにログインします。お持ちでない場合は、デベロッパー トークンに登録する手順に沿って登録してください。
Google Ads API へのすべての API 呼び出しの developer-token HTTP ヘッダーに、デベロッパー トークンの値を含める必要があります。
GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
ログイン用お客様 ID
クライアント アカウントに対してマネージャーが行う Google Ads API 呼び出し(つまり、マネージャーとしてログインしてクライアント アカウントの 1 つに対して API 呼び出しを行う場合)では、login-customer-id HTTP ヘッダーも指定する必要があります。この値は、API 呼び出しを行うクライアント センターの Google 広告クライアント ID を表します。
このヘッダーを含めることは、ログインした後に Google 広告 UI でアカウントを選択するか、ページの右上にある自分のプロフィール画像をクリックすることと同じです。お客様 ID を指定する際は、必ずハイフン(—)を削除してください。例: 1234567890(123-456-7890 ではない)。ログイン用のお客様 ID について詳しくは、Google 広告のアクセスモデル ガイドをご覧ください。
GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
リンクされているお客様 ID
Linked customer ID ヘッダーは、[第三者アプリ分析プロバイダがリンクされた Google 広告アカウントにコンバージョンをアップロードする場合にのみ使用されます。詳細については、API 呼び出しの構造ガイドをご覧ください。
...
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
linked-customer-id: LINKED_CUSTOMER_ID
レスポンス ヘッダー
API からの HTTP レスポンスで返されるヘッダーは次のとおりです。
リクエスト ID
request-id は、API リクエストを一意に識別する文字列です。特定の API 呼び出しに関する問題のデバッグやトラブルシューティングを行う場合、request-id は Google デベロッパー サポートにお問い合わせの際に重要な識別子となります。
request-id: 2a5Cj89VV7CNhya1DZjjrC