İ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ıylapath_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ıyladelegate_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ıylaGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(eski adıylaGOOGLE_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.