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 başlatmaktı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

Ayrıca, istemci kitaplığının yapılandırılması için bazı ek seçenekler de sağlarız: 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: bunları aşağıda gösterildiği gibi açıkça yüklemeniz gerekir.

App.config kullanarak yapılandırın

Google Ads API öğesine özgü tüm ayarlar App.config dosyasının GoogleAdsApi düğümünde saklanı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>

Yapılandırma ayarlarını bir App.config dosyasından yüklemek için bir 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 öğenizin karmaşık olmasını istemiyorsanız configSource özelliğini 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 şu şekilde görünecek ş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>

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

Şimdi, configSource ürününde belirttiğiniz adla başka bir yapılandırma dosyası oluşturun ve yapılandırma düğümünü App.config cihazınızdan şu dosyaya taşıyın:

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

3. Adım: CSS'nizdeki derleme kurallarını düzeltin

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

Şimdi projenizi derleyip çalıştırın. Uygulamanız, yeni yapılandırma dosyasından değerleri toplamaya başlar.

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

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

JSON dosyası oluşturma

App.config dosyasıyla benzer yapıya sahip GoogleAdsApi.json adında 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ı 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'u kullanarak yapılandırma

Buradaki işlem, özel JSON kullanmaya benzer ancak anahtarların GoogleAdsApi adlı bir bölümde olması gerekir:

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

Daha sonra, 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 kullanarak yapılandırma

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 listesine bakın.

Yapılandırma alanları

Google Ads .NET kitaplığı tarafından desteklenen ayarların listesi aşağıda verilmiş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 dosyasındaki method_config/timeout ayarına göre belirlenir. Bir API çağrısı için maksimum süre 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 uzun bir süreye ayarlayabilirsiniz ancak API, 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 bunu HTTP proxy sunucu URL'si olarak ayarlayın.
  • ProxyUser: Bu değeri, proxy sunucuda kimlik doğrulaması yapmak için ihtiyacınız olan kullanıcı adına ayarlayın. Kullanıcı adı gerekli değilse bu alanı boş bırakın.
  • ProxyPassword: ProxyUser için bir değer belirlediyseniz bu değeri ProxyUser şifresine ayarlayın.
  • ProxyDomain: Proxy sunucunuz bir alanın ayarlanmasını gerektiriyorsa bunu ProxyUser alan 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 hatası yanıtının maksimum boyutunu artırmak için bu ayarı kullanın. Varsayılan değer 16 MB'tır.

Bazı 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, ileti boyutunun (423184132 bytes) kitaplığın işleyebileceğinden (67108864 bytes) daha büyük olmasından kaynaklanır. Bu hatadan kaçınmak için MaxReceiveMessageLengthInBytes değerini 500000000 değerine yükseltin.

Bu hatanın, kodunuzun önemli ölçüde büyük bir Yanıt nesnesini (ö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 bir 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ı keşfetmeniz gerekebilir.

OAuth2 ayarları

Çağrılarınızı Google Ads API sunucularına 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 ayarlayın.
  • OAuth2ClientId: Bu değeri OAuth2 istemci kimliğinize ayarlayın.
  • OAuth2ClientSecret: Bu değeri OAuth2 istemci gizli anahtarınız olarak 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 jetonu olarak 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ılavuzlara bakın:

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 adresi olarak 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 göz atın.

Ulaşım ayarları

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

Google Ads API ayarları

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

  • DeveloperToken: Bunu geliştirici jetonunuz olarak ayarlayın.
  • LoginCustomerId: Bu, istekte kullanılacak yetkili müşterinin kısa çizgi (-) olmadan müşteri kimliğidir.
  • LinkedCustomerId: Bu başlık yalnızca Google Ads kullanıcı arayüzündeki Bağlı Hesaplar üzerinden izin verildiğinde tüzel kişinin 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ısının müşteri kimliğine ayarlayın. Kısa çizgi (-) olmadan ayarlanmalıdır. Bağlı Hesaplar hakkında daha fazla bilgi edinin.