Yapılandırma

Python istemci kitaplığını bir YAML dosyası, ortam değişkenleri, bir YAML dizesi veya dict kullanarak yapılandırabilirsiniz.

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ılavuzuna bakın.

YAML dosyası kullanarak yapılandırma

İstemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. Bu dosya, Google Ads API'ye istekte bulunmak 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 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, dosya için $HOME dizininize bakar:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage()

google-ads.yaml dosyasının bulunduğu konumu belirtmek için yolu, yöntemi çağırırken 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 yolu da belirtebilirsiniz:

import os
from google.ads.googleads.client import GoogleAdsClient

os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
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 okunan 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 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.

Terminalde .bashrc dosyası kullanarak ortam değişkeni tanımlamak için uygulayabileceğiniz 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.
source ~/.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

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'yı 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ına uyan bir JSON nesnesi olması gerekir.

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"
    }
  }
}'

Önemli nokta: load_from_env yöntemi çağrıldığında GOOGLE_ADS_CONFIGURATION_FILE_PATH ortam değişkeni ayarlanırsa yapılandırma değerleri daha önce açıklanan ortam değişkenlerinden değil, belirtilen yoldaki google-ads.yaml dosyasından alınır.

YAML dizesi kullanarak yapılandırma

Bir YAML dosyasını belleğe okuduysanız 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", "r", encoding="utf-8") as handle:
    yaml_content = handle.read()

client = GoogleAdsClient.load_from_string(yaml_content)

dict kullanılarak yapılan yapılandırma

Doğrudan dict değerini load_from_dict yöntemine iletebilirsiniz. Örneğin:

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "refresh_token": "YOUR_REFRESH_TOKEN",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "use_proto_plus": True,
}

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 bu alan gruplarından birini kullanın:

  • Uygulama varsayılan kimlik bilgilerine sahip tek kullanıcı (belgeler)
    • use_application_default_credentials: Kitaplığın kimlik doğrulama için uygulama varsayılan kimlik bilgilerini (ADC) kullanıp kullanmaması (google-ads v28.3.0 ve sonraki sürümlerde desteklenir).
  • OAuth jetonları olan tek kullanıcı (belgeler)
    • client_id: OAuth istemci kimliğiniz.
    • client_secret: OAuth istemci gizli anahtarınız.
    • refresh_token: OAuth yenileme jetonunuz.
  • Hizmet hesabı (dokümanlar)
    • json_key_file_path: Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanarak kimlik doğrulama için kullanılır.
    • impersonated_email: Google Workspace'te alan genelinde yetkilendirme kullanılırken kimliğine bürünülecek hesabın isteğe bağlı e-posta adresi.

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_ADS_ASSISTANT
  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_ENDPOINT
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_IMPERSONATED_EMAIL
  • 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 (v28.3.0 ve sonraki sürümlerde desteklenir)

Günlük yapılandırması

logging yapılandırma alanının altındaki alanlar olan günlük alanları, kitaplık logging ad alanındaki tüm alanları doğrudan logging.config.dictConfig yöntemine ilettiği için doğrudan logging.config yerleşik modülünden türetilir. Tüm ayrıntılar için günlüğe kaydetme 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ı türlerde biçimlendiricileri 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 kaydı düzeyi içeren farklı günlük kaydı oluşturucu türlerini tanımlayan sözlükler.