Google מספקת ספריית לקוח Python לאינטראקציה עם Ad Manager API. מומלץ להשתמש בספריית הלקוח עם PyPI.
כדי להתחיל, יוצרים פרויקט חדש בסביבת הפיתוח המשולבת (IDE) שבחרתם או מוסיפים את התלות לפרויקט קיים. Google מפרסמת ארטיפקטים של ספריות לקוח ב-PyPI בתור google-ads-admanager.
requirements.txt
google-ads-admanager==0.10.5
שורת הפקודה
pip install google-ads-admanager
הגדרת פרטי כניסה
ספריית הלקוח של Python משתמשת ב-OAuth2 וב-Application Default Credentials (ADC) לצורך אימות.
החיפוש של פרטי הכניסה ב-ADC מתבצע בסדר הבא:
- משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS. - פרטי כניסה של משתמשים שהוגדרו באמצעות ה-CLI של gcloud (ה-CLI של gcloud).
- כשמריצים ב-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
לחלופין, אפשר להשתמש במודול Python logging:
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'])
קביעת הגדרות לשרת proxy
ספריית הלקוח של Python משאירה את ערכי המשתנים http_proxy ו-https_proxy בהגדרות של משתני הסביבה כפי שהם.