Google Ads API クライアント ライブラリには、ライブラリの動作をカスタマイズするために使用できる構成設定がいくつか用意されています。
実行時にライブラリを構成する
クライアント ライブラリを構成する推奨の方法は、実行時に GoogleAdsConfig オブジェクトを初期化することです。
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
代替構成オプション
このライブラリには、構成設定を読み込むための追加オプションも用意されています。これらを有効にするには、プロジェクトの Google.Ads.GoogleAds.Extensions パッケージに NuGet 参照を追加します。
これらのオプションのいずれかを使用する場合、構成設定は自動的に取得されません。次のセクションに示すように、明示的に読み込む必要があります。外部ファイルまたはストリームから設定を読み込むときは、ファイル I/O 例外(FileNotFoundException や UnauthorizedAccessException など)を処理するようにしてください。
App.config を使用する
Google Ads API 固有の設定はすべて、App.config ファイルの GoogleAdsApi ノードに保存されます。一般的な構成 App.config は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi"
type="System.Configuration.DictionarySectionHandler" />
</configSections>
<GoogleAdsApi>
<!-- Set the service timeout in milliseconds. -->
<add key="Timeout" value="2000" />
<!-- Proxy settings for library. -->
<add key="ProxyServer" value="http://localhost:8888" />
<add key="ProxyUser" value="" />
<add key="ProxyPassword" value="" />
<add key="ProxyDomain" value="" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
App.config ファイルから構成設定を読み込むには、GoogleAdsConfig オブジェクトの LoadFromDefaultAppConfigSection メソッドを呼び出します。
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
別の App.config ファイルを指定する
App.config を整理したい場合は、configSource プロパティを使用して、ライブラリ固有の構成を独自の構成ファイルに移動できます。
App.configでconfigSourceを指定します。外部構成ファイルを参照するようにApp.configを変更します。<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>構成ファイルの内容を指定します。
configSource(GoogleAdsApi.config)で指定した名前の別の構成ファイルを作成し、App.configからこのファイルにGoogleAdsApi構成ノードを移動します。<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>.csprojのビルドルールを更新します。新しい構成ファイルをプロジェクトに含め、その [出力ディレクトリにコピー] プロパティを [常にコピー] に設定します。プロジェクトを再ビルドして実行し、アプリケーションが新しい構成ファイルから値を取得するようにします。
カスタム JSON ファイルを使用する
IConfigurationRoot インスタンスを使用して、クライアント ライブラリを構成できます。
JSON ファイルを作成する
App.config ファイルと同様の構造を持つ GoogleAdsApi.json という名前の JSON ファイルを作成します。
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
構成を読み込む
次に、JSON ファイルを IConfigurationRoot に読み込みます。
ConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
settings.json を使用する
このプロセスは、カスタム JSON ファイルを使用する場合と似ていますが、キーは GoogleAdsApi という名前のセクション内に配置する必要があります。
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
次に、アプリケーションの IConfiguration インスタンスから GoogleAdsApi セクションを抽出します(たとえば、ASP.NET Core によって挿入されたり、ConfigurationBuilder でビルドされたりします)。
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
また、config.LoadFromSettingsJson(filePath, "GoogleAdsApi") を使用してパスから settings.json ファイルを直接読み込むか、config.TryLoadFromEnvironmentFilePath を使用して GOOGLE_ADS_CONFIGURATION_FILE_PATH 環境変数(EnvironmentVariableNames.CONFIG_FILE_PATH)から読み込むこともできます。
環境変数を使用する
環境変数を使用して GoogleAdsClient を初期化することもできます。
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
サポートされている環境変数の全リストをご覧ください。
汎用ストリームを使用する
暗号化されたものを含む、汎用ストリームから構成またはその一部を読み込むこともできます。
GoogleAdsConfig config = new GoogleAdsConfig()
{
// Set some configuration properties in code.
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
構成フィールド
以降のセクションでは、Google Ads .NET ライブラリでサポートされている設定について説明します。
接続の設定
Timeout: このキーを使用して、サービス タイムアウトをミリ秒単位で設定します。デフォルト値は、googleads_grpc_service_config.jsonのmethod_config/timeout設定に基づいて設定されます。API 呼び出しの最大時間を短く制限する必要がある場合は、小さい値を設定します。タイムアウトは 2 時間以上に設定できますが、API は実行時間が非常に長いリクエストをタイムアウトして、DEADLINE_EXCEEDEDエラーを返すことがあります。ProxyServer: プロキシを使用してインターネットに接続する場合は、HTTP プロキシ サーバーの URL に設定します。ProxyUser: プロキシ サーバーに対する認証に必要なユーザー名に設定します。ユーザー名が不要な場合は、このフィールドを空のままにします。ProxyPassword:ProxyUserの値を設定した場合は、ProxyUserのパスワードに設定します。ProxyDomain: プロキシ サーバーで設定が必要な場合は、ProxyUserのドメインに設定します。MaxReceiveMessageLengthInBytes: この設定を使用して、クライアント ライブラリが処理できる API レスポンスの最大サイズを増やします。デフォルト値は 64 MB です。MaxMetadataSizeInBytes: この設定を使用して、クライアント ライブラリが処理できる API エラー レスポンスの最大サイズを増やします。デフォルト値は 16 MB です。
MaxReceiveMessageLengthInBytes と MaxMetadataSizeInBytes の設定を調整して、特定の ResourceExhausted エラーを修正します。これらの設定は、次のような形式のエラーに対処します。
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
この例では、メッセージ サイズ(423184132 bytes)がライブラリで処理できるサイズ(67108864 bytes)よりも大きいため、エラーが発生しています。このエラーを回避するには、MaxReceiveMessageLengthInBytes を 500000000 に増やします。このエラーは、コードが非常に大きなレスポンス オブジェクト(大きな SearchGoogleAdsResponse など)を処理したことも示しています。これは、.NET のラージ オブジェクト ヒープが原因で、コードのパフォーマンスに影響する可能性があります。パフォーマンスの問題が発生した場合は、API 呼び出しの再編成やアプリの一部の再設計を検討する必要があります。
OAuth2 の設定
OAuth 2.0 を使用して Google Ads API サーバーに対する呼び出しを承認する場合は、次の構成キーを設定する必要があります。
AuthorizationMethod:OAuth2に設定します。OAuth2Mode:APPLICATIONまたはSERVICE_ACCOUNTに設定します。OAuth2ClientId: この値は OAuth 2.0 クライアント ID に設定します。OAuth2ClientSecret: この値を OAuth 2.0 クライアント シークレットに設定します。OAuth2Scope: 複数の API に対して OAuth 2.0 トークンを承認する場合は、この値を異なるスコープに設定します。この設定は省略可能です。UseApplicationDefaultCredentials: この値をtrueに設定して、アプリケーションのデフォルト認証情報を使用して認証します(Google.Ads.GoogleAdsv24.1.0以降でサポートされています。config.LoadFromEnvironmentVariables()は、プレフィックスなしのUSE_APPLICATION_DEFAULT_CREDENTIALS環境変数を読み取ります)。Credentials: (ランタイムのみ、v27.0.0以降でサポート) 事前構築されたICredentialインスタンスまたはGoogleCredentialインスタンスをランタイム時にGoogleAdsConfigに直接挿入します。
OAuth2Mode == APPLICATION を使用している場合は、次の追加の構成キーを設定する必要があります。
OAuth2RefreshToken: OAuth 2.0 トークンを再利用する場合は、この値を事前に生成された OAuth 2.0 更新トークンに設定します。この設定は省略可能です。OAuth2RedirectUri: この値は OAuth 2.0 リダイレクト URL に設定します。この設定は省略可能です。
詳細については、次のガイドをご覧ください。
OAuth2Mode == SERVICE_ACCOUNT を使用している場合は、次の追加の構成キーを設定する必要があります。
OAuth2SecretsJsonPath: この値は、OAuth 2.0 JSON 鍵ファイルのパスに設定します。OAuth2PrnEmail: Google Workspace のドメイン全体の委任を使用する場合は、この値を権限借用するアカウントのメールアドレスに設定します。この設定は省略可能です。
詳細については、OAuth サービス アカウント フローガイドをご覧ください。
交通手段の設定
UseGrpcCore: この設定をtrueに設定して、基盤となるトランスポート レイヤとしてGrpc.Coreライブラリを使用します。Grpc.Coreライブラリを使用するをご覧ください。
Google Ads API の設定
以下は、Google Ads API に固有の設定です。
DeveloperToken:v27.3.0以降では省略可(GOOGLE_ADS_DEVELOPER_TOKEN)。デベロッパー トークンは 2026 年 9 月 9 日に廃止されました。API サーバーでは、クライアント ライブラリのバージョンに関係なく、Google Cloud プロジェクトによってアクセスレベルが決定されます。また、API サーバーはdeveloper-tokenヘッダーを無視します(Google Ads API の将来のメジャー バージョンで拒否されるまで)。構成からDeveloperTokenを省略または削除するには、Google.Ads.GoogleAdsv27.3.0以降を使用します。このバージョンでは、ローカル クライアントサイドのDeveloperToken検証が削除されました(以前のバージョンでは、ローカル検証に空でないDeveloperTokenが必要です)。LoginCustomerId: これは、リクエストで使用する承認済みのお客様の ID です。ハイフンは含めません(-)。LinkedCustomerId: このヘッダーは、Google 広告管理画面のリンク済みアカウント(Google Ads API のAccountLinkリソース)で権限が付与されている場合に、エンティティのリソースを更新するメソッドでのみ必要です。この値を、指定された顧客 ID のリソースを更新するデータ プロバイダの顧客 ID に設定します。ハイフンなし(-)で設定する必要があります。 リンクされたアカウントの詳細をご覧ください。