Google Ads API クライアント ライブラリには、ライブラリの動作をカスタマイズするために使用できるいくつかの構成設定が用意されています。
実行時にライブラリを構成する
クライアント ライブラリを構成する際は、次のように GoogleAdsConfig
オブジェクトを初期化することをおすすめします。
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = "APPLICATION",
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
別の構成オプション
また、クライアント ライブラリを構成するための追加のオプションも用意されています。それらを有効にするには、プロジェクトの Google.Ads.GoogleAds.Extensions
パッケージに Nuget 参照を追加します。
これらのオプションのいずれかを使用した場合、構成設定が自動的に取得されないため、以下に示すように明示的に読み込む必要があります。
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=""/>
<!-- API-specific settings -->
<add key="DeveloperToken" value="******"/>
<!-- OAuth2 settings -->
<add key = "OAuth2Mode" value="APPLICATION"/>
<add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
<add key = "OAuth2ClientSecret" value = "******" />
<add key = "OAuth2RefreshToken" value = "******" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
App.config
ファイルから構成設定を読み込むには、GoogleAdsConfig
オブジェクトに対して LoadFromDefaultAppConfigSection
メソッドを呼び出します。
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
別途 App.config ファイルを指定する
App.config
の整理が不要な場合は、configSource
プロパティを使用して、ライブラリ固有の構成を独自の構成ファイルに移動できます。
ステップ 1: 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>
ステップ 2: 構成ファイルの内容を指定する
次に、configSource
で指定した名前で別の構成ファイルを作成し、App.config
からこのファイルに構成ノードを移動します。
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
ステップ 3: csproj のビルドルールを修正する
最後に、新しい構成ファイルをプロジェクトに追加します。このファイルのプロパティを [Always copy to output folder] に変更します。
プロジェクトをビルドして実行します。アプリケーションが新しい構成ファイルから値の取得を開始します。
カスタム JSON ファイルを使用した構成
クライアント ライブラリの構成には、IConfigurationRoot
インスタンスを使用できます。
JSON ファイルを作成する
App.config
ファイルと同様の構造を持つ GoogleAdsApi.json
という名前の JSON ファイルを作成します。
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
構成を読み込む
次に、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":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
次に、ページで IConfiguration
インスタンスを使用します。
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
環境変数を使用した構成
環境変数を使用して GoogleAdsClient
を初期化することもできます。
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
サポートされている環境変数の完全なリストをご覧ください。
設定に関する項目
Google 広告の .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 設定
OAuth2 を使用して Google Ads API サーバーに対する呼び出しを承認する場合は、次の構成キーを設定する必要があります。
AuthorizationMethod
:OAuth2
に設定します。OAuth2Mode
:APPLICATION
またはSERVICE_ACCOUNT
に設定します。OAuth2ClientId
: この値を OAuth2 クライアント ID に設定します。OAuth2ClientSecret
: この値は、OAuth2 クライアント シークレットに設定します。OAuth2Scope
: 複数の API に対して OAuth2 トークンを承認する場合は、この値を別のスコープに設定します。この設定は省略可能です。
OAuth2Mode == APPLICATION
を使用している場合は、次の追加の構成キーを設定する必要があります。
OAuth2RefreshToken
: OAuth2 トークンを再利用する場合は、この値をあらかじめ生成された OAuth2 更新トークンに設定します。この設定は省略可能です。OAuth2RedirectUri
: この値を OAuth2 リダイレクト URL に設定します。この設定は省略可能です。
詳細については、次のガイドをご覧ください。
OAuth2Mode == SERVICE_ACCOUNT
を使用している場合は、次の追加の構成キーを設定する必要があります。
OAuth2PrnEmail
: この値は、借用中のアカウントのメールアドレスに設定します。OAuth2SecretsJsonPath
: この値を OAuth2 JSON 構成ファイルのパスに設定します。
詳しくは、OAuth サービス アカウントのフローに関するガイドをご覧ください。
移動設定
UseGrpcCore
:Grpc.Core
を基盤となるトランスポート レイヤとして使用するには、この設定をtrue
に設定します。詳細については、gRPC サポートガイドをご覧ください。
Google Ads API の設定
次の設定は Google Ads API に固有のものです。
DeveloperToken
: 開発者トークンに設定します。LoginCustomerId
: 承認された顧客のリクエスト ID です。ハイフンは使用できません(-
)。LinkedCustomerId
: このヘッダーは、Google 広告 UI の [リンクされたアカウント](Google Ads API のAccountLink
リソース)で権限が付与されている場合に、エンティティのリソースを更新するメソッドにのみ必要です。この値を、指定した顧客 ID のリソースを更新するデータ プロバイダの顧客 ID に設定します。ハイフンは設定しないでください(-
)。詳しくは、リンクされたアカウントをご覧ください。