คุณสามารถกำหนดค่าไลบรารีของไคลเอ็นต์ 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: ดูเอกสารประกอบเกี่ยวกับ linked-customer-idlogin_customer_id: ดูเอกสารประกอบเกี่ยวกับ login-customer-idendpoint: ที่อยู่ปลายทาง Google Ads API ทางเลือก (ไม่บังคับ)ads_assistant: ตัวระบุที่ไม่บังคับสำหรับส่วนหัวของ Google Ads API Assistant
ตัวแปรสภาพแวดล้อม
หากต้องการกำหนดค่าไลบรารีโดยใช้ตัวแปรสภาพแวดล้อม ให้ใช้ตัวแปรต่อไปนี้
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: พจนานุกรมที่กำหนดประเภทต่างๆ ของตัวบันทึก ซึ่งรวมถึงแฮนเดิลและระดับบันทึก