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 ve istek yapmak için 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şilebilir. Bu dosyayı oluşturmanın en kolay yolu google-ads.yaml örneğini GitHub deposundan kopyalamak ve bunu geliştirici jetonunuz, yenileme jetonunuz, istemci kimliğiniz 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 geçirebilirsiniz:

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

Yolu belirli bir ortam değişkeni tanımlayarak da 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 bulunursa kitaplık, yönteme geçirilen yola öncelik verir.

Yol belirtmezseniz kitaplık, dosya için $HOME dizininize 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ı, istemcinin load_from_env yöntemi kullanılırken okunacak olan ortam değişkenleri olarak depolayabilirsiniz. Ortam değişkenleri, google-ads.yaml dosyasında tanımlanan adlarla aynı ada sahip olmalıdır ancak tüm değişkenler büyük harfli olmalı ve GOOGLE_ADS_ ad alanı ön ekine 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 dosyası gibi bir bash yapılandırma dosyasında tanımlanır. Komut satırı kullanılarak da tanımlanabilirler. Bu talimatlarda bash kullandığınız varsayılır. Farklı bir kabuk kullanıyorsanız ortam değişkenlerini ayarlamayla ilgili belgelere başvurmanız gerekebilir.

Terminal kullanarak bir .bashrc dosyası kullanarak ortam değişkeni tanımlamanın bazı temel adımları şunlardır:

# 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ğindeki yapılandırma verilerini yükler. Örneğin: os.environ["GOOGLE_ADS_CLIENT_ID"]

Ortam değişkenlerinin yapılandırmasına sahip bir istemci örneğinin nasıl başlatılacağına dair bir örneği burada bulabilirsiniz:

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

logging ürününü 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ındaki 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 kullanarak yapılandırma

Bir YAML dosyasını belleğe okuduysanız başlatma sırasında doğrudan istemciye sağlayabilirsiniz. Bunu yapmak 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 dikt yapılandırması kullanma fark etmeksizin 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 kullandığınız geliştirici jetonunuzdur.
  • login_customer_id: login-customer-id belgelerini inceleyin.
  • 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, hizmet hesabı kullanarak kimlik doğrulamak 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 bir hesap e-posta adresi. Bu, bir hizmet hesabı kullanarak kimlik doğrulamak için kullanılır. OAuth2 Hizmet Hesabı belgelerine 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+ 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ırması alanının altındaki alanlar olan günlük kaydı alanları doğrudan logging.config yerleşik modülünden türetilir çünkü kitaplık, logging ad alanı altındaki tüm alanları doğrudan logging.config.dictConfig yöntemine geçirir. Tüm ayrıntılar için günlük kaydı 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ükleyicilerin devre dışı bırakılıp bırakılmayacağı.
  • formatters: Farklı biçimleyici 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şleyicileri tanımlayan sözlükler.
  • loggers: İşleyici ve günlük düzeyinin dahil olduğu farklı günlük kaydedici türlerini tanımlayan sözlükler.