Có nhiều cách để định cấu hình ứng dụng.
Cấu hình bằ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 để đưa ra yêu cầu. Tệp này là
được truy cập khi khởi chạy một ứng dụng bằng phương thức load_from_storage
.
Cách dễ nhất để tạo tệp này là sao chép
google-ads.yaml
ví dụ 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ã 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.
Nếu bạn không cung cấp đường dẫn, thư viện sẽ tìm trong thư mục $HOME
của bạn
cho tệp:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Để 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 sẽ được truyền vào phương thức và phương thức ở trên biến môi trường đang tồn tại—khi đó thư viện sẽ ưu tiên đường dẫn được chuyển vào phương thức.
Cấu hình 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. Điều này
sẽ được đọc khi sử dụng phương thức load_from_env
của ứng dụng. Môi trường
các biến phải có cùng tên với tên được xác định trong google-ads.yaml
nhưng phải viết hoa toàn bộ và có tiền tố GOOGLE_ADS_
không gian tên. Ví dụ: client_id
phải được lưu trữ dưới dạng GOOGLE_ADS_CLIENT_ID
.
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ư
dưới dạng tệp .bashrc
hoặc .bash_profile
nằm trong thư mục $HOME
. Chúng
cũng có thể được xác định bằng dòng lệnh. Xin lưu ý rằng các hướng dẫn này
giả sử 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 các biến môi trường trong
mà bạn đang dùng.
Dưới đây là một số bước cơ bản để xác định một biến môi trường bằng .bashrc
bằng cửa sổ dòng lệnh:
# 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 trực tiếp các biến môi trường trong thực thể thiết bị đầu cuối của mình 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ừ environ
trên mô-đun os
tích hợp sẵn 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 phiên bản ứng dụng có 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, cấu hình
phải là một đối tượng JSON khớp với cấu trúc của các khoá YAML trong
mẫu google-ads.yaml
tệp cấu hình.
Sau đây là ví dụ về cách thiết lập giá trị này bằng cách sử dụ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 chuỗi YAML
Nếu đã đọc tệp YAML vào bộ nhớ, bạn có thể cung cấp trực tiếp tệp này cho
khi khởi chạy. Để thực hiện việc này, bạn 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)
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 YAML hay lệnh chính tả cấu hì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 vào API.login_customer_id
: Xem tài liệu vềlogin-customer-id.linked_customer_id
: Xem linked-customer-id tài liệu.json_key_file_path
(trước đây làpath_to_private_key_file
): Đường dẫn đến một tệp khoá riêng tư cục bộ. Số điện thoại này được dùng để xác thực bằng một dịch vụ tài khoản. 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 sử dụng với tư cách là người được uỷ quyền. Số điện thoại 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 về proxy.use_proto_plus
: Có sử dụng thông báo proto-plus 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
Trường ghi nhật ký, là các trường bên dưới cấu hình logging
trường này được lấy trực tiếp từ mô-đun tích hợp logging.config
vì thư viện sẽ truyền mọi trường trong không gian tên logging
trực tiếp đến
logging.config.dictConfig
. Xem hướng dẫn ghi nhật ký để biết đầy đủ thông tin 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 trình ghi nhật ký có được định cấu hình ở nơi khác trong hay không ứng dụng sẽ bị tắt.formatters
: Từ điển xác định các loại trình định dạng khác nhau.handlers
: Từ điển xác định nhiều trình xử lý, kiểm soát vị trí nhật ký được ghi vào và trình định dạng nào nên được sử dụng.loggers
: Từ điển xác định nhiều loại trình ghi nhật ký, bao gồm trình xử lý và cấp độ nhật ký.