การกำหนดค่าไคลเอ็นต์ทำได้หลายวิธี
การกำหนดค่าการตรวจสอบสิทธิ์
คุณจัดการข้อมูลเข้าสู่ระบบ 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
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)
ฟิลด์การกำหนดค่า
การกำหนดค่าไลบรารีของไคลเอ็นต์รองรับฟิลด์ต่อไปนี้
การตรวจสอบสิทธิ์
ใช้เฉพาะกลุ่มฟิลด์กลุ่มใดกลุ่มหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับแนวทางการตรวจสอบสิทธิ์ที่คุณใช้
- ผู้ใช้คนเดียวที่มีข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (เอกสารประกอบ)
use_application_default_credentials: ไลบรารีควรใช้ ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) สำหรับการตรวจสอบสิทธิ์หรือไม่
- ผู้ใช้คนเดียวที่มีโทเค็น OAuth (เอกสารประกอบ)
client_id: รหัสไคลเอ็นต์ OAuthclient_secret: รหัสลับไคลเอ็นต์ OAuthrefresh_token: โทเค็นการรีเฟรช OAuth ของคุณ
- บัญชีบริการ (เอกสารประกอบ)
json_key_file_path: เส้นทางไปยังไฟล์คีย์ส่วนตัวในเครื่อง ใช้สำหรับ การตรวจสอบสิทธิ์โดยใช้บัญชีบริการ
พฤติกรรมในคลัง
ฟิลด์เหล่านี้จะกำหนดลักษณะการทำงานของไลบรารี
logging: ดูรายละเอียดการกำหนดค่าการบันทึกhttp_proxy: ดูเอกสารประกอบเกี่ยวกับพร็อกซีuse_proto_plus: จะใช้ข้อความ proto-plus หรือไม่ ดูเอกสารประกอบเกี่ยวกับข้อความ Protobuf
การกำหนดค่าระดับคำขอ
developer_token: ต้องระบุ โทเค็นนักพัฒนาซอฟต์แวร์ของคุณสําหรับการเข้าถึง APIlinked_customer_id: ดูเอกสารประกอบเกี่ยวกับรหัสลูกค้าที่ลิงก์login_customer_id: ดู เอกสารประกอบเกี่ยวกับรหัสลูกค้าสำหรับเข้าสู่ระบบ
ตัวแปรสภาพแวดล้อม
หากต้องการกำหนดค่าไลบรารีโดยใช้ตัวแปรสภาพแวดล้อม ให้ใช้สิ่งต่อไปนี้
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_HTTP_PROXYGOOGLE_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
การกำหนดค่าการบันทึก
ฟิลด์การบันทึกซึ่งเป็นฟิลด์ที่อยู่ใต้ฟิลด์loggingการกำหนดค่า
ได้มาจากlogging.configโมดูลในตัว
โดยตรง เนื่องจากไลบรารีจะส่งฟิลด์ทั้งหมดภายใต้loggingเนมสเปซ
ไปยังเมธอด logging.config.dictConfig โดยตรง ดูรายละเอียดทั้งหมดได้ในคำแนะนำในการบันทึก
version: ค่าจำนวนเต็มที่แสดงถึงเวอร์ชันของสคีมาdisable_existing_loggers: ควรกำหนดค่าเครื่องบันทึกที่กำหนดค่าไว้ที่อื่นในแอปพลิเคชันหรือไม่formatters: พจนานุกรมที่กำหนดรูปแบบต่างๆhandlers: พจนานุกรมที่กำหนดตัวแฮนเดิลต่างๆ ซึ่งควบคุมตำแหน่งที่จะเขียนบันทึก และตัวจัดรูปแบบที่ควรใช้loggers: พจนานุกรมที่กำหนดประเภทของเครื่องบันทึกที่แตกต่างกัน ซึ่งรวมถึง ตัวแฮนเดิลและระดับบันทึก