Konfiguracja

Biblioteka klienta interfejsu Google Ads API udostępnia kilka ustawień konfiguracji, za pomocą których możesz 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 odwołanie Nuget do pakietu Google.Ads.GoogleAds.Extensions w projekcie.

Jeśli używasz jednej z tych opcji, ustawienia konfiguracji nie są pobierane automatycznie, musisz je wczytać bezpośrednio w sposób pokazany poniżej.

Skonfiguruj 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 to:

<?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, aby element App.config był zaśmiecony, możesz przenieść konfigurację związaną z biblioteką do jej osobnego pliku, używając 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 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.

Konfiguracja przy użyciu niestandardowego pliku JSON

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

Utwórz plik JSON

Utwórz plik JSON o nazwie GoogleAdsApi.json, który ma strukturę podobną 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

Ten proces jest podobny do 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 z wykorzystaniem zmiennych środowiskowych

GoogleAdsClient możesz też zainicjować za pomocą 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 do ustawienia czasu oczekiwania usługi w milisekundach. Wartość domyślna jest określana na podstawie ustawienia method_config/timeout w pliku googleads_grpc_service_config.json. Ustaw mniejszą 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 zwrócić błąd DEADLINE_EXCEEDED.
  • ProxyServer: wpisz adres URL serwera proxy HTTP, jeśli do łączenia się z internetem używasz serwera proxy.
  • ProxyUser: wpisz tutaj 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, wpisz hasło ProxyUser.
  • ProxyDomain: podaj w tym polu domenę ProxyUser, jeśli serwer proxy wymaga jej 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 na błąd interfejsu API, którą może obsłużyć biblioteka klienta. Wartość domyślna to 16 MB.

Dostosuj ustawienia MaxReceiveMessageLengthInBytes i MaxMetadataSizeInBytes, aby naprawić błędy ResourceExhausted. Te ustawienia dotyczą błędów występujących 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 .NET. Jeśli staje się to problemem z wydajnością, być może trzeba będzie zastanowić się, jak zreorganizować wywołania interfejsu API lub przeprojektować części aplikacji.

Ustawienia OAuth2

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

  • AuthorizationMethod: ustaw wartość OAuth2.
  • OAuth2Mode: ustaw 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 konfiguracyjne.

  • OAuth2RefreshToken: ustaw tę wartość na wstępnie wygenerowany token odświeżania OAuth2, jeśli chcesz ponownie użyć 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: wpisz 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 po procesie tworzenia 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 po obsłudze gRPC.

Ustawienia interfejsu Google Ads API

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

  • DeveloperToken: ustaw tę wartość jako swój token programisty.
  • LoginCustomerId: identyfikator klienta upoważnionego do użycia w żądaniu (bez myślników – -).
  • LinkedCustomerId: ten nagłówek jest wymagany tylko w przypadku metod, które aktualizują zasoby elementu po uzyskaniu uprawnień przez 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 o określonym identyfikatorze klienta. Należy go ustawić bez myślników (-). Więcej informacji o połączonych kontach