פתרון בעיות

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

  5. היכנסו למרכז העזרה של Google Ads כדי לקבל עזרה בפתרון בעיות באימות או בהגבלת החשבון – Google Ads API יורש את הכללים והמגבלות של מוצר הליבה של Google Ads.

  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 (סביבת פיתוח משולבת (IDE) חינמית וקוד פתוח שמשמשת בעיקר לפיתוח Java, אבל יש בה יישומי פלאגין לשפות אחרות) שיעזרו בניפוי באגים. הוא מאפשר להגדיר נקודות עצירה ולהריץ את הקוד שורה אחרי שורה.

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

איך אפשר לקבל עזרה?

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

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

  • הבקשה והתגובה של JSON עברו חיטוי. חשוב להסיר מידע רגיש כמו קוד המפתח או AuthToken.
  • קטעי קוד. אם נתקלתם בבעיה ספציפית בשפה מסוימת או שאתם מבקשים עזרה בעבודה עם ה-API, תוכלו לכלול קטע קוד שיעזור להסביר מה אתם עושים.
  • מזהה בקשה. כך חברי הצוות של קשרי המפתחים של Google יוכלו לאתר את הבקשה שלכם, אם היא מבוצעת בסביבת הייצור. מומלץ לרשום ביומנים את ה-requestId שכלול כנכס, למעט שגיאות שכוללות שגיאות תגובה, בנוסף להוספת הקשר לעומת requestId בלבד.
  • גם מידע נוסף, כמו הגרסה של סביבת זמן הריצה/המתורגמן והפלטפורמה, יכול להיות שימושי במהלך פתרון בעיות.

תיקון הבעיה

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

מומלץ לשתף

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

השלבים הבאים

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

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