השגיאות יכולות לנבוע מהגדרה שגויה של הסביבה, באג בתוכנה או קלט לא תקין ממשתמש. לא משנה מה המקור, תצטרכו לפתור את הבעיה ולתקן את הקוד או להוסיף לוגיקה לטיפול בשגיאת המשתמש. במדריך הזה מפורטות כמה שיטות מומלצות לפתרון שגיאות ב-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.match_type'.",
"location": {
"fieldPathElements": [
{ "fieldName": "operations", "index": 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": {
"fieldPathElements": [
{ "fieldName": "operations", "index": 0 },
{ "fieldName": "create" },
{ "fieldName": "keyword" }
]
}
}
]
}
כשמנסים לפתור בעיה, יכול להיות שתגלו שהאפליקציה מספקת ל-API מידע שגוי. מומלץ מאוד להשתמש בכלי לניפוי באגים בסביבת פיתוח משולבת (IDE) כדי להגדיר נקודות עצירה, לעבור על הקוד שורה אחר שורה ולבדוק את מטען הנתונים של הבקשות לפני שהן נשלחות.
חשוב לבדוק שהבקשה תואמת לנתונים שהזנתם בטופס הבקשה (לדוגמה, יכול להיות ששם הקמפיין לא מופיע בבקשה). חשוב לוודא שאתם שולחים field mask שתואם לעדכונים שאתם רוצים לבצע – Google Ads API תומך בעדכונים חלקיים. אם לא מציינים שדה במסכת השדות בבקשה לשינוי נתונים, ה-API לא משנה אותו. אם האפליקציה שלכם מאחזרת אובייקט, מבצעת שינוי ושולחת אותו בחזרה, יכול להיות שאתם כותבים לשדה שלא תומך בעדכון. כדי לראות אם יש הגבלות על העדכון של השדה, צריך לעיין בתיאור השדה במסמכי העזר.
איך אפשר לקבל עזרה?
לא תמיד אפשר לזהות את הבעיה ולפתור אותה לבד. לקבלת עזרה, אפשר לפנות אל התמיכה.
כדאי לכלול כמה שיותר מידע בשאילתות. הפריטים המומלצים כוללים:
- בקשת JSON ותגובה שעברו ניקוי. חשוב להסיר מידע רגיש כמו אסימון גישה ל-OAuth, אסימון רענון, קוד מפתח (אם הוא עדיין כלול בכותרות של בקשות מדור קודם) ומספרי לקוחות.
- קטעי קוד. אם יש לכם בעיה שקשורה לשפה ספציפית או שאתם מבקשים עזרה בעבודה עם ה-API, כדאי לכלול קטע קוד כדי להסביר מה אתם עושים.
request-id. כך חברי צוות קשרי המפתחים של Google יוכלו לאתר את הבקשה שלכם אם היא נשלחה לגבי סביבת הייצור. מומלץ לרשום ביומן אתrequest-idשכלול בכותרות של תגובות או בחריגים שמכילים שגיאות בתגובות, וגם הקשר נוסף מעבר ל-request-idבלבד.- מידע נוסף, כמו זמן הריצה או גרסת המפרש והפלטפורמה, יכול להיות שימושי גם לפתרון בעיות.
פותרים את הבעיה
אחרי שזיהיתם את הבעיה ומצאתם פתרון, הגיע הזמן לבצע את השינוי ולבדוק את התיקון בחשבון בדיקה (מומלץ) או בסביבת הייצור (אם הבאג רלוונטי רק לנתונים בחשבון ייצור ספציפי).
השלבים הבאים
עכשיו, אחרי שפתרת את הבעיה הזו, האם הבחנת בדרכים כלשהן לשפר את הקוד כדי למנוע את הבעיה הזו מלכתחילה?
יצירת קבוצה טובה של בדיקות יחידה עוזרת לשפר באופן משמעותי את איכות הקוד והמהימנות שלו. היא גם מזרזת את תהליך הבדיקה של שינויים חדשים כדי לוודא שהם לא פגעו בפונקציונליות הקודמת. בנוסף, חשוב שתהיה לכם אסטרטגיה טובה לטיפול בשגיאות כדי שתוכלו לראות את כל הנתונים שדרושים לפתרון בעיות.