ตัวรับบริการและประเภท

การดึงข้อมูลอ้างอิงไปยังคลาส Proto ต่างๆ ทั้งหมดที่จำเป็นต้องใช้ API ใน Python อาจมีรายละเอียดมากและกำหนดให้คุณต้องมีความเข้าใจอย่างถ่องแท้เกี่ยวกับ API หรือสลับบริบทบ่อยๆ เพื่ออ้างอิง Proto หรือเอกสารประกอบ

เมธอด get_service และ get_type ของไคลเอ็นต์

เมธอด Getter 2 รายการนี้ช่วยให้คุณดึงข้อมูลออบเจ็กต์บริการหรือออบเจ็กต์ประเภทใดก็ได้ใน 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 v25 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v25")
googleads_service = client.get_service("GoogleAdsService")

ตัวอย่างวิธีใช้เมธอด get_type เพื่อดึงข้อมูล Campaign อินสแตนซ์

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v25")
campaign = client.get_type("Campaign")

Enum

แม้ว่าคุณจะใช้เมธอด get_type เพื่อดึงข้อมูล Enum ได้ แต่แต่ละอินสแตนซ์ GoogleAdsClient ยังมีแอตทริบิวต์ enums ที่โหลด Enum แบบไดนามิกโดยใช้กลไกเดียวกับเมธอด get_type อินเทอร์เฟซนี้มีไว้เพื่อให้ใช้งานง่ายและอ่านง่ายกว่าการใช้ get_type

client = GoogleAdsClient.load_from_storage(version=v25)

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

ช่องออบเจ็กต์ Proto ที่เป็น Enum จะแสดงใน Python ด้วยประเภท Enum ดั้งเดิม ซึ่งหมายความว่าคุณสามารถอ่านค่าของสมาชิกได้อย่างง่ายดาย ตัวอย่างการทำงานกับอินสแตนซ์ campaign จากตัวอย่างก่อนหน้าใน Python repl

>>> 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 หลายเวอร์ชันพร้อมกัน แม้ว่า v25 อาจเป็นเวอร์ชันล่าสุด แต่คุณยังคงเข้าถึงเวอร์ชันก่อนหน้าได้จนกว่าจะเลิกใช้งาน ไลบรารีจะมีคลาสข้อความ Proto แยกต่างหากที่สอดคล้องกับ API แต่ละเวอร์ชันที่ใช้งานอยู่ หากต้องการเข้าถึงคลาสข้อความสำหรับเวอร์ชันที่เฉพาะเจาะจง ให้ระบุพารามิเตอร์คีย์เวิร์ด version เมื่อเริ่มต้นไคลเอ็นต์เพื่อให้ระบบแสดงอินสแตนซ์จากเวอร์ชันที่ระบุนั้นเสมอ

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v25/")
# The Campaign instance will be from the v25 version of the API.
campaign = client.get_type("Campaign")

นอกจากนี้ คุณยังระบุเวอร์ชันเมื่อเรียกเมธอด get_service และ get_type ได้ด้วย การดำเนินการนี้จะลบล้างเวอร์ชันที่ระบุเมื่อเริ่มต้นไคลเอ็นต์

client = GoogleAdsService.load_from_storage()
# This will load the v25 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v25")

client = GoogleAdsService.load_from_storage(version="v25")
# This will load the v23 version of a Campaign.
campaign = client.get_type("Campaign", version="v23")

หากไม่ได้ระบุพารามิเตอร์คีย์เวิร์ด version ไลบรารีจะใช้เวอร์ชันล่าสุดโดยค่าเริ่มต้น คุณสามารถดูรายการเวอร์ชันล่าสุดและเวอร์ชันอื่นๆ ที่พร้อมใช้งาน ได้ในส่วนการนำทางด้านซ้ายของ เอกสารประกอบอ้างอิง API