İstemciyi yapılandırmanın birden fazla yolu vardır.
YAML dosyası kullanarak yapılandırma
İstemciyi başlatırken kullanılacak bir YAML dosyası belirtebilirsiniz. Bu dosya, istekte bulunmak için gereken kimlik doğrulama bilgilerini 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 geliştirici jetonunuz, 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, dosyayı $HOME
dizininizde 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 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önteme bir yol iletilir ve yukarıdaki 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 okunacak 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 harf olmalı 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. Bu talimatların bash
kullandığınızı varsaydığını unutmayın. Farklı bir kabuk kullanıyorsanız kullandığınız kabukta ortam değişkenlerinin nasıl ayarlanacağıyla ilgili dokümanlara başvurmanız gerekebilir.
.bashrc
dosyası kullanarak bir ortam değişkeni tanımlamak için terminali kullanmayla ilgili temel adımları aşağıda bulabilirsiniz:
# 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, doğrudan komut satırından terminal örneğinizde de ayarlanabilir:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
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
yapılandırmasını ortam değişkenleri aracılığıyla yapmak için yapılandırma değeri, örnek google-ads.yaml
yapılandırma dosyasındaki YAML anahtarlarının yapısına uygun bir JSON nesnesi olmalıdır.
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"
}
}
}'
YAML dizesi kullanarak 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 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 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 geliştirici jetonunuz.login_customer_id
: login-customer-id dokümanlarına bakın.linked_customer_id
: linked-customer-id belgelerine bakın.json_key_file_path
(eski adıylapath_to_private_key_file
): Yerel bir özel anahtar dosyasının yolu. Bu, hizmet hesabı kullanılarak kimlik doğrulama için kullanılır. OAuth2 Hizmet Hesabı dokümanlarına bakın.impersonated_email
(eski adıyladelegate_account
): Yetkili olarak kullanılan bir hesap e-postası. Bu, hizmet hesabı kullanılarak kimlik doğrulama için kullanılır. OAuth2 hizmet hesabı dokümanlarına bakın.logging
: Günlük kaydı yapılandırması. Günlüğe kaydetme alanları aşağıda açıklanmıştır.http_proxy
: Proxy belgelerine bakın.use_proto_plus
: Proto-plus mesajlarının kullanılıp kullanılmayacağı. Protobuf iletileri dokümanlarına 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ı, kitaplık logging
ad alanındaki tüm alanları doğrudan logging.config.dictConfig
yöntemine ileteceğinden doğrudan logging.config
yerleşik modülünden türetilir. Tüm ayrıntılar için günlük kılavuzuna bakın.
version
: Şema sürümünü temsil eden bir tam sayı değeri.disable_existing_loggers
: Uygulamada başka bir yerde yapılandırılan 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ı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 düzeyi içeren farklı günlükçü türlerini tanımlayan sözlükler.