Yapılandırma

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

YAML dosyası kullanarak yapılandırma

İstekte bulunmak için gereken kimlik doğrulama bilgilerini içeren, istemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. 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 gizliliğiniz dahil olmak üzere kimlik bilgilerinizi içerecek şekilde değiştirmek olacaktır.

Yol belirtmezseniz kitaplık, dosyayı $HOME dizininde 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 yönteme 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öntemde bir yol iletilir ve yukarıdaki ortam değişkeni mevcutsa) kitaplık, yönteme iletilen yola öncelik verir.

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

Tüm istemci yapılandırmanızı, istemcinin load_from_env yöntemi kullanılırken okunacak ortam değişkenleri olarak depolayabilirsiniz. Ortam değişkenleri, google-ads.yaml dosyasında tanımlananlarla aynı ada sahip olmalıdır ancak tümüyle büyük harf olmalı ve GOOGLE_ADS_ ad alanının önekine eklenmelidir. Örneğin, client_id GOOGLE_ADS_CLIENT_ID olarak depolanmalıdır.

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

Terminalde bir dosya kullanarak ortam değişkeni tanımlamak için bazı temel adımları aşağıda bulabilirsiniz:.bashrc

# 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, terminal örneğinizde doğrudan komut satırından da ayarlanabilir:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

load_from_env yöntemi, Python'un 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, istemci örneğinin ortam değişkenlerinden alınan yapılandırmayla nasıl başlatılacağına dair bir örnek verilmiştir:

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

logging'ü ortam değişkenleri aracılığıyla yapılandırmak için yapılandırma değeri, örnek google-ads.yaml yapılandırma dosyasında bulunan YAML anahtarlarının yapısıyla eşleşen bir JSON nesnesi olmalıdır.

Bunun bir .bashrc dosyası kullanılarak nasıl ayarlanabileceğine dair bir örnek aşağıda verilmiştir:

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 kullanılan 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 kullanın.

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 kullanan yapılandırma

Bir 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.

Genel alanlar (YAML veya sözlük yapılandırması kullanıyor olsanız da bu adlar aynıdır):

  • refresh_token: OAuth yenileme jetonunuz.
  • client_id: OAuth istemci kimliğiniz.
  • client_secret: OAuth istemci sırrınız.
  • developer_token: API'ye erişmek için kullandığınız geliştirici jetonunuz.
  • login_customer_id: login-customer-id belgelerine bakın.
  • linked_customer_id: bağlı-müşteri-kimliği dokümanlarını inceleyin.
  • json_key_file_path (eski adıyla path_to_private_key_file): Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı belgelerini inceleyin.
  • impersonated_email (eski adıyla delegate_account): Yetkili olarak kullanılan bir hesap e-postası. Bu, bir hizmet hesabı kullanarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına göz atın.
  • logging: Günlük kaydı yapılandırması. Günlük kaydı alanları aşağıda açıklanmıştır.
  • http_proxy: Proxy dokümanlarına bakın.
  • use_proto_plus: Proto-plus mesajlarının kullanılıp kullanılmayacağı. Protobuf mesajları dokümanlarına bakın.

Ortam değişkeni olarak genel alanlar:

  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_JSON_KEY_FILE_PATH (eski adıyla GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (eski adıyla GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

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

  • version: Bir şema sürümünü temsil eden tam sayı değeri.
  • disable_existing_loggers: Uygulamanın başka bir yerinde yapılandırılan günlükleyicilerin 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ıldığını ve hangi biçimlendiricilerin kullanılacağını kontrol eden farklı işleyicileri tanımlayan sözlükler.
  • loggers: Bir işleyici ve günlük düzeyi içeren farklı günlükleyici türlerini tanımlayan sözlükler.