פתרון בעיות

סרטון: צפייה בהרצאה על טיפול בשגיאות מסדנת 2019

הגורמים לשגיאות יכולים להיות הגדרה שגויה של הסביבה, באג בתוכנה או קלט לא תקין ממשתמש. לא משנה מה המקור, תצטרכו לפתור את הבעיה, לתקן את הקוד או להוסיף לוגיקה לטיפול בשגיאת המשתמש. במדריך הזה מפורטות כמה שיטות מומלצות לפתרון בעיות של שגיאות מ-Google Ads API.

בדיקת הקישוריות

  1. מוודאים שיש לכם גישה ל-Google Ads API ושההגדרה נכונה. אם התשובה שלכם מחזירה שגיאות HTTP, חשוב לטפל בהן בקפידה ולוודא שאתם מגיעים לשירותים שאתם רוצים להשתמש בהם מהקוד שלכם.

  2. פרטי הכניסה מוטמעים בבקשה כדי שהשירותים יוכלו לאמת אתכם. כדאי להכיר את המבנה של הבקשות והתשובות של Google Ads API, במיוחד אם אתם מתכוונים לטפל בקריאות בלי להשתמש בספריות הלקוח. כל ספריית לקוח מגיעה עם הוראות ספציפיות לגבי הכללת פרטי הכניסה בקובץ ההגדרות (מומלץ לעיין בקובץ ה-README של ספריית הלקוח).

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

    {
      "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" }
    }
  ]
}

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

מחפשים מידע על השגיאה

  1. אפשר לעיין במסמכי התיעוד בנושא שגיאות נפוצות, שכוללים את השגיאות הנפוצות ביותר. היא כוללת תיאור של הודעת השגיאה, הפניות רלוונטיות ל-API והסבר איך להימנע מהשגיאה או לטפל בה.

  2. אם השגיאה לא מוזכרת במפורש במסמכי התיעוד בנושא שגיאות נפוצות, כדאי לעיין במסמכי התיעוד בנושא הפניה ולחפש את מחרוזת השגיאה.

  3. אפשר לעיין בערוצי התמיכה שלנו כדי לקבל גישה למפתחים אחרים שמשתפים את החוויות שלהם עם ה-API. יכול להיות שמישהו אחר נתקל בבעיה שאתם חווים ופתר אותה.

  4. כדי לקבל עזרה בפתרון בעיות שקשורות לאימות או למגבלות על החשבון, אפשר לעבור אל מרכז העזרה של Google Ads. ‏Google Ads API יורש את הכללים והמגבלות של מוצר הליבה של Google Ads.

  5. פוסטים בבלוג יכולים לשמש מדי פעם כהפניה טובה לפתרון בעיות באפליקציה.

  6. אם נתקלתם בשגיאות שלא מתועדות, פנו אל התמיכה.

אחרי שחקרתם את השגיאה, הגיע הזמן לקבוע מהו שורש הבעיה.

איתור הסיבה

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

פותרים את הבעיה

אחרי שזיהיתם את הבעיה ומצאתם פתרון, הגיע הזמן לבצע את השינוי ולבדוק את התיקון בחשבון בדיקה (מומלץ) או בסביבת הייצור (אם הבאג רלוונטי רק לנתונים בחשבון ייצור ספציפי).

השלבים הבאים

עכשיו שפתרת את הבעיה הזו, האם הבחנת בדרכים לשפר את הקוד כדי למנוע את הבעיה הזו מלכתחילה?

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