Google Ads API istemci kitaplığı, kitaplık davranışını özelleştirmek için kullanabileceğiniz çeşitli yapılandırma ayarları sunar.
Kitaplığı çalışma zamanında yapılandırma
İstemci kitaplığını yapılandırmanın tercih edilen yolu, çalışma zamanında bir GoogleAdsConfig nesnesi başlatmaktır:
using Google.Ads.Gax.Config;
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Lib;
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Alternatif yapılandırma seçenekleri
Kitaplık ayrıca appsettings.json, özel JSON dosyaları, ortam değişkenleri veya App.config'dan yapılandırma ayarlarını yüklemek için ek seçenekler sunar.
Bunları etkinleştirmek için projenize Google.Ads.GoogleAds.Extensions NuGet paketini yükleyin:
dotnet add package Google.Ads.GoogleAds.Extensions
Bu seçeneklerden birini kullanırsanız yapılandırma ayarları otomatik olarak alınmaz. Bunları aşağıdaki bölümlerde gösterildiği gibi açıkça yüklemeniz gerekir. Ayarları harici dosyalardan veya akışlardan yüklerken dosya G/Ç istisnalarını (ör. FileNotFoundException veya UnauthorizedAccessException) işlediğinizden emin olun.
appsettings.json veya settings.json dosyasını kullanma
.NET 8.0 ve ASP.NET Core uygulamalarında, yapılandırma anahtarlarınızı appsettings.json (veya settings.json) dosyasındaki GoogleAdsApi bölümüne yerleştirin:
{
"GoogleAdsApi": {
"LoginCustomerId": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
Ardından, uygulamanızın IConfiguration örneğinden GoogleAdsApi bölümünü ayıklayın (örneğin, ASP.NET Core tarafından eklenen veya ConfigurationBuilder ile oluşturulan) ve LoadFromConfigurationSection ile yükleyin:
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Extensions.Config;
using Google.Ads.GoogleAds.Lib;
using Microsoft.Extensions.Configuration;
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Alternatif olarak, LoadFromSettingsJson kullanarak bir appsettings.json veya settings.json dosyasını doğrudan yola göre yükleyebilirsiniz:
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Extensions.Config;
using Google.Ads.GoogleAds.Lib;
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromSettingsJson("appsettings.json", "GoogleAdsApi");
GoogleAdsClient client = new GoogleAdsClient(config);
Yolu, config.TryLoadFromEnvironmentFilePath yöntemini çağırarak GOOGLE_ADS_CONFIGURATION_FILE_PATH ortam değişkeninden (EnvironmentVariableNames.CONFIG_FILE_PATH) de yükleyebilirsiniz.
Özel JSON dosyası kullanma
Üst düzey GoogleAdsApi bölümü olmayan düz bir JSON dosyasını yüklemek için IConfigurationRoot örneğini de kullanabilirsiniz.
JSON dosyası oluşturma
Kök düzeyinde yapılandırma anahtarlarını tanımlayan GoogleAdsApi.json adlı bir JSON dosyası oluşturun:
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"LoginCustomerId": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
Yapılandırmayı yükleme
Ardından, JSON dosyasını bir IConfigurationRoot içine yükleyin:
using System.IO;
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Extensions.Config;
using Google.Ads.GoogleAds.Lib;
using Microsoft.Extensions.Configuration;
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);
Ortam değişkenlerini kullanma
GoogleAdsClient'i ortam değişkenlerini kullanarak da başlatabilirsiniz:
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Extensions.Config;
using Google.Ads.GoogleAds.Lib;
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Desteklenen ortam değişkenlerinin tam listesini inceleyin.
App.config'i kullanma
.NET Framework uygulamalarında, Google Ads API'ye özgü tüm ayarlar App.config dosyasının GoogleAdsApi düğümünde depolanır. Standart bir yapılandırma App.config şu şekildedir:
<?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="" />
<!-- Google Ads API settings. -->
<add key="LoginCustomerId" value="INSERT_LOGIN_CUSTOMER_ID_HERE" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
Yapılandırma ayarlarını bir App.config dosyasından yüklemek için GoogleAdsConfig nesnesinde LoadFromDefaultAppConfigSection yöntemini çağırın:
using Google.Ads.GoogleAds.Config;
using Google.Ads.GoogleAds.Extensions.Config;
using Google.Ads.GoogleAds.Lib;
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Ayrı bir App.config yapılandırma dosyası belirtme
App.config dosyanızın karmaşık olmasını istemiyorsanız kitaplığa özel yapılandırmayı configSource özelliğini kullanarak kendi yapılandırma dosyasına taşıyabilirsiniz:
App.configiçinde birconfigSourcebelirtin. Harici bir yapılandırma dosyasına referans vermek içinApp.configdosyanızı değiştirin:<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>Yapılandırma dosyanızın içeriğini belirtin.
configSource(GoogleAdsApi.config) içinde belirttiğiniz adla başka bir yapılandırma dosyası oluşturun veGoogleAdsApiyapılandırma düğümünüApp.configdosyanızdan bu dosyaya taşıyın:<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>.csprojdosyanızdaki derleme kurallarını güncelleyin. Yeni yapılandırma dosyasını projenize ekleyin ve Çıkış Dizinine Kopyala özelliğini Her zaman kopyala olarak ayarlayın. Uygulamanızın yeni yapılandırma dosyasındaki değerleri alması için projenizi yeniden derleyip çalıştırın.
Genel bir akış kullanma
Yapılandırmayı veya yapılandırmanın bazı bölümlerini, şifrelenmiş bir akış da dahil olmak üzere genel bir akıştan yükleyebilirsiniz:
GoogleAdsConfig config = new GoogleAdsConfig()
{
// Set some configuration properties in code.
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
Yapılandırma alanları
Aşağıdaki bölümlerde, Google Ads .NET kitaplığı tarafından desteklenen ayarlar listelenmiştir.
Bağlantı ayarları
Timeout: Hizmet zaman aşımını milisaniye cinsinden ayarlamak için bu anahtarı kullanın. Varsayılan değer,googleads_grpc_service_config.json'dekimethod_config/timeoutayarına göre belirlenir. Bir API çağrısının maksimum süresi için daha kısa bir sınır uygulamanız gerekiyorsa daha düşük bir değer ayarlayın. Zaman aşımını 2 saat veya daha uzun bir süreye ayarlayabilirsiniz ancak API, son derece uzun süren isteklerde zaman aşımına uğrayabilir veDEADLINE_EXCEEDEDhatası döndürebilir.ProxyServer: İnternete bağlanmak için proxy kullanıyorsanız bunu HTTP proxy sunucu URL'si olarak ayarlayın.ProxyUser: Bu değeri, proxy sunucusunda kimlik doğrulaması yapmak için gereken kullanıcı adına ayarlayın. Kullanıcı adı gerekmiyorsa bu alanı boş bırakın.ProxyPassword:ProxyUseriçin bir değer ayarladıysanız bunuProxyUserşifresine ayarlayın.ProxyDomain: Proxy sunucunuz için bir alan adı ayarlanması gerekiyorsa bu değeriProxyUseralan adı olarak ayarlayın.MaxReceiveMessageLengthInBytes: İstemci kitaplığının işleyebileceği API yanıtının maksimum boyutunu artırmak için bu ayarı kullanın. Varsayılan değer 64 MB'tır.MaxMetadataSizeInBytes: İstemci kitaplığının işleyebileceği API hata yanıtının maksimum boyutunu artırmak için bu ayarı kullanın. Varsayılan değer 16 MB'tır.
Belirli ResourceExhausted hatalarını düzeltmek için MaxReceiveMessageLengthInBytes ve MaxMetadataSizeInBytes ayarlarını düzenleyin. Bu ayarlar, aşağıdaki biçimdeki hataları giderir:
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
Bu örnekte hata, ileti boyutunun (423184132 bytes) kitaplığın işleyebileceğinden (67108864 bytes) daha büyük olmasından kaynaklanıyor. Bu hatayı önlemek için MaxReceiveMessageLengthInBytes değerini 500000000 olarak artırın. Hata, kodunuzun önemli ölçüde büyük bir yanıt nesnesini (ör. büyük bir SearchGoogleAdsResponse) işlediğini de gösterir. Bu durum, .NET'in Büyük Nesne Yığını nedeniyle kodunuzun performansını etkileyebilir. Bu durum performansla ilgili bir sorun haline gelirse API çağrılarınızı nasıl yeniden düzenleyeceğinizi veya uygulamanızın bazı bölümlerini nasıl yeniden tasarlayacağınızı araştırmanız gerekebilir.
OAuth2 ayarları
Google Ads API sunucularına yönelik çağrılarınızı yetkilendirmek için OAuth 2.0 kullanırken aşağıdaki yapılandırma anahtarlarını ayarlamanız gerekir:
AuthorizationMethod:OAuth2olarak ayarlandı.OAuth2Mode:APPLICATIONveyaSERVICE_ACCOUNTolarak ayarlanır.OAuth2ClientId: Bu değeri OAuth 2.0 istemci kimliğiniz olarak ayarlayın.OAuth2ClientSecret: Bu değeri OAuth 2.0 istemci gizli anahtarınız olarak ayarlayın.OAuth2Scope: Birden fazla API için OAuth 2.0 jetonlarını yetkilendirmek istiyorsanız bu değeri farklı kapsamlara ayarlayın. Bu ayar isteğe bağlıdır.UseApplicationDefaultCredentials: Uygulama Varsayılan Kimlik Bilgileri'ni kullanarak kimlik doğrulaması yapmak için bu değeritrueolarak ayarlayın (Google.Ads.GoogleAdsv24.1.0ve sonraki sürümlerde desteklenir;config.LoadFromEnvironmentVariables(), ön eki olmayanUSE_APPLICATION_DEFAULT_CREDENTIALSortam değişkenini okur).Credentials: (Yalnızca çalışma zamanı,v27.0.0ve sonraki sürümlerde desteklenir) Önceden oluşturulmuş birICredentialveyaGoogleCredentialörneğini çalışma zamanında doğrudanGoogleAdsConfigiçine ekleyin.
OAuth2Mode == APPLICATION kullanıyorsanız aşağıdaki ek yapılandırma anahtarlarını ayarlamanız gerekir:
OAuth2RefreshToken: OAuth 2.0 jetonlarını yeniden kullanmak istiyorsanız bu değeri önceden oluşturulmuş bir OAuth 2.0 yenileme jetonu olarak ayarlayın. Bu ayar isteğe bağlıdır.OAuth2RedirectUri: Bu değeri OAuth 2.0 yönlendirme URL'si olarak ayarlayın. Bu ayar isteğe bağlıdır.
Daha fazla bilgi için aşağıdaki kılavuzları inceleyin:
OAuth2Mode == SERVICE_ACCOUNT kullanıyorsanız aşağıdaki ek yapılandırma anahtarlarını ayarlamanız gerekir:
OAuth2SecretsJsonPath: Bu değeri OAuth 2.0 JSON anahtar dosyasının yoluna ayarlayın.OAuth2PrnEmail: Bu değeri, Google Workspace alan genelinde yetkiyi kullanırken kimliğine büründüğünüz hesabın e-posta adresi olarak ayarlayın. Bu ayar isteğe bağlıdır.
Daha fazla bilgi için OAuth hizmet hesabı akışı kılavuzunu inceleyin.
Ulaşım ayarları
UseGrpcCore: Temel taşıma katmanı olarakGrpc.Corekitaplığını kullanmak için bu ayarıtrueolarak belirleyin.Grpc.Corekitaplığını kullanma başlıklı makaleyi inceleyin.
Google Ads API ayarları
Aşağıdaki ayarlar Google Ads API'ye özeldir:
LoginCustomerId: Bu, istekte kullanılacak yetkili müşterinin müşteri kimliğidir. Kısa çizgi (-) içermez.LinkedCustomerId: Bu üstbilgi yalnızca, Google Ads kullanıcı arayüzündeki Bağlı Hesaplar (Google Ads API'dekiAccountLinkkaynağı) üzerinden izin verildiğinde bir öğenin kaynaklarını güncelleyen yöntemler için gereklidir. Bu değeri, belirtilen müşteri kimliğinin kaynaklarını güncelleyen veri sağlayıcının müşteri kimliğine ayarlayın. Kimlik, kısa çizgi (-) olmadan ayarlanmalıdır. Bağlı hesaplar hakkında daha fazla bilgi edinin.