Konfiguracja

Biblioteka klienta interfejsu Google Ads API ma kilka ustawień konfiguracji, których możesz używać do dostosowywania działania biblioteki.

Skonfiguruj bibliotekę w czasie działania

Zalecanym sposobem skonfigurowania 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 do Nuget do pakietu projektu Google.Ads.GoogleAds.Extensions.

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

Skonfiguruj przy użyciu App.config

Wszystkie ustawienia dotyczące elementu Google Ads API są przechowywane w węźle GoogleAdsApi pliku App.config. Typowa konfiguracja: 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>

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

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

Określ oddzielny plik App.config

Jeśli nie chcesz zaśmiecać witryny App.config, możesz przenieść konfigurację konkretnej biblioteki do osobnego pliku konfiguracji, używając właściwości configSource.

Krok 1. Określ plik configSource w pliku app.config

Zmień App.config, 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 konfiguracyjnego

Teraz utwórz nowy plik konfiguracyjny o nazwie podanej 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. Napraw reguły kompilacji w csproj

Na koniec uwzględnij w projekcie nowy plik konfiguracji. Zmień właściwości tego pliku na Zawsze kopiuj do folderu wyjściowego.

Teraz skompiluj i uruchom projekt. Twoja aplikacja zacznie odbierać wartości z nowego pliku konfiguracji.

Konfiguracja z użyciem 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 taką samą strukturę jak 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 w 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 użycia 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ć instancji IConfiguration na swojej stronie:

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

Konfiguracja przy użyciu zmiennych środowiskowych

Inicjację 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 znajdziesz listę ustawień obsługiwanych przez bibliotekę .NET Google Ads.

Ustawienia łączności

  • Timeout: użyj tego klucza, aby ustawić czas oczekiwania na usługę w milisekundach. Wartość domyślna jest określana na podstawie ustawienia method_config/timeout w pliku googleads_grpc_service_config.json. Ustaw niższą wartość, jeśli chcesz egzekwować 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 wysyłać bardzo długie żądania i zwracać błąd DEADLINE_EXCEEDED.
  • ProxyServer: jeśli używasz serwera proxy do nawiązywania połączenia z internetem, ustaw go na adres URL serwera proxy HTTP.
  • ProxyUser: w tym polu wpisz nazwę użytkownika potrzebną do uwierzytelnienia na serwerze proxy. Pozostaw to pole puste, jeśli nazwa użytkownika nie jest wymagana.
  • ProxyPassword: ustaw hasło użytkownika ProxyUser, jeśli ustawisz wartość ProxyUser.
  • ProxyDomain: ustaw wartość domeny na ProxyUser, jeśli serwer proxy wymaga takiego ustawienia.
  • MaxReceiveMessageLengthInBytes: za pomocą tego ustawienia możesz zwiększyć maksymalny rozmiar odpowiedzi interfejsu API, który może obsłużyć biblioteka klienta. Wartość domyślna to 64 MB.
  • MaxMetadataSizeInBytes: za pomocą tego ustawienia możesz zwiększyć maksymalny rozmiar odpowiedzi interfejsu API błędów, które może obsłużyć biblioteka klienta. Wartość domyślna to 16 MB.

Dostosuj ustawienia MaxReceiveMessageLengthInBytes i MaxMetadataSizeInBytes, aby naprawić określone błędy ResourceExhausted. Te ustawienia dotyczą błędów 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ż rozmiar, który może obsłużyć biblioteka (67108864 bytes). Aby uniknąć tego błędu, zwiększ pole MaxReceiveMessageLengthInBytes do 500000000.

Uwaga: ten błąd wskazuje też, że Twój kod obsługiwał bardzo duży obiekt Response (np. duży SearchGoogleAdsResponse). Może to mieć wpływ na wydajność kodu z powodu dużego obiektu .NET. Jeśli stanie się to obawą o wydajność, być może trzeba będzie zmienić sposób organizacji wywołań interfejsu API lub interfejsu aplikacji.

Ustawienia OAuth2

Jeśli używasz protokołu OAuth2 do autoryzowania połączeń z serwerami interfejsu Google Ads API, musisz ustawić 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ć wymienione poniżej dodatkowe klucze konfiguracji.

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

Więcej informacji znajdziesz w tych przewodnikach:

Jeśli używasz OAuth2Mode == SERVICE_ACCOUNT, musisz ustawić następujące dodatkowe klucze konfiguracyjne.

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

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

Ustawienia transportu

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

Ustawienia interfejsu Google Ads API

Podane niżej ustawienia odnoszą się do interfejsu Google Ads API.

  • DeveloperToken: ustaw ten token programisty.
  • LoginCustomerId: jest to identyfikator klienta autoryzowanego klienta, którego można użyć w żądaniu bez łączników (-).
  • LinkedCustomerId: ten nagłówek jest wymagany tylko w przypadku metod aktualizowania zasobów encji 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 określonego identyfikatora klienta. Powinien on być ustawiony bez łączników (-). Więcej informacji o połączonych kontach