他の Google API と同様に、Google Ads API では、認証および承認に OAuth 2.0 プロトコルを使用しています。OAuth 2.0 を使うことで、Google Ads API クライアント アプリケーションは、ユーザーのログイン情報を保存したり処理したりしなくてもユーザーの Google 広告アカウントにアクセスできるようになります。
Google 広告のアクセスモデルについて
Google Ads API を効果的に使用するには、Google 広告のアクセスモデルの仕組みを理解する必要があります。Google 広告のアクセスモデル ガイドをお読みになることを強くおすすめします。
OAuth ワークフロー
Google Ads API を使用する際に使用される一般的なワークフローは 3 つあります。
サービス アカウントのフロー
ワークフローでユーザーの操作が必要ない場合は、このワークフローをおすすめします。このワークフローでは、ユーザーがサービス アカウントを Google 広告アカウントに追加する構成手順が必要です。その後、アプリはサービス アカウントの認証情報を使用して、ユーザーの Google 広告アカウントを管理できます。ライブラリは次のように構成されます。
// Initialize a GoogleAdsConfig class.
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = ******
};
// Initialize a GoogleAdsClient class.
GoogleAdsClient client = new GoogleAdsClient(config);
詳しくは、サービス アカウントのワークフロー ガイドをご覧ください 。
シングル ユーザー認証フロー
サービス アカウントを使用できない場合は、このワークフローを使用できます。このワークフローでは、次の 2 つの構成手順が必要です。
- Google Ads API を使用して管理するすべてのアカウントへのアクセス権を 1 人のユーザーに付与します。一般的な方法としては、Google Ads API の MCC アカウントへのアクセス権をユーザーに付与し、その MCC アカウントの下にあるすべての Google 広告アカウントをリンクします。
- ユーザーは、gcloud などのコマンドライン ツールまたは
GenerateUserCredentialsコードサンプルを実行して、 すべての Google 広告アカウントをユーザーに代わって管理する権限をアプリに付与します。
ライブラリは、ユーザーの OAuth 2.0 認証情報を使用して次のように初期化できます。
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);
詳しくは、シングル ユーザー認証ワークフロー ガイドを ご覧ください。
マルチユーザー認証フロー
アプリでユーザーがログインし、ユーザーに代わって Google 広告アカウントを管理する権限をアプリに付与できるようにする場合は、このワークフローをおすすめします。アプリは OAuth 2.0 ユーザー認証情報を構築して管理します。ライブラリは、ユーザーの認証情報を使用して次のように初期化できます。
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);
詳しくは、マルチユーザー認証ワークフロー ガイドを ご覧ください。.NET クライアント ライブラリには、参照用のコードサンプルが 2 つ含まれています。
AuthenticateInAspNetCoreApplicationコード サンプルは、実行時にユーザー認証 を取得して、ユーザーに代わって Google 広告アカウントを管理するウェブアプリを構築する方法を示しています。アプリはユーザーの OAuth 2.0 認証情報を使用して、Google 広告アカウントのキャンペーンを取得します。GenerateUserCredentials は、実行時にユーザー認証を取得して、ユーザーに代わって Google 広告アカウントを管理する方法を示すコマンドライン コードサンプルです。このコードサンプルを参照して、ユーザー認証を必要とするデスクトップ アプリを構築できます。
ユーザーが複数のアカウントを管理している場合はどうすればよいですか?
ユーザーが複数の Google 広告アカウントを管理していることはよくあります。アカウントに直接アクセスする場合と、Google 広告の MCC アカウントを使用する場合があります。.NET クライアント ライブラリには、このようなケースを処理する方法を示す次のコードサンプルが用意されています。
- GetAccountHierarchy コードサンプルは、Google 広告の MCC アカウントの下にあるすべてのアカウントのリストを取得する方法を 示しています。
- ListAccessibleCustomers コードサンプルは、ユーザーが直接アクセスできるすべてのアカウントのリストを取得する方法を示しています。これらのアカウントは、
LoginCustomerId設定の有効な値として使用できます。
アプリケーションのデフォルト認証情報
.NET クライアント ライブラリでは、 アプリケーションのデフォルト認証情報を使用した認証もサポートされています。
これは、ローカル開発や、さまざまな Google API に対する開発に特に便利です。正しい OAuth 2.0 スコープにアクセスできる限り、同じ認証情報を再利用できます。
Google Ads API の場合、アプリケーションのデフォルト認証情報が https://www.googleapis.com/auth/adwords OAuth2.0 スコープにアクセスできることを確認してください。
アプリケーションのデフォルト認証情報を使用するには、GoogleAdsConfig で UseApplicationDefaultCredentials オプションを true に設定します。これは、クライアント ライブラリで他の構成プロパティを設定する場合と同じ方法で、コード内、構成ファイル内、または環境変数を使用して行うことができます。
.NET クライアント ライブラリを構成するための利用可能なオプションの詳細については、構成 ページをご覧ください。