Konfiguracja

Biblioteka klienta interfejsu Google Ads API zawiera kilka ustawień konfiguracji, które pozwalają dostosowywać działanie biblioteki.

Konfigurowanie biblioteki w czasie działania

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

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "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 odniesienie Nuget do pakietu Google.Ads.GoogleAds.Extensions w projekcie.

Jeśli używasz jednej z tych opcji, ustawienia konfiguracji nie są pobierane automatycznie. Należy je jawnie wczytać, jak pokazano poniżej.

Konfigurowanie za pomocą pliku 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 w obiekcie GoogleAdsConfig metodę LoadFromDefaultAppConfigSection:

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

Określ osobny plik App.config.

Jeśli nie chcesz pomieszać elementu App.config, możesz przenieść konfigurację z biblioteki do osobnego pliku konfiguracji, korzystając z 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 podanej w pliku configSource i przenieś węzeł konfiguracji z instancji App.config do tego pliku:

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

Krok 3. Popraw reguły kompilacji w projekcie 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.

Konfiguracja 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ę do pliku App.config.

{
    "Timeout": "2000",

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

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

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

Wczytaj konfigurację

Następnie załaduj plik JSON do 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 przy użyciu pliku settings.json

Proces ten jest podobny do korzystania z niestandardowego kodu 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ć na swojej stronie wystąpienia IConfiguration:

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

Konfiguracja ze zmiennymi środowiskowymi

Możesz też zainicjować GoogleAdsClient przy użyciu 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: za pomocą tego klucza ustaw czas oczekiwania usługi w milisekundach. Wartość domyślna jest ustawiana 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 trwających żądań i zwracać błąd DEADLINE_EXCEEDED.
  • ProxyServer: ustaw ten adres na URL serwera proxy HTTP, jeśli do łączenia się z internetem używasz serwera proxy.
  • ProxyUser: wpisz w tym polu nazwę użytkownika, która jest wymagana do uwierzytelniania na serwerze proxy. Pozostaw to pole puste, jeśli nazwa użytkownika nie jest wymagana.
  • ProxyPassword: jeśli ustawisz wartość ProxyUser, ustaw hasło ProxyUser.
  • ProxyDomain: jako wartość tego pola wpisz domenę ProxyUser, jeśli Twój serwer proxy wymaga skonfigurowania.
  • MaxReceiveMessageLengthInBytes: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi interfejsu API, którą może obsłużyć biblioteka klienta. Wartość domyślna to 64 MB.
  • MaxMetadataSizeInBytes: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi błędu interfejsu API, którą 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 występujące w formularzu 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ż może obsłużyć biblioteka (67108864 bytes). Aby uniknąć tego błędu, zwiększ wartość MaxReceiveMessageLengthInBytes do 500000000.

Ten błąd oznacza też, że Twój kod obsługiwał bardzo duży obiekt odpowiedzi (np. duży obiekt SearchGoogleAdsResponse). Może to mieć wpływ na wydajność kodu z powodu dużej sterty obiektów w języku .NET. Jeśli staje się to problemem z wydajnością, zastanów się, jak zmienić porządek wywołań interfejsu API lub wygląd części aplikacji.

Ustawienia OAuth2

Jeśli używasz OAuth2 do autoryzowania wywołań kierowanych do serwerów interfejsu Google Ads API, ustaw te klucze konfiguracji:

  • AuthorizationMethod: ustaw na OAuth2.
  • OAuth2Mode: ustaw wartość APPLICATION lub SERVICE_ACCOUNT.
  • OAuth2ClientId: ustaw tę wartość na identyfikator klienta OAuth2.
  • OAuth2ClientSecret: ustaw tę wartość na swój 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ć następujące dodatkowe klucze konfiguracyjne.

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

Więcej informacji znajdziesz w tych przewodnikach:

Jeśli używasz OAuth2Mode == SERVICE_ACCOUNT, musisz ustawić te dodatkowe klucze konfiguracyjne.

  • OAuth2PrnEmail: ustaw tę wartość na adres e-mail konta, którego używasz.
  • OAuth2SecretsJsonPath: ustaw tę wartość na ścieżkę pliku konfiguracji JSON OAuth2.

Więcej informacji znajdziesz w przewodniku Przebieg konta w usłudze OAuth.

Ustawienia transportu

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

Ustawienia interfejsu Google Ads API

Poniższe ustawienia są specyficzne dla interfejsu Google Ads API.

  • DeveloperToken: ustaw ten token jako swój token programisty.
  • LoginCustomerId: identyfikator klienta autoryzowanego klienta do użycia w żądaniu (bez łączników) (-).
  • LinkedCustomerId: ten nagłówek jest wymagany tylko w przypadku metod, które aktualizują zasoby elementu po uzyskaniu dostępu do nich w interfejsie Google Ads za pomocą połączonych kont (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