การกำหนดค่าไคลเอ็นต์มีหลายวิธี
การกําหนดค่าโดยใช้ไฟล์ YAML
คุณสามารถระบุไฟล์ YAML เพื่อใช้เมื่อเริ่มต้นไคลเอ็นต์ซึ่งมีข้อมูลการตรวจสอบสิทธิ์ที่จําเป็นในการส่งคําขอ ระบบจะเข้าถึงไฟล์นี้เมื่อเริ่มต้นใช้งานไคลเอ็นต์โดยใช้เมธอด load_from_storage
วิธีที่ง่ายที่สุดในการสร้างไฟล์นี้คือคัดลอกตัวอย่างจากที่เก็บ GitHub ของ google-ads.yaml
แล้วแก้ไขให้รวมข้อมูลเข้าสู่ระบบของคุณ ซึ่งรวมถึงโทเค็นนักพัฒนาแอป โทเค็นรีเฟรช รหัสไคลเอ็นต์ และรหัสลับไคลเอ็นต์
หากไม่ระบุเส้นทาง คลังจะค้นหาไฟล์ในไดเรกทอรี $HOME
ดังนี้
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
หากต้องการระบุตำแหน่งของไฟล์ 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()
หากระบุทั้ง 2 ค่า ได้แก่ มีการส่งเส้นทางไปยังเมธอด และมีตัวแปรสภาพแวดล้อมข้างต้นอยู่ ไลบรารีจะให้ความสำคัญกับเส้นทางที่ส่งไปยังเมธอด
การกําหนดค่าโดยใช้ตัวแปรสภาพแวดล้อม
คุณสามารถจัดเก็บการกําหนดค่าไคลเอ็นต์ทั้งหมดเป็นตัวแปรสภาพแวดล้อม ซึ่งระบบจะอ่านเมื่อใช้เมธอด load_from_env
ของไคลเอ็นต์ ตัวแปรสภาพแวดล้อมควรมีชื่อเดียวกับที่กําหนดไว้ในไฟล์ google-ads.yaml
แต่ควรเป็นตัวพิมพ์ใหญ่ทั้งหมดและมีGOOGLE_ADS_
เนมสเปซอยู่หน้า เช่น client_id
ควรจัดเก็บเป็น GOOGLE_ADS_CLIENT_ID
โดยทั่วไปแล้ว ระบบจะกำหนดตัวแปรสภาพแวดล้อมไว้ในไฟล์การกำหนดค่า bash เช่น ไฟล์ .bashrc
หรือ .bash_profile
ในไดเรกทอรี $HOME
นอกจากนี้ คุณยังกำหนดโดยใช้บรรทัดคำสั่งได้ด้วย โปรดทราบว่าวิธีการเหล่านี้จะถือว่าคุณใช้ 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
จะโหลดข้อมูลการกําหนดค่าจากแอตทริบิวต์ environ
ในโมดูล os
ในตัวของ Python เช่น os.environ["GOOGLE_ADS_CLIENT_ID"]
ตัวอย่างวิธีเริ่มต้นอินสแตนซ์ไคลเอ็นต์ด้วยการกำหนดค่าจากตัวแปรสภาพแวดล้อมมีดังนี้
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
หากต้องการกําหนดค่า logging
ผ่านตัวแปรสภาพแวดล้อม ค่าการกําหนดค่าต้องเป็นออบเจ็กต์ JSON ที่ตรงกับโครงสร้างของคีย์ YAML ในไฟล์การกําหนดค่า google-ads.yaml
ตัวอย่าง
ต่อไปนี้คือตัวอย่างวิธีตั้งค่าโดยใช้ไฟล์ .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 หรือ dict)
refresh_token
: โทเค็นการรีเฟรช OAuthclient_id
: รหัสไคลเอ็นต์ OAuth ของคุณclient_secret
: รหัสลับไคลเอ็นต์ OAuthdeveloper_token
: โทเค็นนักพัฒนาแอปของคุณสําหรับการเข้าถึง APIlogin_customer_id
: ดูเอกสารประกอบเกี่ยวกับรหัสลูกค้าของฟีเจอร์เข้าสู่ระบบlinked_customer_id
: ดูเอกสารประกอบเกี่ยวกับ linked-customer-idjson_key_file_path
(เดิมคือpath_to_private_key_file
): เส้นทางไปยังไฟล์คีย์ส่วนตัวในเครื่อง ใช้สำหรับตรวจสอบสิทธิ์โดยใช้บัญชีบริการ โปรดดูเอกสารประกอบเกี่ยวกับบัญชีบริการ OAuth2impersonated_email
(เดิมคือdelegate_account
): อีเมลบัญชีที่ใช้เป็นผู้ใช้ที่ได้รับมอบสิทธิ์ ข้อมูลนี้ใช้สําหรับการตรวจสอบสิทธิ์โดยใช้บัญชีบริการ โปรดดูเอกสารประกอบเกี่ยวกับบัญชีบริการ OAuth2logging
: การกําหนดค่าการบันทึก ช่องการบันทึกมีคำอธิบายอยู่ด้านล่างhttp_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
: พจนานุกรมที่กําหนดบันทึกประเภทต่างๆ ซึ่งรวมถึงตัวแฮนเดิลและระดับบันทึก