การดึงข้อมูลการอ้างอิงคลาสโปรโตต่างๆ ทั้งหมดที่จำเป็นต่อการใช้ API ใน Python อาจเป็นได้แบบละเอียดและคุณต้องเข้าใจ API อย่างแท้จริงหรือต้องเปลี่ยนบริบทบ่อยๆ เพื่ออ้างอิงโปรโตหรือเอกสารประกอบ
เมธอด get_service
และ get_type
ของไคลเอ็นต์
เมธอด Getter ทั้งสองวิธีนี้ช่วยให้คุณเรียกบริการหรือออบเจ็กต์ประเภทใน API ได้ เมธอด get_service
ใช้เพื่อเรียกข้อมูลไคลเอ็นต์บริการ get_type
ใช้กับออบเจ็กต์อื่นๆ ระบบจะกำหนดคลาสไคลเอ็นต์บริการไว้ในโค้ดภายใต้เส้นทางเวอร์ชัน google/ads/googleads/v*/services/services/
และมีการกำหนดประเภททั้งหมดภายใต้หมวดหมู่ออบเจ็กต์ต่างๆ google/ads/googleads/v*/common|enums|errors|resources|services/types/
ระบบจะสร้างโค้ดทั้งหมดภายใต้ไดเรกทอรีเวอร์ชันขึ้นมา แนวทางปฏิบัติแนะนำคือการใช้วิธีการเหล่านี้แทนการนำเข้าออบเจ็กต์โดยตรงในกรณีที่โครงสร้างของฐานของโค้ดเปลี่ยนแปลง
ตัวอย่างวิธีใช้เมธอด get_service
เพื่อเรียกข้อมูลอินสแตนซ์ของไคลเอ็นต์ GoogleAdsService
from google.ads.googleads.client import GoogleAdsClient
# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")
ตัวอย่างวิธีใช้เมธอด get_type
เพื่อเรียกข้อมูลอินสแตนซ์ Campaign
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v16")
campaign = client.get_type("Campaign")
Enum
แม้ว่าคุณจะใช้เมธอด get_type
เพื่อเรียกข้อมูล Enum ได้ แต่อินสแตนซ์ของ GoogleAdsClient
แต่ละรายการก็มีแอตทริบิวต์ enums
ที่โหลด Enum แบบไดนามิกโดยใช้กลไกเดียวกันกับเมธอด get_type
อินเทอร์เฟซนี้ออกแบบมาให้เรียบง่ายและอ่านง่ายขึ้นกว่าการใช้ get_type
client = GoogleAdsClient.load_from_storage(version=v16)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
ช่องออบเจ็กต์ Proto ที่เป็น enum จะแสดงใน Python ตามประเภท enum แบบเนทีฟ ซึ่งหมายความว่าคุณจะอ่านคุณค่าของสมาชิกได้อย่างง่ายดาย การทำงานกับอินสแตนซ์ campaign
จากตัวอย่างก่อนหน้านี้ใน repl ของ Python
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
บางครั้งการทราบชื่อช่องที่สอดคล้องกับค่า enum ดังที่แสดงด้านบนก็มีประโยชน์ คุณเข้าถึงข้อมูลนี้ได้โดยใช้แอตทริบิวต์ name
ดังนี้
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
การโต้ตอบกับ enum จะแตกต่างกันไปขึ้นอยู่กับว่าคุณตั้งค่าการกำหนดค่า use_proto_plus
เป็น true
หรือ false
โปรดดูรายละเอียดเกี่ยวกับอินเทอร์เฟซทั้ง 2 แบบในเอกสารประกอบเกี่ยวกับข้อความ Protobuf
การกำหนดเวอร์ชัน
ระบบจะเก็บรักษา API หลายเวอร์ชันพร้อมๆ กัน แม้ว่า v16
อาจเป็นเวอร์ชันล่าสุด แต่เวอร์ชันก่อนหน้าจะยังเข้าถึงได้จนกว่าจะมีการหยุดให้บริการ ไลบรารีนี้จะมีคลาสข้อความ Proto แยกต่างหากซึ่งสอดคล้องกับเวอร์ชัน API ที่ใช้งานอยู่แต่ละเวอร์ชัน หากต้องการเข้าถึงคลาสข้อความของเวอร์ชันที่เจาะจง ให้ระบุพารามิเตอร์คีย์เวิร์ด version
เมื่อเริ่มต้นไคลเอ็นต์เพื่อให้แสดงผลอินสแตนซ์จากเวอร์ชันที่ระบุเสมอ ดังนี้
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v16/")
# The Campaign instance will be from the v16 version of the API.
campaign = client.get_type("Campaign")
นอกจากนี้ยังสามารถระบุเวอร์ชันเมื่อเรียกใช้เมธอด get_service
และ get_type
ได้ด้วย การดำเนินการนี้จะลบล้างเวอร์ชันที่ระบุเมื่อเริ่มต้นไคลเอ็นต์ ดังนี้
client = GoogleAdsService.load_from_storage()
# This will load the v16 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v16")
client = GoogleAdsService.load_from_storage(version="v16")
# This will load the v14 version of a Campaign.
campaign = client.get_type("Campaign", version="v14")
หากไม่ได้ระบุพารามิเตอร์คีย์เวิร์ด version
ไว้ ไลบรารีจะใช้เวอร์ชันล่าสุดโดยค่าเริ่มต้น ดูรายการอัปเดตของเวอร์ชันล่าสุดและเวอร์ชันอื่นๆ ที่พร้อมใช้งานได้ในส่วนการนำทางด้านซ้ายของเอกสารประกอบข้อมูลอ้างอิง API