Yapılandırma

İstemciyi yapılandırmanın birden fazla yolu vardır.

Kimlik doğrulama yapılandırması

Google Ads API'ye erişmek için gereken OAuth kimlik bilgilerini yönetmenin birden fazla yolu vardır. Seçtiğiniz yaklaşım, hangi yapılandırma alanlarını kullanacağınızı etkiler. Daha fazla bilgi için kimlik doğrulama kılavuzumuzu inceleyin.

YAML dosyası kullanarak yapılandırma

İstemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. Bu dosya, Google Ads API'ye istek göndermek için gereken bilgileri içerir. Bu dosyaya, load_from_storage yöntemi kullanılarak bir istemci başlatıldığında erişilir. Bu dosyayı oluşturmanın en kolay yolu, GitHub deposundaki google-ads.yaml örneğini kopyalayıp geliştirici jetonunuz, yenileme jetonunuz, istemci kimliğiniz ve istemci sırrınız dahil olmak üzere kimlik bilgilerinizi içerecek şekilde değiştirmektir.

Bir yol belirtmezseniz kitaplık, dosyayı $HOME dizininizde arar:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

google-ads.yaml dosyasının bulunduğu konumu belirtmek için yöntemi çağırırken yolu dize olarak iletebilirsiniz:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

Belirli bir ortam değişkeni tanımlayarak da yolu belirtebilirsiniz:

import os

os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

Her iki değer de sağlanırsa (yönteme bir yol iletilir ve ortam değişkeni mevcutsa) kitaplık, yönteme iletilen yola öncelik verir.

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

İstemci yapılandırmanızın tamamını, istemcinin load_from_env yöntemi kullanılırken okunacak ortam değişkenleri olarak saklayabilirsiniz. Ortam değişkenleri, google-ads.yaml dosyasında tanımlananlarla aynı ada sahip olmalı ancak tamamen büyük harflerle yazılmalı ve GOOGLE_ADS_ ad alanıyla öneklenmelidir. Örneğin, client_id, GOOGLE_ADS_CLIENT_ID olarak depolanmalıdır.

Ortam değişkenleri genellikle $HOME dizininde bulunan .bashrc veya .bash_profile gibi bir bash yapılandırma dosyasında tanımlanır. Bunlar komut satırı kullanılarak da tanımlanabilir. Bu talimatların bash kullandığınızı varsaydığını unutmayın. Farklı bir kabuk kullanıyorsanız kullandığınız kabukta ortam değişkenlerinin nasıl ayarlanacağıyla ilgili dokümanlara başvurmanız gerekebilir.

.bashrcdosyası kullanarak bir ortam değişkeni tanımlamak için terminali kullanmayla ilgili temel adımları aşağıda bulabilirsiniz:

# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
$ echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
$ src ~/.bashrc

Ortam değişkenleri, doğrudan komut satırından terminal örneğinizde de ayarlanabilir:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

load_from_env yöntemi, Python'ın yerleşik os modülündeki environ özelliğinden yapılandırma verilerini yükler. Örneğin: os.environ["GOOGLE_ADS_CLIENT_ID"]

Aşağıda, bir istemci örneğini ortam değişkenlerindeki yapılandırmayla başlatma örneği verilmiştir:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()

logging yapılandırmasını ortam değişkenleri aracılığıyla yapmak için yapılandırma değeri, örnek google-ads.yaml yapılandırma dosyasındaki YAML anahtarlarının yapısına uygun bir JSON nesnesi olmalıdır.

Bunun .bashrc dosyası kullanılarak nasıl ayarlanabileceğine dair bir örneği aşağıda bulabilirsiniz:

export GOOGLE_ADS_LOGGING='{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "default_fmt": {
      "format": "[%(asctime)s - %(levelname)s] %(message).5000s",
      "datefmt": "%Y-%m-%d %H:%M:%S"
    }
  },
  "handlers": {
    "default_handler": {
      "class": "logging.StreamHandler",
      "formatter": "default_fmt"
    }
  },
  "loggers": {
    "": {
      "handlers": ["default_handler"],
      "level": "INFO"
    }
  }
}'

YAML dizesi kullanarak yapılandırma

Belleğe bir YAML dosyası okuduysanız bunu başlatma sırasında doğrudan istemciye sağlayabilirsiniz. Bunun için load_from_string yöntemini kullanmanız yeterlidir.

from google.ads.googleads.client import GoogleAdsClient

with open("/path/to/yaml", "rb") as handle:
    yaml = handle.read()

client = GoogleAdsClient.load_from_string(yaml)

dict kullanarak yapılandırma

dict öğesini doğrudan load_from_dict yöntemine iletebilirsiniz. Örneğin:

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "abcdef123456",
    "refresh_token": "1//0abcdefghijklABCDEF",
    "client_id": "123456-abcdef.apps.googleusercontent.com",
    "client_secret": "aBcDeFgHiJkL"}

client = GoogleAdsClient.load_from_dict(credentials)

Yapılandırma Alanları

İstemci kitaplığı yapılandırması aşağıdaki alanları destekler.

Kimlik doğrulama

Kullandığınız kimlik doğrulama yaklaşımına bağlı olarak yalnızca aşağıdaki alan gruplarından birini kullanın:

  • Uygulama varsayılan kimlik bilgileriyle tek kullanıcı (belgeler)
    • use_application_default_credentials: Kitaplığın kimlik doğrulama için uygulama varsayılan kimlik bilgilerini (ADC) kullanıp kullanmaması.
  • OAuth jetonları olan tek kullanıcı (belgeler)
    • client_id: OAuth istemci kimliğiniz.
    • client_secret: OAuth istemci sırrınız.
    • refresh_token: OAuth yenileme jetonunuz.
  • Hizmet hesabı (belgeler)
    • json_key_file_path: Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanarak kimlik doğrulama için kullanılır.

Kitaplık davranışı

Bu alanlar, kitaplığın davranışını belirler:

İstek düzeyinde yapılandırma

Ortam değişkenleri

Kitaplığı ortam değişkenlerini kullanarak yapılandırmak için aşağıdakileri kullanın:

  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_JSON_KEY_FILE_PATH
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_USE_PROTO_PLUS
  • GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS

Günlük kaydı yapılandırması

logging yapılandırma alanının altındaki alanlar olan günlük kaydı alanları, kitaplık logging ad alanındaki tüm alanları doğrudan logging.config.dictConfig yöntemine ileteceğinden doğrudan logging.config yerleşik modülünden türetilir. Tüm ayrıntılar için günlük kılavuzuna bakın.

  • version: Şema sürümünü temsil eden bir tam sayı değeri.
  • disable_existing_loggers: Uygulamanın başka bir yerinde yapılandırılan günlükçülerin devre dışı bırakılıp bırakılmayacağı.
  • formatters: Farklı biçimlendirici türlerini tanımlayan sözlükler.
  • handlers: Günlüklerin nereye yazılacağını ve hangi biçimlendiricilerin kullanılacağını kontrol eden farklı işleyicileri tanımlayan sözlükler.
  • loggers: İşleyici ve günlük düzeyi içeren farklı günlükçü türlerini tanımlayan sözlükler.