複数ユーザーの認証ワークフロー

マルチユーザー認証ワークフローでは、独自の OAuth フローを構築してユーザーを認証します。Google Identity ドキュメントの一部として説明されているアプリタイプと、そのアプリタイプをサポートするために必要な Google Cloud Console プロジェクト構成は複数あります。これらのアプリタイプはすべて Google Ads API でサポートされています。その他の技術的な留意点は次のとおりです。

  1. Google Ads API にアクセスするには、次のスコープで認証を行うようにアプリケーションを構成する必要があります。

    https://www.googleapis.com/auth/adwords 
  2. アプリは、ユーザーがオフラインの間にユーザーに代わって API 呼び出しを行う必要がある場合があります。一般的なシナリオは、アカウント指標をオフラインでダウンロードしてレポートを生成し、アカウント分析を行うことです。このため、OAuth オフライン アクセスをリクエストすることをおすすめします。

  3. OAuth アプリの検証プロセスに沿って、アプリの認証を取得する必要があります。

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

ユーザーを承認して OAuth 2.0 認証情報を取得したら、プログラミング言語に対応するタブの手順に沿ってクライアント ライブラリを構成できます。

Java

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

UserCredentials credentials =     UserCredentials.newBuilder()         .setClientId(OAUTH_CLIENT_ID)         .setClientSecret(OAUTH_CLIENT_SECRET)         .setRefreshToken(REFRESH_TOKEN)         .build();  // Creates a GoogleAdsClient with the provided credentials. GoogleAdsClient client =     GoogleAdsClient.newBuilder()         // Sets the developer token which enables API access.         .setDeveloperToken(DEVELOPER_TOKEN)         // Sets the OAuth credentials which provide Google Ads account access.         .setCredentials(credentials)         // Optional: sets the login customer ID.         .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))         .build(); ``` See the [configuration guide][java-config-guide] for additional options. 

.NET

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig() {     DeveloperToken = DEVELOPER_TOKEN,     LoginCustomerId = LOGIN_CUSTOMER_ID,     OAuth2ClientId = OAUTH_CLIENT_ID,     OAuth2ClientSecret = OAUTH_CLIENT_SECRET,     OAuth2RefreshToken = REFRESH_TOKEN, };  GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig); 

その他のオプションについては、構成ガイドをご覧ください。

Python

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

from google.ads.googleads.client import GoogleAdsClient  credentials = {     "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",     "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",     "refresh_token": "REFRESH_TOKEN",     "client_id": "OAUTH_CLIENT_ID",     "client_secret": "OAUTH_CLIENT_SECRET"}  client = GoogleAdsClient.load_from_dict(credentials) 

その他のオプションについては、構成ガイドをご覧ください。

PHP

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

$oAuth2Credential = (new OAuth2TokenBuilder()) ->withClientId('INSERT_CLIENT_ID_HERE') ->withClientSecret('INSERT_CLIENT_SECRET_HERE') ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE') ->build();  $googleAdsClient = (new GoogleAdsClientBuilder())     ->withOAuth2Credential($oAuth2Credential)     ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')     ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')     ->build(); 

その他のオプションについては、構成ガイドをご覧ください。

Ruby

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

  client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|     config.client_id = 'INSERT_CLIENT_ID_HERE'     config.client_secret = 'INSERT_CLIENT_SECRET_HERE'     config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'     config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'     config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'   end 

その他のオプションについては、構成ガイドをご覧ください。

Perl

API 呼び出しを行うアカウントのユーザーから取得した認証情報を使用して、実行時に GoogleAdsClient インスタンスを初期化できます。

my $api_client = Google::Ads::GoogleAds::Client->new({   developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",   login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE" });  my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler(); $oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID"); $oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET"); $oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");  

その他のオプションについては、構成ガイドをご覧ください。

curl

まず、HTTP クライアントを使用して OAuth 2.0 アクセス トークンを取得します。このガイドでは、curl コマンドを使用します。

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

これで、API 呼び出しでアクセス トークンを使用できるようになりました。次の例は、GoogleAdsService.SearchStream メソッドを使用してキャンペーン レポートを実行し、アカウント内のキャンペーンを取得する方法を示しています。このガイドでは、レポートの詳細については説明しません。

curl -i -X POST https://googleads.googleapis.com/v22/customers/CUSTOMER_ID/googleAds:searchStream \    -H "Content-Type: application/json" \    -H "Authorization: Bearer ACCESS_TOKEN" \    -H "developer-token: DEVELOPER_TOKEN" \    -H "login-customer-id: LOGIN_CUSTOMER_ID" \    --data-binary "@query.json"

query.json の内容は次のとおりです。

{   "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id" }