כל אפליקציה שמשתמשת ב-Display & Video 360 API חיונית לאופטימיזציה של המכסות. אופטימיזציה של השימוש במכסות משפרת את הביצועים: היא מייעלת את הבקשות ל-API ועוזרת להימנע משגיאות שהוחזרו עקב חריגה ממגבלות הקצב שהוגדרו.
בדף הזה מפורטות שיטות מומלצות כלליות והדגשה של תכונות נוספות ב-Display & Video 360 API שיכולות לעזור לצמצם את השימוש במכסות.
הגשת בקשות במקביל למפרסמים שונים
ברוב השיטות ב-Display & Video 360 API מצוין מפרסם בכתובת ה-URL. בנוסף למכסה ברמת הפרויקט, השיטות האלה נאכפות מגבלות קצב של 'לכל מפרסם לפרויקט' מגבילות יותר כשיוצרים קריאות שמציינות את אותו מפרסם.
כדי לבצע אופטימיזציה למכסה הזו, צריך להגביל את הבקשות שנשלחות בו-זמנית לבקשות של מפרסמים שונים.
שימוש בפרמטרים של filter
ו-orderBy
שימוש בשיטות list
במקום בשיטות get
באחזור משאבים מרובים.
עם זאת, קריאות ל-list
עדיין יכולות לצרוך חלק גדול מהמכסה בגלל מגבלות על גודל הדף. אם רוצים לאחזר רק קבוצת משנה של התשובה לרשימה המלאה, אפשר לבצע אופטימיזציה של השימוש במכסה על ידי ניצול הפרמטרים האופציונליים filter
ו-orderBy
.
הפרמטר filter
מאפשר להגביל את המשאבים שמאוחזרים על ידי הקריאה list
לאלה שהמאפיינים שלהם תואמים לביטויים נתונים. הפרמטר הזה שימושי כשמנסים לאחזר:
- משאב ספציפי עם מזהה לא ידוע אבל מאפיינים ידועים. אם מחפשים משאב ספציפי, אפשר לסנן את הרשימה שהוחזרה לפי מאפיינים ידועים של המשאב הרצוי. לדוגמה, סינון פריטים לפי
displayName
ידוע, נכסי קריאייטיב לפיcreativeType
צפויים ומקורות מלאי לפיexchange
הרלוונטי. - משאבים משויכים. לעיתים קרובות, משאבים ב-Display & Video 360 משויכים זה לזה. אפשר להשתמש במסננים כדי להגביל את המשאבים שמוחזרים למשאבים שיש להם קשר ספציפי אחד עם השני. לדוגמה,
אחזור כל הזמנות ההוספה מתחת ל
campaignId
ספציפי, וכל נכסי הקריאייטיב שהוקצו לפריט שורה. - רק משאבים שיש להם נכסים שמאפשרים פעולה. הפונקציונליות של ה-API מאפשרת לבדוק בקלות את הסטטוס של המשאבים ולהגיב באופן פרוגרמטי. בעזרת מסננים אפשר להשתמש בקריאות
list
כדי לקבל משאבים רק במקרים שבהם צריך לבצע פעולה. לדוגמה, אחזור של כל הפריטים שמציגיםlineItemWarningMessage
שניתן לבצע בהם פעולה, את כל הזמנות ההוספה שעודכנו מאז תאריך ושעה מסוימים, או את כל נכסי הקריאייטיב שנכשלוapprovalStatus
.
הפרמטר orderBy
מאפשר למיין את המשאבים שאוחזרו לפי מאפיינים ספציפיים, בסדר עולה או יורד. אפשר להשתמש ב-orderBy
, במיוחד כשמשתמשים בו לצד filter
, כדי להגביל את מספר הדפים שצריך לעבור לפני איתור משאב ספציפי. הוא גם מאפשר לקבל בקלות את הגבול העליון והתחתון של רשימת המשאבים. לדוגמה, הזמנה לפי updateTime
מאפשרת למצוא במהירות את הפריטים או הזמנות ההוספה האחרונים של מפרסם.
שימוש בפונקציות בכמות גדולה או ברמת המשאבים
ב-Display & Video 360 API יש כמה פונקציות בכמות גדולה ובכל המשאבים, שמבצעות מספר פעולות באמצעות בקשה אחת. דוגמאות לפונקציות מהסוג הזה:
- עריכה בכמות גדולה של אתרים השייכים לערוץ יחיד. לערוצים יכולים להיות מוקצים
אלפי אתרים. במקום לנהל את רשימת האתרים של ערוץ עם בקשות
create
אוdelete
נפרדות, אפשר להשתמש בבקשתbulkEdit
אוreplace
יחידה כדי להוסיף ולהסיר מספר אתרים או להחליף את כל התוכן של הערוץ, בהתאמה. - ניהול כל חבילת הטירגוט של מפרסם. חבילת טירגוט של משאב מוקצית במספר סוגי טירגוט. פונקציות טירגוט ברמת המשאב, כמו
listAssignedTargetingOptions
ו-editAssignedTargetingOptions
בשירותadvertisers
, מאפשרות לאחזר, ליצור ולהסיר הגדרות טירגוט בכמה סוגי טירגוט בבקשה אחת. כך מפחיתים את עלות המכסה של הגדרת חבילת טירגוט של מפרסם לבקשה יחידה. - הגדרה של אותה הגבלת טירגוט במספר פריטים. אם אתם צריכים לבצע את אותם שינויי טירגוט במספר פריטים בבת אחת, אפשר להשתמש בבקשת
advertisers.lineItems.bulkEditAssignedTargetingOptions
אחת. - הפעלה או השהיה של מספר פריטים. צריך להפעיל את הפריטים אחרי שיוצרים אותם, ורק לאחר מכן ניתן להתחיל להציג מודעות. אם אתם יוצרים כמה פריטים ברצף, אפשר להפעיל את כולם באמצעות בקשת
advertisers.lineItems.bulkUpdate
אחת. אפשר להשתמש באותה שיטה כדי להשהות מספר פריטים כדי להפסיק את הצגתם.
שמירה במטמון ובדיקה של מזהים שנעשה בהם שימוש לעיתים קרובות
פעולות רבות ב-Display & Video 360 API מחייבות שימוש במזהי משאבים שמאוחזרים דרך ה-API עצמו, כולל מזהים של אפשרויות טירגוט, מזהי קהלים של Google ועוד. כדי לא לאחזר את המזהים מה-API בכל שימוש, מומלץ לאחסן את המזהים האלה באופן מקומי.
עם זאת, יש משאבים שאפשר להוציא משימוש, למחוק אותם או להפוך אותם לזמינים לשימוש בכל דרך אחרת. ניסיון להשתמש במזהים של המשאבים האלה עלול להחזיר הודעת שגיאה. לכן, מומלץ לבדוק את כל המזהים ששמורים במטמון על בסיס שבועי באמצעות השיטה המתאימה get
או list
המסוננת, כדי לוודא שהם עדיין ניתנים לאחזור ושהסטטוס שלהם צפוי.
הטמעת השהיה מעריכית לפני ניסיון חוזר (exponential backoff) לפעולות ממושכות
כשמבצעים דגימה כדי לבדוק אם פעולה ממושכת, כמו משימה של הורדת SDF, הסתיימה, משתמשים באסטרטגיית השהיה מעריכית לפני ניסיון חוזר (exponential backoff) כדי להפחית את התדירות ואת המספר הכולל של הבקשות שנשלחות.
השהיה מעריכית לפני ניסיון חוזר (exponential backoff) היא אסטרטגיה סטנדרטית לטיפול בשגיאות באפליקציות רשת שבהן הלקוח מנסה שוב ושוב לשלוח בקשות למשך פרק זמן שהולך וגדל. בשימוש נכון, השהיה מעריכית לפני ניסיון חוזר (exponential backoff) מגדילה את היעילות של השימוש ברוחב הפס, מקטינה את מספר הבקשות שדרושות על מנת לקבל תגובה מוצלחת ומגבירה את תפוקת הבקשות בסביבות בו-זמניות.
אפשר למצוא את אסטרטגיית השהיה מעריכית לפני ניסיון חוזר (exponential backoff) שמוטמעת בספריות לקוח בדוגמאות לקודים של SDF להורדת נתונים. כך נראה התהליך המפורט של השהיה מעריכית לפני ניסיון חוזר (exponential backoff):
- שולחים בקשת
sdfdownloadtasks.operations.get
ל-API. - מאחזרים את אובייקט הפעולה.
- אם השדה
done
לא נכון, המשמעות היא שצריך לנסות שוב את הבקשה. - צריך להמתין 5 שניות + מספר אקראי של אלפיות השנייה ולנסות שוב את הבקשה.
- אם השדה
- מאחזרים את אובייקט הפעולה.
- אם השדה
done
לא נכון, המשמעות היא שצריך לנסות שוב את הבקשה. - ממתינים 10 שניות + מספר אקראי של אלפיות השנייה ומנסים שוב את הבקשה.
- אם השדה
- מאחזרים את אובייקט הפעולה.
- אם השדה
done
לא נכון, המשמעות היא שצריך לנסות שוב את הבקשה. - ממתינים 20 שניות + מספר אקראי של אלפיות השנייה ומנסים שוב את הבקשה.
- אם השדה
- מאחזרים את אובייקט הפעולה.
- אם השדה
done
לא נכון, המשמעות היא שצריך לנסות שוב את הבקשה. - ממתינים 40 שניות + מספר אקראי של אלפיות השנייה ומנסים שוב את הבקשה.
- אם השדה
- מאחזרים את אובייקט הפעולה.
- אם השדה
done
לא נכון, המשמעות היא שצריך לנסות שוב את הבקשה. - ממתינים 80 שניות + מספר אקראי של אלפיות השנייה ומנסים שוב את הבקשה.
- אם השדה
- ממשיכים את הדפוס הזה עד שאובייקט השאילתה יעודכן או עד שיחלוף הזמן המקסימלי.