Yapılandırma

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Google Ads API istemci kitaplığı, kitaplık davranışını özelleştirmek için kullanabileceğiniz çeşitli yapılandırma ayarları sunar.

App.config kullanarak yapılandırma

Google Ads API hesabına özgü tüm ayarlar App.config dosyasının GoogleAdsApi düğümünde depolanır. Tipik bir App.config yapılandırması aşağıdaki gibidir:

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

Ayrı bir App.config dosyası belirtin

App.config dosyanızın dağınık olmasını istemiyorsanız configSource özelliğini kullanarak kitaplığa özel yapılandırmayı kendi yapılandırma dosyasına taşıyabilirsiniz.

1. Adım: App.config dosyanızda bir configSource belirtin

App.config cihazınızı aşağıdaki gibi 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>

2. Adım: Yapılandırma dosyanızın içeriğini belirtin

Şimdi configSource adresinde belirttiğiniz adla başka bir yapılandırma dosyası oluşturun ve App.config içindeki yapılandırma düğümünü bu dosyaya taşıyın:

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

3. Adım: csproj'unuzdaki derleme kurallarını düzeltin

Son olarak, projenize yeni yapılandırma dosyası ekleyin. Bu dosyanın özelliklerini, Her zaman çıkış klasörüne kopyala olarak değiştirin.

Projenizi oluşturup çalıştırın. Uygulamanız, yeni yapılandırma dosyasındaki değerleri almaya başlar.

Özel bir JSON dosyası kullanarak yapılandırma

İstemci kitaplığını yapılandırmak için bir IConfigurationRoot örneği kullanabilirsiniz.

JSON dosyası oluşturma

App.config dosyasına benzer bir yapıya sahip GoogleAdsApi.json adlı bir JSON dosyası oluşturun.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

Yapılandırmayı yükle

Ardından, JSON dosyasını IConfigurationRoot ürününe yükleyin.

ConfigurationBuilder builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();

GoogleAdsConfig config = new GoogleAdsConfig(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);

settings.json kullanarak yapılandırma

Buradaki işlem, özel JSON kullanmaya benzer. Tek fark, anahtarların GoogleAdsApi adlı bir bölümde olmasıdır:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

Ardından, sayfanızda IConfiguration örneğini kullanabilirsiniz:

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

Çalışma zamanında kitaplığı yapılandırma

Çalışma zamanında GoogleAdsClient öğesini de başlatabilirsiniz.

1. Örnek: Yapılandırmayı çalışma zamanında başlatma

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

GoogleAdsClient client = new GoogleAdsClient(config);

2. Örnek: App.config adresinden yükleme ama bir ayarı geçersiz kılma

GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";

Ortam değişkenlerini kullanarak yapılandırma

Ortam değişkenlerini kullanarak da GoogleAdsClient öğesini başlatabilirsiniz. Bu ayarlar otomatik olarak alınmaz. Ayarları, aşağıda gösterildiği gibi ortam değişkenlerinden de yüklemeniz gerekir.

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

Desteklenen ortam değişkenlerinin tam listesini inceleyin.

Yapılandırma alanları

Aşağıda, Google Ads .NET kitaplığının desteklediği ayarların listesi yer almaktadır.

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 dosyasındaki method_config/timeout ayarına göre belirlenir. API çağrısı için maksimum süre üzerinde 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 olacak şekilde ayarlayabilirsiniz, ancak API yine de aşırı uzun süreli istekleri zaman aşımına uğratabilir ve DEADLINE_EXCEEDED hatası döndürebilir.
  • ProxyServer: İnternete bağlanmak için proxy kullanıyorsanız bu ayarı HTTP proxy sunucu URL'si olarak belirleyin.
  • ProxyUser: Bu URL'yi, proxy sunucu için kimlik doğrulaması yapmak istediğiniz kullanıcı adına ayarlayın. Kullanıcı adı gerekmiyorsa bunu boş bırakın.
  • ProxyPassword: ProxyUser için bir değer belirlediyseniz bu şifreyi ProxyUser olarak ayarlayın.
  • ProxyDomain: Proxy sunucunuzun ayarlanması gerekiyorsa bu alanı, ProxyUser için alana 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 hatası 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 Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" formundaki hataları ele alır.

Bu örnekte hata, mesaj boyutunun (423184132 bytes) kitaplığın işleyebileceğinden (67108864 bytes) daha büyük olması nedeniyle oluşmuştur. Bu hatayı önlemek için MaxReceiveMessageLengthInBytes değerini 500000000 değerine yükseltin.

Hatanın, kodunuzun önemli ölçüde büyük bir Yanıt nesnesini (ör. SearchGoogleAdsResponse gibi) işlediğini de unutmayın. Bu durum, .NET'in Büyük Nesne Yoğunluğu nedeniyle kodunuz üzerinde performans etkilerine yol açabilir. Bu durum bir performans endişesi haline gelirse, API çağrılarınızı nasıl yeniden düzenleyeceğinizi veya uygulamanızın belirli bölümlerini nasıl yeniden tasarlayacağınızı araştırmanız gerekebilir.

OAuth2 ayarları

Google Ads API sunucularına çağrılarınızı yetkilendirmek için OAuth2 kullanırken aşağıdaki yapılandırma anahtarlarını ayarlamanız gerekir:

  • AuthorizationMethod: OAuth2 olarak ayarlandı.
  • OAuth2Mode: APPLICATION veya SERVICE_ACCOUNT olarak ayarlanır.
  • OAuth2ClientId: Bu değeri OAuth2 istemci kimliğinize ayarlayın.
  • OAuth2ClientSecret: Bu değeri OAuth2 istemci gizli anahtarınıza ayarlayın.
  • OAuth2Scope: OAuth2 jetonlarını birden fazla API için yetkilendirmek istiyorsanız bu değeri farklı kapsamlara ayarlayın. Bu ayar isteğe bağlıdır.

OAuth2Mode == APPLICATION kullanıyorsanız aşağıdaki ek yapılandırma anahtarlarını ayarlamanız gerekir.

  • OAuth2RefreshToken: OAuth2 jetonlarını yeniden kullanmak istiyorsanız bu değeri önceden oluşturulmuş bir OAuth2 yenileme jetonuna ayarlayın. Bu ayar isteğe bağlıdır.
  • OAuth2RedirectUri: Bu değeri OAuth2 yönlendirme URL'sine 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.

  • OAuth2PrnEmail: Bu değeri, kimliğine büründüğünüz hesabın e-posta adresine ayarlayın.
  • OAuth2SecretsJsonPath: Bu değeri OAuth2 JSON yapılandırma dosyası yoluna ayarlayın.

Daha fazla ayrıntı için OAuth hizmet hesabı akışı kılavuzuna bakın.

Ulaşım ayarları

  • UseGrpcCore: Temel taşıma katmanı olarak Grpc.Core kitaplığını kullanmak için bu ayarı true olarak belirleyin. Daha fazla bilgi için gTB destek kılavuzuna bakın.

Google Ads API ayarları

Aşağıdaki ayarlar Google Ads API'ye özeldir.

  • DeveloperToken: Geliştirici jetonunuza ayarlayın.
  • LoginCustomerId: Bu kimlik, istekte kullanılacak yetkili müşterinin müşteri kimliğidir (kısa çizgi olmadan (-).
  • LinkedCustomerId: Bu başlık, yalnızca Google Ads kullanıcı arayüzündeki Bağlı Hesaplar (Google Ads API'deki AccountLink kaynağı) aracılığıyla izin verildiğinde bir varlığın 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. Kısa çizgi (-) olmadan ayarlanmalıdır. Bağlı Hesaplar hakkında daha fazla bilgi edinin.