Yapılandırma

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

Kitaplığı çalışma zamanında yapılandırma

İstemci kitaplığını yapılandırmanın tercih edilen yolu, çalışma zamanında bir GoogleAdsConfig nesnesini ilk kullanıma hazırlamaktır:

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

GoogleAdsClient client = new GoogleAdsClient(config);

Alternatif yapılandırma seçenekleri

İstemci kitaplığını yapılandırmak için bazı ek seçenekler de sunuyoruz: Bu seçenekleri 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: Aşağıda gösterildiği gibi bunları açıkça yüklemeniz gerekir.

App.config dosyasını kullanarak yapılandırma

Google Ads API'e ö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=""/>

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

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ı dağınık hale getirmek istemiyorsanız configSource mülkünü kullanarak kitaplığa özgü yapılandırmayı kendi yapılandırma dosyasına taşıyabilirsiniz.

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

App.config öğenizi 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'te belirttiğiniz ada sahip başka bir yapılandırma dosyası oluşturun ve yapılandırma düğümünü App.config'ünüzden bu dosyaya taşıyın:

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

3. adım: csproj dosyanızdaki derleme kurallarını düzeltin

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

Artık projenizi derleyip çalıştırabilirsiniz. Uygulamanız yeni yapılandırma dosyasından değer almaya başlar.

Özel 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ıyla 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ükleme

Ardından, JSON dosyasını bir IConfigurationRoot dosyasına 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ı 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();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

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

GoogleAdsClient değişkenini 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.

Yapılandırma alanları

Aşağıda, Google Ads .NET kitaplığı tarafından desteklenen ayarların listesi verilmiştir.

Bağlantı ayarları

  • Timeout: Hizmet zaman aşım süresini milisaniye cinsinden ayarlamak için bu anahtarı kullanın. Varsayılan değer, googleads_grpc_service_config.json dosyasında method_config/timeout ayarına göre belirlenir. Bir API çağrısı için maksimum süreyle ilgili 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 fazla olarak ayarlayabilirsiniz ancak API, çok uzun süren isteklerin zaman aşımına uğramasına ve DEADLINE_EXCEEDED hatası döndürmesine neden olabilir.
  • ProxyServer: İnternete bağlanmak için proxy kullanıyorsanız bunu HTTP proxy sunucusu URL'sine ayarlayın.
  • ProxyUser: Bu değeri, proxy sunucusunda kimlik doğrulama yapmak için ihtiyacınız olan kullanıcı adına ayarlayın. Kullanıcı adı gerekli değilse bunu boş bırakın.
  • ProxyPassword: ProxyUser için bir değer belirlerseniz bunu ProxyUser'nin şifresine ayarlayın.
  • ProxyDomain: Proxy sunucunuzun ayarlanmasını gerektiriyorsa bunu ProxyUser alanının alanına 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, Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" biçimindeki hataları giderir.

Bu örnekte hata, ileti boyutunun (423184132 bytes) kitaplığın işleyebileceğinden (67108864 bytes) daha büyük olmasından kaynaklanmaktadır. Bu hatayı önlemek için MaxReceiveMessageLengthInBytes değerini 500000000 olarak artırın.

Hatanın, kodunuzun büyük bir Response nesnesi (ör. büyük bir SearchGoogleAdsResponse) işlediğini de gösterdiğini unutmayın. Bu durum, .NET'in Büyük Nesne Yığını nedeniyle kodunuzun performansını etkileyebilir. Bu durum performans sorunu 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ı incelemeniz gerekebilir.

OAuth2 ayarları

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

  • AuthorizationMethod: OAuth2 olarak ayarlanır.
  • OAuth2Mode: APPLICATION veya SERVICE_ACCOUNT olarak ayarlanır.
  • OAuth2ClientId: Bu değeri OAuth2 istemci kimliğinizle ayarlayın.
  • OAuth2ClientSecret: Bu değeri OAuth2 istemci sırrınız olarak ayarlayın.
  • OAuth2Scope: Birden fazla API için OAuth2 jetonlarını 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'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.

  • 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ının yoluna ayarlayın.

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

Ulaşım ayarları

  • UseGrpcCore: Temel aktarım katmanı olarak Grpc.Core kitaplığını kullanmak için bu ayarı true olarak ayarlayın. Eski Grpc kitaplığını kullanma başlıklı makaleyi inceleyin.

Google Ads API ayarları

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

  • DeveloperToken: Bunu geliştirici jetonunuz olarak ayarlayın.
  • LoginCustomerId: Yetkili müşterinin istekte kullanacağı müşteri kimliğidir. Kısa çizgi (-) içermez.
  • LinkedCustomerId: Bu başlık yalnızca Google Ads kullanıcı arayüzündeki Bağlı Hesaplar üzerinden izin verildiğinde bir öğenin kaynaklarını güncelleyen yöntemler için gereklidir (Google Ads API'deki AccountLink kaynağı). Bu değeri, belirtilen müşteri kimliğinin kaynaklarını güncelleyen veri sağlayıcının müşteri kimliğine ayarlayın. Tire olmadan (-) ayarlanmalıdır. Bağlı Hesaplar hakkında daha fazla bilgi edinin.