Yapılandırma

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

YAML dosyası kullanarak yapılandırma

İstemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. Bu dosya, istekte bulunmak için gereken kimlik doğrulama bilgilerini 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 yukarıdaki 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 harf olmalı ve GOOGLE_ADS_ ad alanıyla başlamalıdır. Örneğin, client_id, GOOGLE_ADS_CLIENT_ID olarak depolanmalıdır.

Ortam değişkenleri genellikle .bashrc veya .bash_profile gibi bir bash yapılandırma dosyasında tanımlanır. Bu dosyalar $HOME dizininde bulunur. 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.

.bashrc dosyası 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.

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 geliştirici jetonunuz.
  • login_customer_id: login-customer-id dokümanlarına bakın.
  • linked_customer_id: linked-customer-id belgelerine bakın.
  • json_key_file_path (eski adıyla path_to_private_key_file): Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanılarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına bakın.
  • impersonated_email (eski adıyla delegate_account): Yetkili olarak kullanılan bir hesap e-postası. Bu, hizmet hesabı kullanılarak kimlik doğrulama için kullanılır. OAuth2 hizmet hesabı dokümanlarına bakın.
  • logging: Günlük kaydı yapılandırması. Günlüğe kaydetme alanları aşağıda açıklanmıştır.
  • http_proxy: Proxy belgelerine bakın.
  • use_proto_plus: Proto-plus mesajlarının kullanılıp kullanılmayacağı. Protobuf iletileri dokümanlarına bakın.

Ortam değişkenleri 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 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: Uygulamada başka bir yerde yapılandırılan kaydedicilerin 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.