Konfiguracja

Biblioteka klienta interfejsu Google Ads API udostępnia kilka ustawień, których możesz użyć do dostosowania działania biblioteki.

Konfigurowanie biblioteki w czasie działania

Preferowanym sposobem skonfigurowania biblioteki klienta jest zainicjowanie obiektu GoogleAdsConfig w czasie działania:

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

GoogleAdsClient client = new GoogleAdsClient(config);

Alternatywne opcje konfiguracji

Udostępniamy też dodatkowe opcje konfigurowania biblioteki klienta: aby je włączyć, dodaj odwołanie do pakietu Google.Ads.GoogleAds.Extensions w projekcie.

Jeśli użyjesz jednej z tych opcji, ustawienia konfiguracji nie będą pobierane automatycznie – musisz je jawnie wczytać w sposób pokazany poniżej.

Skonfiguruj za pomocą App.config

Wszystkie ustawienia specyficzne dla Google Ads API są przechowywane w węźle GoogleAdsApi pliku App.config. Typowa konfiguracja App.config wygląda tak:

<?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>

Aby wczytać ustawienia konfiguracji z pliku App.config, wywołaj metodę LoadFromDefaultAppConfigSection w obiekcie GoogleAdsConfig:

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

Określ oddzielny plik App.config

Jeśli nie chcesz, by w usłudze App.config zaśmiecała treść, możesz przenieść konfigurację związaną z biblioteką do osobnego pliku konfiguracji za pomocą właściwości configSource.

Krok 1. Określ parametr configSource w pliku App.config

Zmień App.config na taki:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>

Krok 2. Określ zawartość pliku konfiguracyjnego

Teraz utwórz kolejny plik konfiguracyjny o nazwie określonej w configSource i przenieś węzeł konfiguracji z App.config do tego pliku:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>

Krok 3. Popraw reguły kompilacji w csproj

Na koniec dodaj do projektu nowy plik konfiguracji. Zmień właściwości tego pliku na Zawsze kopiuj do folderu wyjściowego.

Teraz skompiluj i uruchom projekt. Aplikacja zacznie pobierać wartości z nowego pliku konfiguracji.

Konfigurowanie przy użyciu niestandardowego pliku JSON

Do skonfigurowania biblioteki klienta możesz użyć instancji IConfigurationRoot.

Tworzenie pliku JSON

Utwórz plik JSON o nazwie GoogleAdsApi.json, który ma podobną strukturę co plik App.config.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

Wczytaj konfigurację

Następnie wczytaj plik JSON do folderu 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);

Konfiguracja za pomocą pliku settings.json

Ten proces jest podobny do użycia niestandardowego pliku JSON, z tą różnicą, że klucze powinny znajdować się w sekcji o nazwie GoogleAdsApi:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

Następnie możesz użyć wystąpienia IConfiguration na stronie:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Konfigurowanie przy użyciu zmiennych środowiskowych

Możesz również zainicjować GoogleAdsClient, używając zmiennych środowiskowych:

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

Zobacz pełną listę obsługiwanych zmiennych środowiskowych.

Pola konfiguracji

Poniżej znajduje się lista ustawień obsługiwanych przez bibliotekę .NET Google Ads.

Ustawienia łączności

  • Timeout: użyj tego klucza, aby ustawić limit czasu usługi w milisekundach. Wartość domyślna jest konfigurowana na podstawie ustawienia method_config/timeout w pliku googleads_grpc_service_config.json. Ustaw niższą wartość, jeśli chcesz wymusić krótszy limit maksymalnego czasu wywołania interfejsu API. Możesz ustawić limit czasu na co najmniej 2 godziny, ale interfejs API może nadal przekraczać limit czasu w przypadku bardzo długich żądań i zwrócić błąd DEADLINE_EXCEEDED.
  • ProxyServer: jeśli do łączenia się z internetem używasz serwera proxy HTTP, ustaw go na adres URL serwera proxy HTTP.
  • ProxyUser: w tym polu wpisz nazwę użytkownika, której potrzebujesz do uwierzytelniania na serwerze proxy. Pozostaw to pole puste, jeśli nazwa użytkownika nie jest wymagana.
  • ProxyPassword: jeśli masz ustawioną wartość ProxyUser, ustaw to na hasło ProxyUser.
  • ProxyDomain: ustaw tę domenę na ProxyUser, jeśli serwer proxy tego wymaga.
  • MaxReceiveMessageLengthInBytes: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi interfejsu API, jaką może obsłużyć biblioteka klienta. Wartość domyślna to 64 MB.
  • MaxMetadataSizeInBytes: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi na błąd interfejsu API, jaką może obsłużyć biblioteka klienta. Wartość domyślna to 16 MB.

Dostosuj ustawienia MaxReceiveMessageLengthInBytes i MaxMetadataSizeInBytes, aby naprawić niektóre błędy ResourceExhausted. Te ustawienia usuwają błędy formularza Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".

W tym przykładzie błąd wynika z tego, że rozmiar wiadomości (423184132 bytes) jest większy niż rozmiar wiadomości obsługiwanej przez bibliotekę (67108864 bytes). Aby uniknąć tego błędu, zwiększ wartość MaxReceiveMessageLengthInBytes do 500000000.

Zwróć uwagę, że błąd wskazuje też, że Twój kod obsługiwał znacznie duży obiekt odpowiedzi (np. duży obiekt SearchGoogleAdsResponse). Może to mieć wpływ na wydajność kodu ze względu na dużą stertę obiektów .NET. Jeśli pojawia się to problem z wydajnością, warto zastanowić się, jak uporządkować wywołania interfejsu API lub przeprojektować części aplikacji.

Ustawienia OAuth2

Jeśli do autoryzowania wywołań na serwerach interfejsu Google Ads API używasz OAuth2, ustaw te klucze konfiguracji:

  • AuthorizationMethod: ustaw wartość OAuth2.
  • OAuth2Mode: ustaw wartość APPLICATION lub SERVICE_ACCOUNT.
  • OAuth2ClientId: ustaw tę wartość na identyfikator klienta OAuth2.
  • OAuth2ClientSecret: ustaw tę wartość na tajny klucz klienta OAuth2.
  • OAuth2Scope: ustaw tę wartość na różne zakresy, jeśli chcesz autoryzować tokeny OAuth2 dla wielu interfejsów API. To ustawienie jest opcjonalne.

Jeśli używasz OAuth2Mode == APPLICATION, musisz ustawić poniższe dodatkowe klucze konfiguracji.

  • OAuth2RefreshToken: jeśli chcesz używać tokenów OAuth2, ustaw tę wartość na wygenerowany wstępnie token odświeżania OAuth2. To ustawienie jest opcjonalne.
  • OAuth2RedirectUri: ustaw tę wartość na przekierowanie OAuth2. To ustawienie jest opcjonalne.

Więcej informacji znajdziesz w tych przewodnikach:

Jeśli używasz OAuth2Mode == SERVICE_ACCOUNT, ustaw poniższe dodatkowe klucze konfiguracyjne.

  • OAuth2PrnEmail: ustaw tę wartość na adres e-mail konta, pod którego się podszywasz.
  • OAuth2SecretsJsonPath: ustaw tę wartość na ścieżkę pliku konfiguracji JSON2 OAuth2.

Więcej informacji znajdziesz w przewodniku po konfiguracji konta usługi OAuth.

Ustawienia transportu

  • UseGrpcCore: ustaw to ustawienie na true, aby używać biblioteki Grpc.Core jako bazowej warstwy transportu. Więcej informacji znajdziesz w przewodniku pomocy gRPC.

Ustawienia interfejsu Google Ads API

Te ustawienia dotyczą tylko interfejsu Google Ads API.

  • DeveloperToken: ustaw ten token programisty.
  • LoginCustomerId: jest to identyfikator klienta autoryzowanego klienta, którego ma być użyty w żądaniu, bez łączników (-).
  • LinkedCustomerId: ten nagłówek jest wymagany tylko w przypadku metod, które aktualizują zasoby elementu po uzyskaniu uprawnień poprzez Połączone konta w interfejsie Google Ads (zasób AccountLink w interfejsie Google Ads API). Ustaw tę wartość na identyfikator klienta dostawcy danych, który aktualizuje zasoby określonego identyfikatora klienta. Powinien być ustawiony bez łączników (-). Więcej informacji o połączonych kontach