İstemciyi yapılandırmanın birden fazla yolu vardır.
YAML dosyası kullanarak yapılandırma
İstekte bulunmak için gereken kimlik doğrulama bilgilerini içeren, istemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. 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 gizliliğiniz dahil olmak üzere kimlik bilgilerinizi içerecek şekilde değiştirmek olacaktır.
Yol belirtmezseniz kitaplık, dosyayı $HOME
dizininde 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 yönteme 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öntemde bir yol iletilir ve yukarıdaki ortam değişkeni mevcutsa) kitaplık, yönteme iletilen yola öncelik verir.
Ortam değişkenlerini kullanan yapılandırma
Tüm istemci yapılandırmanızı, istemcinin load_from_env
yöntemi kullanılırken okunacak ortam değişkenleri olarak depolayabilirsiniz. Ortam değişkenleri, google-ads.yaml
dosyasında tanımlananlarla aynı ada sahip olmalıdır ancak tümüyle büyük harf olmalı ve GOOGLE_ADS_
ad alanının önekine eklenmelidir. Örneğin, client_id
GOOGLE_ADS_CLIENT_ID
olarak depolanmalıdır.
Ortam değişkenleri genellikle $HOME
dizininde bulunan bir .bashrc
veya .bash_profile
dosyası gibi bir bash yapılandırma dosyası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şkenlerinin nasıl ayarlanacağına dair dokümanlara başvurmanız gerekebilir.
Terminalde bir dosya kullanarak ortam değişkeni tanımlamak için bazı temel adımları aşağıda bulabilirsiniz:.bashrc
# 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ğinden yapılandırma verilerini yükler. Örneğin:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Aşağıda, istemci örneğinin ortam değişkenlerinden alınan yapılandırmayla nasıl başlatılacağına dair bir örnek verilmiştir:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
logging
'ü 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ında bulunan 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 kullanılan 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 kullanın.
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
kullanan yapılandırma
Bir 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 kullandığınız geliştirici jetonunuz.login_customer_id
: login-customer-id belgelerine bakın.linked_customer_id
: bağlı-müşteri-kimliği dokümanlarını inceleyin.json_key_file_path
(eski adıylapath_to_private_key_file
): Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı belgelerini inceleyin.impersonated_email
(eski adıyladelegate_account
): Yetkili olarak kullanılan bir hesap e-postası. Bu, bir hizmet hesabı kullanarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına göz atı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ı dokümanlarına bakın.
Ortam değişkeni 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 günlük kaydı alanları, doğrudan logging.config
yerleşik modülünden türetilir. Bunun nedeni, kitaplığın logging
ad alanının 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
: Bir şema sürümünü temsil eden 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çimlendirici türlerini tanımlayan sözlükler.handlers
: Günlüklerin nereye yazıldığını ve hangi biçimlendiricilerin kullanılacağını kontrol eden farklı işleyicileri tanımlayan sözlükler.loggers
: Bir işleyici ve günlük düzeyi içeren farklı günlükleyici türlerini tanımlayan sözlükler.