Google มีไลบรารีของไคลเอ็นต์ Python สําหรับการโต้ตอบกับ Ad Manager API เราขอแนะนําให้ใช้คลังไลบรารีไคลเอ็นต์กับ PyPI
เริ่มต้นใช้งานโดยสร้างโปรเจ็กต์ใหม่ใน IDE ที่ต้องการ หรือเพิ่มข้อกำหนดในโปรเจ็กต์ที่มีอยู่ Google เผยแพร่อาร์ติแฟกต์ไลบรารีของไคลเอ็นต์ไปยัง PyPI เป็น google-ads-admanager
pip install google-ads-admanager
กำหนดค่าข้อมูลเข้าสู่ระบบ
ไลบรารีของไคลเอ็นต์ Python ใช้ OAuth2 และข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) เพื่อตรวจสอบสิทธิ์
ADC จะค้นหาข้อมูลเข้าสู่ระบบตามลําดับในตําแหน่งต่อไปนี้
- ตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
- ข้อมูลเข้าสู่ระบบของผู้ใช้ที่ตั้งค่าผ่าน Google Cloud CLI (gcloud CLI)
- เมื่อทำงานใน Google Cloud บัญชีบริการที่แนบอยู่กับทรัพยากร Google Cloud
ดูการสร้างและกําหนดค่าข้อมูลเข้าสู่ระบบ ADC ได้ที่การตรวจสอบสิทธิ์
ส่งคำขอแรก
แต่ละบริการมีออบเจ็กต์ ServiceClient
ที่มีเมธอดทั้งแบบซิงค์และแบบไม่ซิงค์สําหรับเมธอด REST แต่ละรายการ ตัวอย่างต่อไปนี้จะอ่าน Network
แบบพร้อมกัน
from google.ads import admanager_v1
def sample_get_network():
# Create a client
client = admanager_v1.NetworkServiceClient()
# Initialize request argument(s)
request = admanager_v1.GetNetworkRequest(
name="networks/[NETWORK_CODE]",
)
# Make the request
response = client.get_network(request=request)
# Handle the response
print(response)
ดูตัวอย่างวิธีการและแหล่งข้อมูลอื่นๆ ได้ที่ที่เก็บ GitHub
googleapis/google-cloud-python
บันทึกคำขอ HTTP และการตอบกลับ
ไลบรารีของไคลเอ็นต์ Python ใช้logging
ไลบรารี Python มาตรฐานเพื่อบันทึกคําขอและคําตอบ HTTP ระบบจะปิดใช้การบันทึกโดยค่าเริ่มต้น
หากต้องการเปิดใช้การบันทึก ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_SDK_PYTHON_LOGGING_SCOPE
ตัวแปรสภาพแวดล้อมนี้จะกําหนดค่าการจัดการเหตุการณ์การบันทึกในระดับ logging.DEBUG
ขึ้นไป
# Log only Ad Manager API events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.ads.admanager_v1
# Log all Google library events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google
หรือจะใช้โมดูล logging
ของ Python ก็ได้ โดยทำดังนี้
import logging
from google.ads import admanager_v1
logger = logging.getLogger("google.ads.admanager_v1")
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
จัดการข้อผิดพลาด
ข้อผิดพลาด API ทั้งหมดจะขยายคลาสพื้นฐาน GoogleAPIError
ช่องเหตุผลของข้อผิดพลาดจะระบุประเภทข้อผิดพลาดโดยไม่ซ้ำกัน ใช้ช่องนี้เพื่อกำหนดวิธีจัดการข้อผิดพลาด
try:
network = client.get_network(request=request)
print(network)
except GoogleAPIError as e:
# Handle error
print(e.reason)
ข้อผิดพลาดของ Ad Manager API จะมี requestId
ที่ไม่ซ้ำกันซึ่งคุณสามารถส่งให้ฝ่ายสนับสนุนเพื่อขอความช่วยเหลือในการแก้ปัญหา ตัวอย่างต่อไปนี้จะดึงข้อมูล requestId
ออกจาก GoogleAPIError
except GoogleAPIError as e:
requestInfoType = "type.googleapis.com/google.rpc.RequestInfo"
requestInfo = [detail for detail in e.details if detail['@type'] == requestInfoType][0]
print(requestInfo['requestId'])
ตั้งค่าพร็อกซี
ไลบรารีของไคลเอ็นต์ Python จะยึดตามการตั้งค่าตัวแปรสภาพแวดล้อม http_proxy
และ https_proxy