Yapılandırma

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

YAML dosyası kullanarak yapılandırma

İstemciyi başlatırken, istek göndermek için gereken gerekli kimlik doğrulama bilgilerini içeren bir YAML dosyası belirtebilirsiniz. Bir istemci, load_from_storage yöntemi kullanılarak başlatıldığında bu dosyaya erişilir. Bu dosyayı oluşturmanın en kolay yolu, GitHub deposundan google-ads.yaml örneğini kopyalayıp geliştirici jeton, yenileme jetonu, istemci kimliği ve istemci gizli anahtarı gibi kimlik bilgilerinizi içerecek şekilde değiştirmektir.

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

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 aktarılır ve yukarıdaki ortam değişkeni varsa) kitaplık, yönteme geçirilen yola öncelik verir.

Yol vermezseniz kitaplık, $HOME dizininizde dosya için bakar:

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

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

İstemci yapılandırmanızı ortam değişkenleri olarak depolayabilirsiniz. Bu değişkenler, istemcinin load_from_env yöntemi kullanılırken okunur. Ortam değişkenleri, google-ads.yaml dosyasında tanımlananlarla aynı ada sahip olmalıdır ancak hepsi büyük harfli olmalı ve GOOGLE_ADS_ ad alanı ön eklerine sahip olmalıdır. Ö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 bash yapılandırma dosyaları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şkenlerini ayarlamayla ilgili belgelere bakmanız gerekebilir.

Terminal kullanarak .bashrc dosyası kullanarak ortam değişkeni tanımlamak için izlemeniz gereken bazı temel adımlar aşağıda verilmiştir:

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

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

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

Aşağıda, ortam değişkenlerinden yapılandırma ile bir istemci örneğinin nasıl başlatılacağına dair bir örnek verilmiştir:

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

logging öğesini ortam değişkenleri aracılığıyla yapılandırmak için yapılandırma değerinin, örnek google-ads.yaml yapılandırma dosyasındaki YAML anahtarlarının yapısıyla eşleşen bir JSON nesnesi olması gerekir.

Aşağıda, bunun bir .bashrc dosyası kullanılarak nasıl ayarlanabileceğiyle ilgili bir örnek 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 kullanarak yapılandırma

Bir YAML dosyasını belleğe okuduysanız başlatma sırasında bunu 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 aktarabilirsiniz. Ö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 dikt yapılandırması kullansanız da bu adlar aynıdır):

  • refresh_token: OAuth yenileme jetonunuz.
  • client_id: OAuth istemci kimliğiniz.
  • client_secret: OAuth istemci gizli anahtarı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 belgelerini inceleyin.
  • json_key_file_path (eski adıyla path_to_private_key_file): Yerel özel anahtar dosyasının yolu. Bu, bir hizmet hesabı kullanarak kimlik doğrulaması yapmak için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına bakın.
  • impersonated_email (eski adıyla delegate_account): Yetki verilmiş kullanıcı olarak kullanılan hesap e-postası. Bu, bir hizmet hesabı kullanarak kimlik doğrulaması yapmak için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına bakı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ı belgelerine 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ı, doğrudan logging.config yerleşik modülünden türetilir. Bunun nedeni, kitaplığın logging ad alanı 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: Şema sürümünü temsil eden tam sayı değeri.
  • disable_existing_loggers: Uygulamada başka bir yerde yapılandırılmış günlük 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ıldığını ve hangi biçimlendiricilerin kullanılması gerektiğini kontrol eden farklı işleyiciler tanımlayan sözlükler.
  • loggers: İşleyici ve günlük düzeyi dahil olmak üzere farklı logger türlerini tanımlayan sözlükler.