用戶端的設定方式有很多種,
使用 YAML 檔案進行設定
您可以指定初始化要求時包含的 YAML 檔案,其中包含發出要求所需的驗證資訊。使用 load_from_storage
方法初始化用戶端時,系統會存取這個檔案。產生這個檔案最簡單的方法,就是從 GitHub 存放區複製 google-ads.yaml
範例,並修改檔案,包括您的開發人員憑證、重新整理憑證、用戶端 ID 和用戶端密鑰。
如要指定 google-ads.yaml
檔案的所在位置,您可以在呼叫檔案時將路徑當做字串傳遞給方法:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
您也可以定義特定環境變數來指定路徑:
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()
如果同時提供這兩個值 (路徑傳送到方法,「而且」包含上述環境變數),程式庫會優先傳遞至方法的路徑。
如未提供路徑,程式庫會在 $HOME
目錄中尋找檔案:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
使用環境變數進行設定
您可以將所有用戶端設定儲存為環境變數。使用用戶端的 load_from_env
方法時,系統會讀取這些變數。環境變數的名稱應與 google-ads.yaml
檔案中定義的名稱相同,但必須全部大寫,且前面加上 GOOGLE_ADS_
命名空間。舉例來說,client_id
應儲存為 GOOGLE_ADS_CLIENT_ID
。
環境變數通常是在 bash 設定檔中定義,例如位於 $HOME
目錄中的 .bashrc
或 .bash_profile
檔案。也可以使用指令列定義這些變數。請注意,這些操作說明假設您使用的是 bash
。如果您使用的是其他殼層,可能需要參閱說明文件,瞭解如何在使用的殼層中設定環境變數。
以下是使用終端機使用 .bashrc
檔案定義環境變數的基本步驟:
# 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
您也可以直接透過指令列在終端機執行個體中設定環境變數:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
load_from_env
方法會從 Python 內建 os
模組的 environ
屬性載入設定資料。例如:os.environ["GOOGLE_ADS_CLIENT_ID"]
以下範例說明如何使用環境變數初始化用戶端執行個體:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
如要透過環境變數設定 logging
,設定值必須是與範例 google-ads.yaml
設定檔 YAML 金鑰結構相同的 JSON 物件。
以下範例說明如何使用 .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"
}
}
}'
使用 YAML 字串進行設定
如果您已將 YAML 檔案讀取至記憶體,可以直接在初始化時將該檔案提供給用戶端。方法很簡單,只要使用 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)
使用 dict
進行設定
您可以將 dict
直接傳遞至 load_from_dict
方法。例如:
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)
設定欄位
用戶端程式庫設定支援下列欄位。
一般欄位 (無論使用 YAML 或依附元件設定,這些名稱都是相同的):
refresh_token
:您的 OAuth 更新憑證。client_id
:您的 OAuth 用戶端 ID。client_secret
:您的 OAuth 用戶端密鑰。developer_token
:用來存取 API 的開發人員權杖。login_customer_id
:請參閱 login-customer-id 說明文件。linked_customer_id
:請參閱 linked-customer-id 說明文件。json_key_file_path
(原為path_to_private_key_file
):本機私密金鑰檔案的路徑。這會使用服務帳戶進行驗證。請參閱 OAuth2 服務帳戶說明文件。impersonated_email
(原稱delegate_account
):做為委派代表的帳戶電子郵件。這會使用服務帳戶進行驗證。請參閱 OAuth2 服務帳戶說明文件。logging
:記錄設定。記錄欄位的說明如下。http_proxy
:請參閱 Proxy 說明文件。use_proto_plus
:是否使用 proto-plus 訊息。請參閱 Protobuf 訊息說明文件。
做為環境變數的一般欄位:
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
(原為「GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
」)GOOGLE_ADS_IMPERSONATED_EMAIL
(原為「GOOGLE_ADS_DELEGATE_ACCOUNT
」)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
記錄欄位是 logging
設定欄位下的欄位,是直接從 logging.config
內建模組衍生而來,因為程式庫會將 logging
命名空間下的所有欄位直接傳遞至 logging.config.dictConfig
方法。詳情請參閱記錄指南。
version
:代表結構定義版本的整數值。disable_existing_loggers
:是否應停用應用程式中其他位置設定的記錄器。formatters
:定義各種格式格式的字典。handlers
:定義不同處理常式的字典,用於控制記錄寫入的位置和應使用何種格式。loggers
:定義不同類型的記錄器的字典,其中包括處理常式和記錄層級。