מקבלי שירותים וסוגים

אחזור הפניות לכל מחלקות הפרוטו השונות שנדרשות כדי להשתמש ב-API ב- Python יכול להיות ארוך ומחייב הבנה עמוקה של API או שינוי ההקשר לעיתים קרובות כדי להפנות לפרוטוסים או למסמכי התיעוד.

שיטות get_service ו-get_type של הלקוח

שתי ה-methods האלה של getter מאפשרות לאחזר כל אובייקט של שירות או סוג, API. השיטה get_service משמשת לאחזור לקוחות שירות. get_type משמש לכל אובייקט אחר. המחלקות של לקוחות השירות מוגדרות בקוד לנתיב הגרסה google/ads/googleads/v*/services/services/ ולכל השאר מוגדרים לפי קטגוריות האובייקטים השונות, google/ads/googleads/v*/common|enums|errors|resources|services/types/. כל הקוד שמתחת לספריית הגרסאות נוצר, כך להשתמש בשיטות האלה במקום לייבא את האובייקטים ישירות, במקרה של השינויים ב-codebase.

דוגמה לאופן שבו משתמשים ב-method 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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")

הנה דוגמה לשימוש ב-method get_type כדי לאחזר מופע של Campaign.

from google.ads.googleads.client import GoogleAdsClient

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

טיפוסים בני מנייה (enum)

אפשר להשתמש בשיטה get_type כדי לאחזר את ה-Enum, אבל למופע של GoogleAdsClient יש גם מאפיין enums טוענת את Enum באמצעות אותו מנגנון כמו ה-method get_type. בממשק הזה אמור להיות פשוט וקל יותר לקריאה מאשר שימוש ב-get_type:

client = GoogleAdsClient.load_from_storage(version=v17)

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

שדות של אובייקט ב-Proto שהם טיפוסים בני מנייה מיוצגים ב-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'>

האינטראקציה עם טיפוסים בני מנייה משתנה בהתאם ל: use_proto_plus ההגדרות האישיות שהוגדרו ל-true או ל-false. לפרטים על שני הממשקים: את התיעוד של הודעות Protobuf.

ניהול גרסאות

מספר גרסאות של ה-API מתוחזקות בו-זמנית. בזמן יכול להיות ש-v17 היא הגרסה העדכנית ביותר. גרסאות קודמות עדיין קיימות יהיו נגישות עד השקיעה. הספרייה תכלול פרוטו נפרד סיווגי ההודעות שתואמים לכל גרסת API פעילה. כדי לגשת להודעה class עבור גרסה ספציפית מספק את הפרמטר version של מילת מפתח כאשר אתחול של הלקוח כך שתמיד יחזיר את המכונה version:

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

אפשר גם לציין את הגרסה כשמבצעים קריאה ל-get_service ול- get_type אמצעי תשלום. הפעולה הזו תבטל את הגרסה שסופקה אתחול הלקוח:

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

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

אם לא תספקו פרמטר version של מילת מפתח, הספרייה תשתמש כברירת מחדל באמצעות את הגרסה העדכנית ביותר. רשימה מעודכנת של הגרסאות האחרונות וגרסאות זמינות אחרות בקטע הניווט הימני של מסמכי תיעוד של API Reference.