構成

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Google Ads API クライアント ライブラリには、ライブラリの動作のカスタマイズに使用できる設定がいくつか用意されています。

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 ファイルを指定してください

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 のビルドルールを修正する

最後に、プロジェクトに新しい構成ファイルを追加します。このファイルのプロパティを [常に出力フォルダにコピー] に変更します。

プロジェクトをビルドして実行します。アプリケーションが新しい構成ファイルから値の選択を開始します。

カスタム 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(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(section);
GoogleAdsClient client = new GoogleAdsClient(config);

実行時にライブラリを構成する

実行時に GoogleAdsClient を初期化することもできます。

例 1: 実行時に構成を初期化する

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "APPLICATION",
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

例 2: App.config から読み込むが、設定をオーバーライドする

GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";

環境変数を使用した構成

GoogleAdsClient は、環境変数を使用して初期化することもできます。これらの設定は自動的に取得されないため、次に示すように、環境変数から設定を読み込む必要もあります。

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);

サポートされている環境変数の完全なリストをご覧ください。

設定に関する項目

Google 広告 .NET ライブラリでサポートされている設定のリストを以下に示します。

接続設定

  • Timeout: このキーを使用して、サービスのタイムアウトをミリ秒単位で設定します。デフォルト値は、googleads_grpc_service_config.jsonmethod_config/timeout の設定に基づいて設定されます。 API 呼び出しの最大時間の短い制限を適用する場合は、小さい値を設定します。タイムアウトは 2 時間以上に設定できますが、API が非常に長時間実行されるリクエストをタイムアウトし、DEADLINE_EXCEEDED エラーを返すこともあります。
  • ProxyServer: インターネット接続にプロキシを使用している場合は、この値を HTTP プロキシ サーバーの URL に設定します。
  • ProxyUser: プロキシ サーバーに対する認証に必要なユーザー名に設定します。ユーザー名が不要な場合は空欄のままにします。
  • ProxyPassword: ProxyUser の値を設定する場合は、これを ProxyUser のパスワードに設定します。
  • ProxyDomain: プロキシ サーバーで設定する必要がある場合は、これを ProxyUser のドメインに設定します。
  • MaxReceiveMessageLengthInBytes: この設定を使用して、クライアント ライブラリが処理できる API レスポンスの最大サイズを大きくします。デフォルト値は 64 MB です。
  • MaxMetadataSizeInBytes: この設定を使用して、クライアント ライブラリが処理できる API エラー レスポンスの最大サイズを大きくします。デフォルト値は 16 MB です。

MaxReceiveMessageLengthInBytesMaxMetadataSizeInBytes の設定を調整して、特定の ResourceExhausted エラーを修正します。この設定により、Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" 形式のエラーに対処できます。

この例では、メッセージのサイズ(423184132 bytes)がライブラリで処理可能なサイズ(67108864 bytes)よりも大きいことが原因です。このエラーを回避するには、MaxReceiveMessageLengthInBytes500000000 に増やしてください。

このエラーは、コードが非常に大きいレスポンス オブジェクト(大きな 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 に設定します。ハイフンなしで設定してください(-)。詳しくは、リンクされたアカウントをご覧ください。