Cấu hình

Có nhiều cách để định cấu hình ứng dụng.

Cấu hình bằng cách sử dụng tệp YAML

Bạn có thể chỉ định tệp YAML để sử dụng khi khởi chạy ứng dụng có chứa thông tin xác thực cần thiết để tạo yêu cầu. Tệp này được truy cập khi một ứng dụng được khởi chạy bằng phương thức load_from_storage. Cách dễ nhất để tạo tệp này là sao chép ví dụ google-ads.yaml từ kho lưu trữ GitHub và sửa đổi để bao gồm thông tin đăng nhập của bạn, bao gồm mã thông báo của nhà phát triển, mã làm mới, mã ứng dụng khách và mật khẩu ứng dụng khách.

Để chỉ định vị trí đặt tệp google-ads.yaml, bạn có thể truyền đường dẫn dưới dạng chuỗi đến phương thức khi gọi phương thức đó:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

Bạn cũng có thể chỉ định đường dẫn bằng cách xác định một biến môi trường cụ thể:

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()

Nếu bạn cung cấp cả hai giá trị (một đường dẫn được truyền vào phương thức biến môi trường ở trên có mặt), thì thư viện sẽ ưu tiên đường dẫn được truyền vào phương thức này.

Nếu bạn không cung cấp đường dẫn, thư viện sẽ tìm tệp trong thư mục $HOME của bạn:

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

Cấu hình bằng cách sử dụng các biến môi trường

Bạn có thể lưu trữ tất cả cấu hình ứng dụng dưới dạng biến môi trường. Các biến này sẽ được đọc khi sử dụng phương thức load_from_env của ứng dụng. Các biến môi trường phải có cùng tên với tên được xác định trong tệp google-ads.yaml, nhưng phải viết hoa tất cả và có tiền tố là không gian tên GOOGLE_ADS_. Ví dụ: client_id phải được lưu trữ dưới dạng GOOGLE_ADS_CLIENT_ID.

Các biến môi trường thường được xác định trong tệp cấu hình bash, chẳng hạn như tệp .bashrc hoặc .bash_profile nằm trong thư mục $HOME. Bạn cũng có thể xác định các lớp này bằng cách sử dụng dòng lệnh. Lưu ý rằng những hướng dẫn này giả định rằng bạn đang sử dụng bash, nếu đang sử dụng một shell khác, bạn có thể cần tham khảo tài liệu về cách đặt biến môi trường trong shell bạn đang sử dụng.

Dưới đây là một số bước cơ bản để xác định biến môi trường bằng cách sử dụng tệp .bashrc trên thiết bị đầu cuối:

# 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

Bạn cũng có thể thiết lập các biến môi trường trong thực thể dòng lệnh ngay từ dòng lệnh:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Phương thức load_from_env tải dữ liệu cấu hình từ thuộc tính environ trên mô-đun os tích hợp của Python. Ví dụ: os.environ["GOOGLE_ADS_CLIENT_ID"]

Dưới đây là ví dụ về cách khởi chạy một thực thể ứng dụng với cấu hình từ các biến môi trường:

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

Để định cấu hình logging thông qua các biến môi trường, giá trị cấu hình phải là đối tượng JSON khớp với cấu trúc của các khoá YAML trong tệp cấu hình google-ads.yaml mẫu.

Dưới đây là ví dụ về cách thiết lập chế độ này bằng tệp .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"
    }
  }
}'

Cấu hình bằng cách sử dụng chuỗi YAML

Nếu đã đọc tệp YAML vào bộ nhớ, bạn có thể cung cấp tệp đó trực tiếp cho ứng dụng khi khởi chạy. Để thực hiện việc này, chỉ cần sử dụng phương thức 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)

Cấu hình bằng dict

Bạn có thể truyền dict trực tiếp đến phương thức load_from_dict. Ví dụ:

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)

Các trường cấu hình

Cấu hình thư viện ứng dụng hỗ trợ các trường sau.

Các trường chung (các tên này giống nhau cho dù bạn đang sử dụng cấu hình YAML hay cấu hình chính):

  • refresh_token: Mã làm mới OAuth của bạn.
  • client_id: Mã ứng dụng OAuth của bạn.
  • client_secret: Mật khẩu ứng dụng OAuth của bạn.
  • developer_token: Mã của nhà phát triển để truy cập API.
  • login_customer_id: Xem tài liệu về đăng nhập-khách hàng-id.
  • linked_customer_id: Hãy xem tài liệu về LinkedIn-customer-id.
  • json_key_file_path (trước đây là path_to_private_key_file): Một đường dẫn đến tệp khoá riêng tư cục bộ. Tính năng này dùng để xác thực bằng tài khoản dịch vụ. Xem tài liệu về Tài khoản dịch vụ OAuth2.
  • impersonated_email (trước đây là delegate_account): Email tài khoản được dùng làm người được uỷ quyền. Tính năng này được dùng để xác thực bằng tài khoản dịch vụ. Xem tài liệu về Tài khoản dịch vụ OAuth2.
  • logging: Cấu hình ghi nhật ký. Các trường ghi nhật ký được mô tả bên dưới.
  • http_proxy: Xem Tài liệu proxy.
  • use_proto_plus: Có sử dụng thông báo proto+ hay không. Xem tài liệu về Thông báo Protobuf.

Các trường chung dưới dạng biến môi trường:

  • 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 (trước đây là GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (trước đây là GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

Các trường ghi nhật ký là các trường bên dưới trường cấu hình logging, được lấy trực tiếp từ mô-đun tích hợp logging.config vì thư viện sẽ chuyển trực tiếp tất cả các trường trong không gian tên logging sang phương thức logging.config.dictConfig. Xem hướng dẫn ghi nhật ký để biết đầy đủ chi tiết.

  • version: Một giá trị số nguyên đại diện cho một phiên bản giản đồ.
  • disable_existing_loggers: Liệu có nên tắt các trình ghi nhật ký đã định cấu hình ở nơi khác trong ứng dụng hay không.
  • formatters: Từ điển xác định các loại bộ định dạng khác nhau.
  • handlers: Từ điển xác định các trình xử lý khác nhau, giúp kiểm soát vị trí ghi nhật ký vào và trình định dạng nào được sử dụng.
  • loggers: Từ điển xác định các loại trình ghi nhật ký, bao gồm cả trình xử lý và cấp độ nhật ký.