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

אחזור הפניות לכל מחלקות הפרוטו השונות שנדרש כדי להשתמש ב-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/. כל הקוד שמתחת לספריית הגרסאות נוצר, ולכן מומלץ להשתמש בשיטות האלה במקום לייבא את האובייקטים ישירות, במקרה שהמבנה של ה-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 v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")

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

from google.ads.googleads.client import GoogleAdsClient

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

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

אפשר להשתמש בשיטה 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 מהדוגמה הקודמת ברפל Python:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

לפעמים כדאי לדעת את שם השדה שתואם לערך הטיפוסי בניום כפי שמוצג למעלה. אפשר לגשת למידע הזה באמצעות המאפיין name:

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

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

ניהול גרסאות

כמה גרסאות של ה-API מנוהלות בו-זמנית. v16 יכול להיות שהגרסה האחרונה היא הגרסה האחרונה, אבל עדיין אפשר לגשת לגרסאות קודמות עד לסגירתן. הספרייה תכלול מחלקות נפרדות של פרוטו הודעות שמתאימות לכל גרסת 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 תוכלו למצוא רשימה מעודכנת של הגרסאות העדכניות ביותר ושל שאר הגרסאות.