Ada beberapa cara untuk mengonfigurasi klien.
Konfigurasi menggunakan file YAML
Anda dapat menentukan file YAML yang akan digunakan ketika melakukan inisialisasi klien yang berisi informasi autentikasi yang diperlukan untuk membuat permintaan. File ini
diakses saat klien diinisialisasi menggunakan metode load_from_storage
.
Cara termudah untuk membuat file ini adalah dengan menyalin
contoh google-ads.yaml
dari repositori GitHub dan mengubahnya agar menyertakan kredensial Anda,
termasuk token developer, token refresh, client ID, dan rahasia klien.
Untuk menentukan lokasi tempat file google-ads.yaml
berada, Anda dapat meneruskan
jalur sebagai string ke metode saat memanggilnya:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Anda juga dapat menentukan jalur dengan menentukan variabel lingkungan tertentu:
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()
Jika kedua nilai diberikan—jalur diteruskan ke metode dan variabel lingkungan di atas ada—library akan memprioritaskan jalur yang diteruskan ke metode tersebut.
Jika Anda tidak memberikan jalur, library akan mencari file tersebut di direktori $HOME
Anda:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Konfigurasi menggunakan variabel lingkungan
Anda dapat menyimpan semua konfigurasi klien sebagai variabel lingkungan, yang akan dibaca saat menggunakan metode load_from_env
klien. Nama variabel lingkungan harus sama dengan nama yang ditentukan dalam file google-ads.yaml
, tetapi harus ditulis dalam huruf besar dan diawali dengan namespace GOOGLE_ADS_
. Misalnya, client_id
harus disimpan sebagai GOOGLE_ADS_CLIENT_ID
.
Variabel lingkungan biasanya ditentukan dalam file konfigurasi bash seperti file .bashrc
atau .bash_profile
yang berada di direktori $HOME
. Class ini juga dapat ditentukan menggunakan command line. Perhatikan bahwa petunjuk ini
mengasumsikan Anda menggunakan bash
, jika menggunakan shell lain, Anda mungkin perlu
membaca dokumentasi tentang cara menetapkan variabel lingkungan pada
shell yang Anda gunakan.
Berikut adalah beberapa langkah dasar untuk menentukan variabel lingkungan menggunakan file .bashrc
dengan terminal:
# 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
Variabel lingkungan juga dapat ditetapkan langsung di instance terminal Anda dari command line:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
Metode load_from_env
memuat data konfigurasi dari atribut environ
pada modul os
bawaan Python. Contoh:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Berikut adalah contoh cara melakukan inisialisasi instance klien dengan konfigurasi dari variabel lingkungan:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Untuk mengonfigurasi logging
melalui variabel lingkungan, nilai konfigurasi harus berupa objek JSON yang cocok dengan struktur kunci YAML dalam contoh file konfigurasi google-ads.yaml
.
Berikut adalah contoh cara menyetelnya menggunakan file .bashrc
:
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"
}
}
}'
Konfigurasi menggunakan string YAML
Jika telah membaca file YAML ke dalam memori, Anda dapat memberikannya langsung kepada klien saat inisialisasi. Untuk melakukannya, cukup gunakan metode load_from_string
.
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "rb") as handle:
yaml = handle.read()
client = GoogleAdsClient.load_from_string(yaml)
Konfigurasi menggunakan dict
Anda dapat meneruskan dict
secara langsung ke metode load_from_dict
. Contoh:
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)
Kolom Konfigurasi
Konfigurasi library klien mendukung kolom berikut.
Kolom umum (nama-nama ini sama saja, baik Anda menggunakan YAML maupun konfigurasi dikte):
refresh_token
: Token refresh OAuth Anda.client_id
: Client ID OAuth Anda.client_secret
: Rahasia klien OAuth Anda.developer_token
: Token developer Anda untuk mengakses API.login_customer_id
: Lihat dokumentasi login-customer-id.linked_customer_id
: Lihat dokumentasi link-customer-id.json_key_file_path
(sebelumnyapath_to_private_key_file
): Jalur ke file kunci pribadi lokal. Ini digunakan untuk melakukan otentikasi menggunakan akun layanan. Lihat dokumentasi Akun Layanan OAuth2.impersonated_email
(sebelumnyadelegate_account
): Email akun yang digunakan sebagai delegasi. Ini digunakan untuk melakukan otentikasi menggunakan akun layanan. Lihat dokumentasi Akun Layanan OAuth2.logging
: Logging konfigurasi. Kolom logging dijelaskan di bawah.http_proxy
: Lihat Dokumentasi proxy.use_proto_plus
: Apakah akan menggunakan pesan proto-plus atau tidak. Lihat dokumentasi Pesan Protobuf.
Bidang umum sebagai variabel lingkungan:
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
(sebelumnyaGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(sebelumnyaGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
Kolom logging, yang merupakan kolom di bawah kolom konfigurasi
logging
, berasal langsung dari modul bawaan logging.config
karena library akan meneruskan semua kolom pada namespace logging
langsung ke
metode
logging.config.dictConfig
. Lihat panduan logging untuk mengetahui detail selengkapnya.
version
: Nilai bilangan bulat yang mewakili versi skema.disable_existing_loggers
: Apakah pencatat log yang dikonfigurasi di tempat lain dalam aplikasi harus dinonaktifkan.formatters
: Kamus yang menentukan berbagai jenis pemformat.handlers
: Kamus yang menentukan pengendali berbeda, yang mengontrol tempat penulisan log dan pemformat mana yang harus digunakan.loggers
: Kamus yang menentukan berbagai jenis logger, yang mencakup pengendali dan level log.