Biblioteka klienta interfejsu Google Ads API udostępnia kilka ustawień konfiguracyjnych, których możesz użyć do dostosowania jej działania.
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 = 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 Nuget w Google.Ads.GoogleAds.Extensions
pakiecie w projekcie.
Jeśli używasz jednej z tych opcji, ustawienia konfiguracji nie są pobierane automatycznie. Musisz je wczytać w sposób pokazany 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 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ślanie osobnego pliku App.config
Jeśli nie chcesz, aby plik App.config
był zbyt obszerny, możesz przenieść konfigurację specyficzną dla biblioteki do osobnego pliku konfiguracyjnego za pomocą właściwości configSource
.
Krok 1. Określ element configSource w pliku App.config
Zmodyfikuj 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
Teraz utwórz kolejny plik konfiguracyjny o nazwie podanej w configSource
i przenieś do niego węzeł konfiguracji z pliku App.config
:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Krok 3. Popraw reguły kompilacji w pliku csproj
Na koniec uwzględnij nowy plik konfiguracji w projekcie. 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
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": "******",
}
Wczytywanie konfiguracji
Następnie wczytaj 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 używania niestandardowego kodu JSON, z tym ż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 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 środowiskowych.
Pola konfiguracji
Poniżej znajdziesz listę ustawień obsługiwanych przez bibliotekę Google Ads .NET.
Ustawienia łączności
Timeout
: użyj tego klucza, aby ustawić limit czasu usługi w milisekundach. Wartość domyślna jest ustawiana na podstawie ustawieniamethod_config/timeout
w pliku googleads_grpc_service_config.json. Jeśli chcesz wymusić krótszy limit maksymalnego czasu wywołania interfejsu API, ustaw niższą wartość. Możesz ustawić limit czasu na 2 godziny lub więcej, ale interfejs API może nadal przekraczać limit czasu w przypadku bardzo długotrwałych żądań i zwracać błądDEADLINE_EXCEEDED
.ProxyServer
: jeśli do łączenia się z internetem używasz serwera proxy, ustaw ten parametr na adres URL serwera proxy HTTP.ProxyUser
: ustaw tę wartość na nazwę użytkownika wymaganą do uwierzytelniania na serwerze proxy. Jeśli nazwa użytkownika nie jest wymagana, pozostaw to pole puste.ProxyPassword
: jeśli ustawisz wartość parametruProxyUser
, ustaw ten parametr na hasło doProxyUser
.ProxyDomain
: ustaw tę wartość na domenę dlaProxyUser
, jeśli serwer proxy wymaga ustawienia domeny.MaxReceiveMessageLengthInBytes
: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi interfejsu API, którą może obsłużyć biblioteka klienta. Wartością domyślną jest 64 MB.MaxMetadataSizeInBytes
: użyj tego ustawienia, aby zwiększyć maksymalny rozmiar odpowiedzi o błędzie interfejsu API, którą może obsłużyć biblioteka klienta. Wartością domyślną jest 16 MB.
Dostosuj ustawienia
MaxReceiveMessageLengthInBytes
iMaxMetadataSizeInBytes
, aby naprawić niektóre błędyResourceExhausted
. Te ustawienia dotyczą błędów w formacieStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
.W tym przykładzie błąd jest spowodowany tym, ż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 wartośćMaxReceiveMessageLengthInBytes
do500000000
.Pamiętaj, że błąd wskazuje też, że Twój kod obsłużył znacznie większy obiekt Response (np. duży obiekt
SearchGoogleAdsResponse
). Może to mieć wpływ na wydajność kodu ze względu na stertę dużych obiektów w .NET. Jeśli wpłynie to na wydajność, być może trzeba będzie zmienić organizację wywołań interfejsu API lub przeprojektować części aplikacji.
Ustawienia OAuth2
Jeśli do autoryzowania wywołań serwerów interfejsu Google Ads API używasz OAuth2, ustaw te klucze konfiguracji:
AuthorizationMethod
: ustaw wartośćOAuth2
.OAuth2Mode
: ustaw wartośćAPPLICATION
lubSERVICE_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
: 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 konfiguracji:
OAuth2PrnEmail
: Ustaw tę wartość na adres e-mail konta, które chcesz imitować.OAuth2SecretsJsonPath
: ustaw tę wartość na ścieżkę do pliku konfiguracji JSON OAuth2.
Więcej informacji znajdziesz w przewodniku Przepływ konta usługi OAuth.
Ustawienia transportu
UseGrpcCore
: ustaw tę opcję natrue
, aby używać bibliotekiGrpc.Core
jako podstawowej warstwy transportowej. Zobacz Korzystanie ze starszej biblioteki gRPC.
Ustawienia interfejsu Google Ads API
Te ustawienia dotyczą tylko interfejsu Google Ads API.
DeveloperToken
: ustaw tutaj token programisty.LoginCustomerId
: identyfikator klienta uprawnionego do używania w żądaniu, bez łączników (-
).LinkedCustomerId
: ten nagłówek jest wymagany tylko w przypadku metod, które aktualizują zasoby jednostki, gdy uprawnienia są przyznawane za pomocą połączonych kont w interfejsie Google Ads (zasóbAccountLink
w interfejsie Google Ads API). Ustaw tę wartość na identyfikator klienta dostawcy danych, który aktualizuje zasoby określonego identyfikatora klienta. Należy go ustawić bez łączników (-
). Więcej informacji o połączonych kontach