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:
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Alternatif yapılandırma seçenekleri
Kitaplık, yapılandırma ayarlarını yüklemek için ek seçenekler de sunar. Bunları etkinleştirmek için projenizdeki Google.Ads.GoogleAds.Extensions paketine bir NuGet referansı ekleyin.
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şlemeyi unutmayın.
App.config dosyasını kullanma
Google Ads API'ye özgü tüm ayarlar, App.config dosyasının GoogleAdsApi düğümünde saklanır. Tipik 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="" />
<!-- 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:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Ayrı bir App.config dosyası belirtin
App.config dosyanızın karmaşık olmasını istemiyorsanız configSource özelliğini kullanarak kitaplığa özel yapılandırmayı kendi yapılandırma dosyasına taşıyabilirsiniz:
App.configiçinde birconfigSourcebelirtin.App.configdosyanızı harici bir yapılandırma dosyasına referans verecek şekilde 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.
configSourceiçinde belirttiğiniz adla (GoogleAdsApi.config) 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 Copy to Output Directory (Çıkış dizinine kopyala) özelliğini Copy always (Her zaman kopyala) olarak ayarlayın. Uygulamanızın yeni yapılandırma dosyasındaki değerleri alması için projenizi yeniden oluşturup çalıştırın.
Özel bir JSON dosyası kullanma
İstemci kitaplığını yapılandırmak için IConfigurationRoot örneği kullanabilirsiniz.
JSON dosyası oluşturma
GoogleAdsApi.json dosyasına benzer bir yapıya sahip App.config adlı bir JSON dosyası oluşturun:
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"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:
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);
settings.json dosyasını kullanma
Buradaki işlem, özel bir JSON dosyası kullanmaya benzer. Ancak anahtarların GoogleAdsApi adlı bir bölümün içinde olması gerekir:
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
Ardından, uygulamanızın GoogleAdsApi bölümünü IConfiguration örneğinden çıkarın (örneğin, ASP.NET Core tarafından yerleştirilmiş veya ConfigurationBuilder ile oluşturulmuş):
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Alternatif olarak, settings.json dosyasını doğrudan yoldan config.LoadFromSettingsJson(filePath, "GoogleAdsApi") ile veya GOOGLE_ADS_CONFIGURATION_FILE_PATH ortam değişkeninden EnvironmentVariableNames.CONFIG_FILE_PATH config.TryLoadFromEnvironmentFilePath kullanarak yükleyebilirsiniz.
Ortam değişkenlerini kullanma
GoogleAdsClient öğesini ortam değişkenlerini kullanarak da başlatabilirsiniz:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Desteklenen ortam değişkenlerinin tam listesini inceleyin.
Genel bir akış kullanma
Yapılandırmayı veya bir bölümünü şifrelenmiş olanlar da dahil olmak üzere genel bir akıştan da 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 listelenmektedir.
Bağlantı ayarları
Timeout: Bu anahtarı kullanarak hizmet zaman aşımını milisaniye cinsinden ayarlayın. Varsayılan değer,googleads_grpc_service_config.json'dakimethod_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 belirleyin. Zaman aşımını 2 saat veya daha fazla olarak ayarlayabilirsiniz ancak API, çok 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 sunucusu URL'sine ayarlayın.ProxyUser: Bunu, proxy sunucusunda kimlik doğrulaması yapmak için gereken kullanıcı adı olarak ayarlayın. Kullanıcı adı gerekmiyorsa bu alanı boş bırakın.ProxyPassword:ProxyUseriçin bir değer ayarlarsanız bunuProxyUserşifresi olarak ayarlayın.ProxyDomain: Proxy sunucunuzun ayarlanmasını gerektiriyorsa bunuProxyUseralanına ayarlayın.MaxReceiveMessageLengthInBytes: İstemci kitaplığının işleyebileceği maksimum API yanıtı boyutunu artırmak için bu ayarı kullanın. Varsayılan değer 64 MB'tır.MaxMetadataSizeInBytes: Bu ayarı, istemci kitaplığının işleyebileceği API hata yanıtının maksimum boyutunu artırmak için 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ı ele alır:
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) büyük olmasından kaynaklanmaktadır. Bu hatayı önlemek için MaxReceiveMessageLengthInBytes değerini 500000000 olarak artırın. Hatanın, kodunuzun önemli ölçüde büyük bir yanıt nesnesi (ör. büyük bir SearchGoogleAdsResponse) işlediğini de gösterdiğini unutmayın. Bu durum, .NET'in Large Object Heap'i 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 karşı yaptığınız çağrıları yetkilendirmek için OAuth 2.0'ı kullanırken aşağıdaki yapılandırma anahtarlarını ayarlamanız gerekir:
AuthorizationMethod:OAuth2olarak ayarlayın.OAuth2Mode:APPLICATIONveyaSERVICE_ACCOUNTolarak ayarlayın.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ı kapsamlar olarak ayarlayın. Bu ayar isteğe bağlıdır.UseApplicationDefaultCredentials: Uygulama Varsayılan Kimlik Bilgileri'ni kullanarak kimlik doğrulamak için bu değeritrueolarak ayarlayın (Google.Ads.GoogleAdsv24.1.0ve sonraki sürümlerde desteklenir;config.LoadFromEnvironmentVariables(), önek içermeyenUSE_APPLICATION_DEFAULT_CREDENTIALSortam değişkenini okur).Credentials: (Yalnızca çalışma zamanı,v27.0.0ve sonraki sürümlerde desteklenir) Çalışma zamanında önceden oluşturulmuş birICredentialveyaGoogleCredentialörneğini doğrudanGoogleAdsConfig'ye yerleştirin.
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 rehberlere bakın:
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 yolu olarak ayarlayın.OAuth2PrnEmail: Google Workspace'te alan genelinde temsil özelliğini kullanırken kimliğine büründüğünüz hesabın e-posta adresini bu değere 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:Grpc.Corekitaplığını temel aktarım katmanı olarak kullanmak için bu ayarıtrueolarak ayarlayın.Grpc.Corekitaplığını kullanma başlıklı makaleyi inceleyin.
Google Ads API ayarları
Aşağıdaki ayarlar Google Ads API'ye özeldir:
DeveloperToken:v27.3.0ve sonraki sürümlerde isteğe bağlıdır (GOOGLE_ADS_DEVELOPER_TOKEN). Geliştirici jetonlarının desteği 9 Eylül 2026'da sonlandırıldı. API sunucusunda, erişim düzeyleri istemci kitaplığı sürümünden bağımsız olarak Google Cloud projeniz tarafından belirlenir ve API sunucularıdeveloper-tokenüstbilgisini yoksayar (Google Ads API'nin gelecekteki bir ana sürümü reddedene kadar). YapılandırmanızdanDeveloperTokenatlamak veya kaldırmak içinGoogle.Ads.GoogleAdsv27.3.0veya sonraki sürümleri kullanın. Bu sürümlerde yerel istemci tarafıDeveloperTokendoğrulaması kaldırılmıştır (önceki sürümlerde yerel doğrulama için boş olmayan birDeveloperTokengerekir).LoginCustomerId: Bu, istekte kullanılacak yetkili müşterinin müşteri kimliğidir ve kısa çizgi içermez (-).LinkedCustomerId: Bu başlık yalnızca Google Ads kullanıcı arayüzünde (Google Ads API'dekiAccountLinkkaynağı) Bağlı Hesaplar aracılığıyla 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. Bu kimlik, tire olmadan ayarlanmalıdır (-). Bağlı hesaplar hakkında daha fazla bilgi edinin.