Konfiguracja

Biblioteka klienta interfejsu Google Ads API udostępnia kilka ustawień konfiguracji, za pomocą których możesz dostosować działanie biblioteki.

Konfigurowanie biblioteki w czasie wykonywania

Najlepszym sposobem konfiguracji biblioteki klienta jest zainicjowanie obiektu GoogleAdsConfig w czasie wykonywania:

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

GoogleAdsClient client = new GoogleAdsClient(config);

Opcje konfiguracji

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

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

Konfigurowanie za pomocą pliku App.config

Wszystkie ustawienia dotyczące 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 załadować ustawienia konfiguracji z pliku App.config, wywołaj metodę LoadFromDefaultAppConfigSection obiektu GoogleAdsConfig:

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

Określanie osobnego pliku App.config

Jeśli nie chcesz zaśmiecać pliku App.config, możesz przenieść konfigurację biblioteki do własnego pliku konfiguracyjnego za pomocą właściwości configSource.

Krok 1. W pliku App.config określ źródło konfiguracji

Zmień App.config tak, aby wyglądał tak:

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

Utwórz teraz kolejny plik konfiguracji o nazwie określonej w configSource i przenieś do niego węzeł konfiguracji z App.config:

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

Krok 3. Popraw reguły kompilacji w pliku csproj

Na koniec dodaj nowy plik konfiguracji do projektu. 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 za pomocą niestandardowego pliku JSON

Aby skonfigurować bibliotekę 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": "******",
}

Załaduj 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 za pomocą pliku settings.json

Proces jest podobny do korzystania z 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ć zmiennej IConfiguration na stronie:

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

Konfiguracja za pomocą zmiennych środowiskowych

Możesz też zainicjować GoogleAdsClient za pomocą zmiennych środowiskowych:

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

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

Pola konfiguracji

Poniżej znajdziesz listę ustawień obsługiwanych przez bibliotekę Google Ads w języku C#.

Ustawienia łączności

  • Timeout: za pomocą tego klucza możesz ustawić limit czasu usługi w milisekundach. Wartość domyślna jest ustawiana na podstawie ustawienia method_config/timeout w pliku googleads_grpc_service_config.json. Jeśli chcesz narzucić krótszy limit czasu wywołania interfejsu API, ustaw niższą wartość. Czas oczekiwania możesz ustawić na co najmniej 2 godziny, ale interfejs API może nadal przerywać bardzo długie żądania i zwracać błąd DEADLINE_EXCEEDED.
  • ProxyServer: jeśli do łączenia się z internetem używasz serwera proxy, podaj adres URL serwera proxy HTTP.
  • ProxyUser: ustaw nazwę użytkownika wymaganą do uwierzytelniania na serwerze proxy. Pozostaw to pole puste, jeśli nazwa użytkownika nie jest wymagana.
  • ProxyPassword: jeśli ustawisz wartość dla ProxyUser, wpisz tutaj hasło do ProxyUser.
  • ProxyDomain: ustaw tę wartość na domenę dla ProxyUser, jeśli Twój serwer proxy wymaga ustawienia domeny.
  • MaxReceiveMessageLengthInBytes: to ustawienie pozwala zwiększyć maksymalny rozmiar odpowiedzi interfejsu API, z którym może sobie poradzić biblioteka klienta. Wartością domyślną jest 64 MB.
  • MaxMetadataSizeInBytes: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi z błędem interfejsu API, którą może obsłużyć biblioteka klienta. Wartością domyślną jest 16 MB.

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

W tym przykładzie błąd występuje, ponieważ rozmiar wiadomości (423184132 bytes) jest większy niż to, co może obsłużyć biblioteka (67108864 bytes). Aby uniknąć tego błędu, zwiększ wartość parametru MaxReceiveMessageLengthInBytes do 500000000.

Pamiętaj, że błąd wskazuje też, że Twój kod obsługiwał bardzo duży obiekt Response (np. duży obiekt SearchGoogleAdsResponse). Może to mieć wpływ na wydajność kodu z powodu dużej puli obiektów w .NET. Jeśli to spowoduje problemy z wydajnością, być może trzeba będzie zmienić kolejność wywołań interfejsu API lub zmienić projekt części aplikacji.

Ustawienia OAuth2

Jeśli do autoryzowania wywołań na serwerach interfejsu Google Ads API używasz OAuth 2, musisz ustawić 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 tajny klucz klienta OAuth2.
  • OAuth2Scope: jeśli chcesz autoryzować tokeny OAuth2 w przypadku wielu interfejsów API, ustaw tę wartość na różne zakresy. To ustawienie jest opcjonalne.

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

  • OAuth2RefreshToken: jeśli chcesz ponownie użyć tokenów OAuth2, ustaw to pole na wcześniej wygenerowany token odświeżania OAuth2. To ustawienie jest opcjonalne.
  • OAuth2RedirectUri: ustaw to ustawienie na adres URL przekierowania OAuth 2. To ustawienie jest opcjonalne.

Więcej informacji znajdziesz w tych przewodnikach:

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

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

Więcej informacji znajdziesz w instrukcji dotyczącej tworzenia konta usługi OAuth.

Ustawienia transportu

Ustawienia interfejsu Google Ads API

Ustawienia podane poniżej są specyficzne dla interfejsu Google Ads API.

  • DeveloperToken: ustaw tutaj swój token programisty.
  • LoginCustomerId: to identyfikator klienta autoryzowanego do korzystania z prośby, bez łączników (-).
  • LinkedCustomerId: ten nagłówek jest wymagany tylko w przypadku metod, które aktualizują zasoby danego elementu, gdy zostały one zaakceptowane 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 określonego identyfikatora klienta. Nie należy używać łączników (-). Więcej informacji o połączonych kontach