סרטון: צפייה בהרצאה על טיפול בשגיאות מסדנת 2019
הגורמים לשגיאות יכולים להיות הגדרה שגויה של הסביבה, באג בתוכנה או קלט לא תקין ממשתמש. לא משנה מה המקור, תצטרכו לפתור את הבעיה, לתקן את הקוד או להוסיף לוגיקה לטיפול בשגיאת המשתמש. במדריך הזה מפורטות כמה שיטות מומלצות לפתרון בעיות שקשורות לשגיאות ב-Google Ads API.
הבטחת קישוריות
מוודאים שיש לכם גישה ל-Google Ads API ושההגדרה נכונה. אם התגובה שלכם מחזירה שגיאות HTTP, חשוב לטפל בהן בקפידה ולוודא שהקוד שלכם מגיע לשירותים שבהם אתם רוצים להשתמש.
פרטי הכניסה שלכם מוטמעים בבקשה כדי שהשירותים יוכלו לאמת אתכם. כדאי להכיר את המבנה של בקשות ותגובות ב-Google Ads API, במיוחד אם אתם מתכוונים לטפל בקריאות בלי להשתמש בספריות הלקוח. כל ספריית לקוח מגיעה עם הוראות ספציפיות לגבי הכללת פרטי הכניסה בקובץ ההגדרות (מומלץ לעיין בקובץ ה-README של ספריית הלקוח).
ודאו שאתם משתמשים בפרטי הכניסה הנכונים. בהתחלה המהירה שלנו מוסבר איך להשיג את הסט הנכון שאתם צריכים. לדוגמה, הכשל הבא בתגובה מראה שהמשתמש שלח פרטי אימות לא תקינים:
{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "Authentication error: 2" } ] } }
אם פעלתם לפי השלבים האלה ועדיין נתקלים בבעיות, הגיע הזמן לפתור את השגיאות ב-Google Ads API.
זיהוי הבעיה
בדרך כלל, Google Ads API מדווח על שגיאות כאובייקט שגיאה בפורמט JSON, שמכיל רשימה של שגיאות בתגובה. האובייקטים האלה מספקים קוד שגיאה והודעה שמסבירה למה השגיאה התרחשה. הם האותות הראשונים שיכולים להצביע על הבעיה.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
כל ספריות הלקוח שלנו יוצרות חריגים שמכילים שגיאות בתגובה. דרך טובה להתחיל היא לתעד את החריגים האלה ולהדפיס את ההודעות ביומן או במסך לפתרון בעיות. שילוב המידע הזה עם אירועים אחרים שמתועדים באפליקציה מאפשר לקבל סקירה כללית טובה של הגורמים האפשריים לבעיה. אחרי שמזהים את השגיאה ביומנים, צריך להבין מה המשמעות שלה.
מחקר על השגיאה
אפשר לעיין במסמכי התיעוד בנושא שגיאות נפוצות, שכוללים את השגיאות הנפוצות ביותר. היא כוללת תיאור של הודעת השגיאה, הפניות רלוונטיות ל-API והסבר איך להימנע מהשגיאה או לטפל בה.
אם השגיאה לא מוזכרת במפורש במסמכי התיעוד בנושא שגיאות נפוצות, כדאי לעיין במסמכי העיון ולחפש את מחרוזת השגיאה.
אפשר לעיין בערוצי התמיכה שלנו כדי לקבל גישה למפתחים אחרים שמשתפים את החוויות שלהם עם ה-API. יכול להיות שמישהו אחר נתקל בבעיה שאתם חווים ופתר אותה.
אם נתקלתם בשגיאות שלא מתועדות, אתם מוזמנים לפרסם על כך בפורום.
כדי לקבל עזרה בפתרון בעיות שקשורות לאימות או למגבלות על החשבון, אפשר לעבור אל מרכז העזרה של Google Ads. Google Ads API יורש את הכללים והמגבלות של מוצר הליבה של Google Ads.
פוסטים בבלוג יכולים לשמש כהפניה טובה לפתרון בעיות באפליקציה.
אחרי שמחפשים מידע על השגיאה, צריך לקבוע מהו שורש הבעיה.
איתור הסיבה
בודקים את הודעת החריגה כדי לזהות את הגורם לשגיאה. אחרי שבודקים את התשובה, בודקים את הבקשה כדי לזהות סיבה אפשרית. חלק מהודעות השגיאה של Google Ads API כוללות את הערך fieldPathElements
בשדה location
של GoogleAdsError
, שמציין איפה בבקשה אירעה השגיאה. לדוגמה:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
במהלך פתרון בעיות, יכול להיות שהאפליקציה מספקת ל-API מידע שגוי. מומלץ מאוד להשתמש בסביבת פיתוח משולבת (IDE) כמו Eclipse (סביבת פיתוח משולבת חינמית בקוד פתוח, שמשמשת בעיקר לפיתוח Java, אבל יש לה פלאגינים לשפות אחרות) כדי לעזור לכם באיתור באגים. הוא מאפשר להגדיר נקודות עצירה ולעבור על הקוד שורה אחר שורה.
כדאי לבדוק שוב שהבקשה תואמת לנתונים שהזנתם בטופס הבקשה (לדוגמה, יכול להיות ששם הקמפיין לא יופיע בבקשה). חשוב לשלוח מסכת שדות שתואמת לעדכונים שרוצים לבצע – Google Ads API תומך בעדכונים חלקיים. אם לא מציינים שדה במסכת השדות בבקשת שינוי, ה-API לא משנה אותו. אם האפליקציה שלכם מאחזרת אובייקט, מבצעת שינוי ושולחת אותו בחזרה, יכול להיות שאתם כותבים לשדה שלא תומך בעדכון. כדי לדעת אם יש הגבלות על העדכון של השדה, צריך לעיין בתיאור השדה במסמכי העיון.
איך אפשר לקבל עזרה?
לא תמיד אפשר לזהות את הבעיה ולפתור אותה לבד. כששואלים בפורום, אלפי מפתחים יכולים לראות את השאלה, ואולי הם נתקלו בבעיה דומה.
כדאי לכלול כמה שיותר מידע בשאילתות. הפריטים המומלצים כוללים:
- בקשת JSON ותגובה שעברו ניקוי. חשוב להסיר מידע רגיש כמו טוקן המפתח או טוקן האימות.
- קטעי קוד. אם יש לכם בעיה שקשורה לשפה מסוימת או שאתם מבקשים עזרה בעבודה עם ה-API, כדאי לכלול קטע קוד כדי להסביר מה אתם עושים.
- RequestId. כך חברי צוות קשרי המפתחים של Google יוכלו לאתר את הבקשה שלכם אם היא נוצרה בסביבת הייצור. מומלץ לרשום ביומנים את מזהה הבקשה (requestId) שכלול כמאפיין בחריגים שמכילים שגיאות בתגובה, וגם הקשר נוסף מעבר ל-requestId בלבד.
- מידע נוסף, כמו גרסת זמן הריצה או המפרש והפלטפורמה, יכול להיות שימושי גם לפתרון בעיות.
תיקון הבעיה
אחרי שזיהיתם את הבעיה ומצאתם פתרון, הגיע הזמן לבצע את השינוי ולבדוק את התיקון בחשבון בדיקה (מומלץ) או בסביבת הייצור (אם הבאג חל רק על נתונים בחשבון ייצור ספציפי).
כדאי לשתף
אם פרסמתם בפורום שאלה לגבי שגיאה שלא הוצגה שם לפני כן, ומצאתם את הפתרון, כדאי להוסיף אותו לשרשור. בפעם הבאה שמפתח ייתקל באותה בעיה, הוא יוכל לפתור אותה מיד.
השלבים הבאים
עכשיו שפתרת את הבעיה הזו, האם הבחנת בדרכים לשפר את הקוד כדי למנוע את הבעיה הזו מלכתחילה?
יצירת קבוצה טובה של בדיקות יחידה (unit testing) עוזרת לשפר באופן משמעותי את איכות הקוד והמהימנות שלו. בנוסף, זה מזרז את תהליך הבדיקה של שינויים חדשים כדי לוודא שהם לא פגעו בפונקציונליות קודמת. כדי להציג את כל הנתונים שנדרשים לפתרון בעיות, חשוב גם להשתמש באסטרטגיה טובה לטיפול בשגיאות.