คุณสามารถกำหนดค่าไลบรารีของไคลเอ็นต์ Python โดยใช้ไฟล์ YAML, ตัวแปรสภาพแวดล้อม
สตริง YAML หรือ dict
การกำหนดค่าการตรวจสอบสิทธิ์
คุณจัดการข้อมูลเข้าสู่ระบบ OAuth ที่จำเป็นต่อการเข้าถึง Google Ads API ได้หลายวิธี แนวทางที่คุณเลือกจะมีผลต่อช่องการกำหนดค่าที่คุณใช้ ดูข้อมูลเพิ่มเติมได้ที่คู่มือการตรวจสอบสิทธิ์
การกำหนดค่าโดยใช้ไฟล์ YAML
คุณสามารถระบุไฟล์ YAML ที่จะใช้เมื่อเริ่มต้นไคลเอ็นต์ซึ่งมี
ข้อมูลที่จำเป็นต่อการส่งคำขอไปยัง Google Ads API ระบบจะเข้าถึงไฟล์นี้เมื่อเริ่มต้นไคลเอ็นต์โดยใช้วิธี load_from_storage
วิธีที่ง่ายที่สุดในการสร้างไฟล์นี้คือการคัดลอกตัวอย่าง
google-ads.yamlจากที่เก็บ GitHub แล้วแก้ไข
ให้มีข้อมูลเข้าสู่ระบบของคุณ รวมถึงโทเค็นการรีเฟรช รหัสไคลเอ็นต์ และ
ข้อมูลลับของไคลเอ็นต์
หากคุณไม่ระบุเส้นทาง ไลบรารีจะค้นหาไฟล์ในไดเรกทอรี $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
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
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 นอกจากนี้ยังกำหนดได้โดยใช้บรรทัดคำสั่งด้วย
ต่อไปนี้เป็นขั้นตอนพื้นฐานในการกำหนดตัวแปรสภาพแวดล้อมโดยใช้ไฟล์ .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.
source ~/.bashrc
คุณยังตั้งค่าตัวแปรสภาพแวดล้อมในอินสแตนซ์เทอร์มินัลได้โดยตรงจาก บรรทัดคำสั่ง
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
เมธอด 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"
}
}
}'
ประเด็นสำคัญ: หากมีการตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_ADS_CONFIGURATION_FILE_PATH เมื่อมีการเรียกใช้เมธอด load_from_env ระบบจะดึงค่าการกำหนดค่าจากไฟล์ google-ads.yaml ที่อยู่ในเส้นทางที่ระบุ ไม่ใช่จากตัวแปรสภาพแวดล้อมที่อธิบายไว้ก่อนหน้านี้
การกำหนดค่าโดยใช้สตริง YAML
หากอ่านไฟล์ YAML ลงในหน่วยความจำแล้ว คุณจะระบุไฟล์ดังกล่าวให้กับไคลเอ็นต์ได้โดยตรงเมื่อเริ่มต้น โดยทำดังนี้load_from_string
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
การกำหนดค่าโดยใช้ dict
คุณส่ง dict ไปยังเมธอด load_from_dict ได้โดยตรง เช่น
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
ฟิลด์การกำหนดค่า
การกำหนดค่าไลบรารีของไคลเอ็นต์รองรับฟิลด์ต่อไปนี้
การตรวจสอบสิทธิ์
ใช้กลุ่มฟิลด์ใดกลุ่มหนึ่งต่อไปนี้เท่านั้น ทั้งนี้ขึ้นอยู่กับแนวทางการตรวจสอบสิทธิ์ ที่คุณใช้
- ผู้ใช้คนเดียวที่มีข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (เอกสารประกอบ)
use_application_default_credentials: ไลบรารีควรใช้ ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) สำหรับการตรวจสอบสิทธิ์หรือไม่ (รองรับในgoogle-adsv28.3.0ขึ้นไป)
- ผู้ใช้คนเดียวที่มีโทเค็น OAuth (เอกสารประกอบ)
client_id: รหัสไคลเอ็นต์ OAuthclient_secret: รหัสลับไคลเอ็นต์ OAuthrefresh_token: โทเค็นการรีเฟรช OAuth
- บัญชีบริการ (เอกสารประกอบ)
json_key_file_path: เส้นทางไปยังไฟล์คีย์ส่วนตัวในเครื่อง ใช้สำหรับการ ตรวจสอบสิทธิ์โดยใช้บัญชีบริการimpersonated_email: อีเมลของบัญชีที่จะใช้แอบอ้าง (ไม่บังคับ) เมื่อใช้การมอบสิทธิ์ระดับโดเมนของ Google Workspace
ลักษณะการทำงานของคลัง
ฟิลด์เหล่านี้จะกำหนดลักษณะการทำงานของไลบรารี
logging: ดูรายละเอียดการกำหนดค่าบันทึกhttp_proxy: ดูเอกสารประกอบเกี่ยวกับพร็อกซีuse_proto_plus: ต้องระบุ จะใช้ข้อความ proto-plus หรือไม่ (TrueหรือFalse) ดูเอกสารประกอบข้อความ protobuf
การกำหนดค่าระดับคำขอ
linked_customer_id: ดูเอกสารประกอบเกี่ยวกับรหัสลูกค้าที่ลิงก์login_customer_id: ดูเอกสารประกอบเกี่ยวกับรหัสลูกค้าที่ใช้เข้าสู่ระบบendpoint: ที่อยู่ปลายทาง Google Ads API ทางเลือกที่ไม่บังคับads_assistant: ตัวระบุที่ไม่บังคับสำหรับส่วนหัวของผู้ช่วย Google Ads API
ตัวแปรสภาพแวดล้อม
หากต้องการกำหนดค่าไลบรารีโดยใช้ตัวแปรสภาพแวดล้อม ให้ใช้สิ่งต่อไปนี้
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(รองรับในv28.3.0และเวอร์ชันที่ใหม่กว่า)
การกำหนดค่าบันทึก
ฟิลด์บันทึกซึ่งเป็นฟิลด์ที่อยู่ใต้ฟิลด์กำหนดค่า logging จะได้มาจากโมดูลในตัว logging.config โดยตรง เนื่องจากไลบรารีจะส่งฟิลด์ทั้งหมดภายใต้เนมสเปซ logging ไปยังเมธอด logging.config.dictConfig โดยตรง ดูรายละเอียดทั้งหมดได้ใน
คู่มือการบันทึก
version: ค่าจำนวนเต็มที่แสดงเวอร์ชันของสคีมาdisable_existing_loggers: ควรกำหนดให้ปิดใช้เครื่องมือบันทึกที่กำหนดค่าไว้ที่อื่นในแอปพลิเคชันหรือไม่formatters: พจนานุกรมที่กำหนดรูปแบบต่างๆhandlers: พจนานุกรมที่กำหนดตัวแฮนเดิลต่างๆ ซึ่งควบคุมตำแหน่งที่จะเขียนบันทึก และตัวจัดรูปแบบที่ควรใช้loggers: พจนานุกรมที่กำหนดประเภทของเครื่องบันทึกที่แตกต่างกัน ซึ่งรวมถึงแฮนเดิลและระดับบันทึก