Python istemci kitaplığını bir YAML dosyası, ortam değişkenleri, 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 istek göndermek için gereken bilgileri içerir. Bu dosyaya, bir istemci load_from_storage yöntemi kullanılarak 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, 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 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 yolu önceliklendirir.
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ıdır ancak tamamı büyük harfle 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. Komut satırı kullanılarak da tanımlanabilirler.
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, doğrudan komut satırından terminal örneğinizde de ayarlanabilir:
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
load_from_env yöntemi, yapılandırma verilerini Python'un yerleşik os modülündeki environ özelliğinden yükler. Örneğin:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Aşağıda, ortam değişkenlerinden yapılandırmayla 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 aracını ortam değişkenleri üzerinden 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.
Bunun bir .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 ayarlanmışsa yapılandırma değerleri, daha önce açıklanan ortam değişkenlerinden değil, belirtilen yolda bulunan 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 kullanarak 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 bu alan gruplarından yalnızca 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 kullanmayacağı (google-adsv28.3.0ve 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 alan genelinde yetki 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:
logging: Günlük yapılandırması ayrıntılarını inceleyin.http_proxy: Proxy belgelerine bakın.use_proto_plus: Zorunlu. Proto-plus mesajların kullanılıp kullanılmayacağı (TrueveyaFalse). Protobuf mesajları belgelerini inceleyin.
İstek düzeyinde yapılandırma
linked_customer_id: Bağlı müşteri kimliği dokümanlarına bakın.login_customer_id: login-customer-id dokümanlarına bakın.endpoint: İsteğe bağlı alternatif Google Ads API uç nokta adresi.ads_assistant: Google Ads API Yardımcısı üstbilgisi için isteğe bağlı tanımlayıcı.
Ortam değişkenleri
Kitaplığı ortam değişkenlerini kullanarak yapılandırmak için aşağıdakileri kullanın:
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(v28.3.0ve 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ü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 yerlerinde 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 düzeyi içeren farklı günlükçü türlerini tanımlayan sözlükler.