Konfigurasi

Ada beberapa cara untuk mengonfigurasi klien.

Konfigurasi menggunakan file YAML

Anda dapat menentukan file YAML yang akan digunakan saat menginisialisasi klien yang berisi informasi otentikasi yang diperlukan untuk membuat permintaan. File ini diakses saat klien diinisialisasi menggunakan metode load_from_storage. Cara termudah untuk menghasilkan file ini adalah dengan menyalin google-ads.yaml dari repositori GitHub dan mengubahnya untuk menyertakan kredensial Anda, termasuk token developer, token refresh, client ID, dan rahasia klien.

Jika Anda tidak memberikan jalur, library akan mencarinya di direktori $HOME untuk file tersebut:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

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 jalur di atas terdapat variabel lingkungan, library akan memprioritaskan jalur diteruskan ke metode.

Konfigurasi menggunakan variabel lingkungan

Anda dapat menyimpan semua konfigurasi klien sebagai variabel lingkungan, yang akan dibaca saat menggunakan metode load_from_env klien. Lingkungan variabel harus memiliki nama yang sama dengan variabel yang ditentukan dalam google-ads.yaml , tetapi harus dalam huruf besar semua dan diawali dengan GOOGLE_ADS_ namespace. Misalnya, client_id harus disimpan sebagai GOOGLE_ADS_CLIENT_ID.

Variabel lingkungan biasanya didefinisikan dalam file konfigurasi bash seperti sebagai file .bashrc atau .bash_profile yang berada di direktori $HOME. Mereka juga dapat ditentukan dengan menggunakan baris perintah. Perhatikan bahwa petunjuk ini menganggap Anda menggunakan bash. Jika menggunakan shell yang berbeda, Anda mungkin perlu untuk membaca dokumentasi tentang cara mengatur variabel lingkungan dalam shell yang digunakan.

Berikut adalah beberapa langkah dasar untuk menentukan variabel lingkungan menggunakan .bashrc menggunakan 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 secara langsung di instance terminal dari command line:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Metode load_from_env memuat data konfigurasi dari 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, konfigurasi harus berupa objek JSON yang sesuai dengan struktur kunci YAML dalam contoh google-ads.yaml file konfigurasi Anda.

Berikut adalah contoh cara menyetel hal ini 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 Anda telah membaca file YAML ke dalam memori, Anda dapat memberikannya langsung ke 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 (namanya sama, baik Anda menggunakan YAML atau 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 linked-customer-id<i} dokumentasi.
  • json_key_file_path (sebelumnya path_to_private_key_file): Jalur ke file kunci pribadi lokal. Ini digunakan untuk melakukan otentikasi menggunakan suatu layanan menggunakan akun layanan. Lihat dokumentasi Akun Layanan OAuth2.
  • impersonated_email (sebelumnya delegate_account): Email akun yang digunakan sebagai delegasi. Kunci ini digunakan untuk melakukan autentikasi menggunakan akun layanan. Lihat dokumentasi Akun Layanan OAuth2.
  • logging: Konfigurasi logging. 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.

Kolom 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 (sebelumnya GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (sebelumnya GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

Kolom logging, yang merupakan kolom di bawah konfigurasi logging berasal langsung dari modul bawaan logging.config karena library akan meneruskan semua kolom pada namespace logging langsung ke logging.config.dictConfig . Lihat panduan logging untuk mengetahui detail selengkapnya.

  • version: Nilai bilangan bulat yang mewakili versi skema.
  • disable_existing_loggers: Apakah pencatat log dikonfigurasi di tempat lain di aplikasi harus dinonaktifkan.
  • formatters: Kamus yang menentukan berbagai jenis pemformat.
  • handlers: Kamus yang menentukan pengendali yang berbeda, yang mengontrol tempat penulisan log dan pemformat mana yang harus digunakan.
  • loggers: Kamus yang mendefinisikan berbagai jenis pencatat log, yang meliputi pengendali dan level log.