השגיאות יכולות לנבוע מהגדרה שגויה של הסביבה, באג בתוכנה או קלט לא תקין של משתמש. לא משנה מה המקור, תצטרכו לפתור את הבעיה ולתקן את הקוד או להוסיף לוגיקה כדי לטפל בשגיאת המשתמש. במדריך הזה מפורטות כמה שיטות מומלצות לפתרון שגיאות ב-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) כדי להגדיר נקודות עצירה, לעבור על הקוד שורה אחר שורה ולבדוק את המטען הייעודי (payload) של הבקשות לפני שהן נשלחות.
חשוב לוודא שהבקשה תואמת לנתונים שהזנתם באפליקציה (לדוגמה, יכול להיות ששם הקמפיין לא מגיע לבקשה). חשוב לשלוח מסכת שדות שתואמת לעדכונים שרוצים לבצע – Google Ads API תומך בעדכונים חלקיים. אם משמיטים שדה ממסכת השדות בבקשה לשינוי נתונים, ה-API לא ישנה אותו. אם האפליקציה שלכם מאחזרת אובייקט, מבצעת שינוי ושולחת אותו בחזרה, יכול להיות שאתם כותבים לשדה שלא תומך בעדכון. כדי לבדוק אם יש הגבלות על מועד העדכון של השדה או אם אפשר לעדכן אותו, עיינו בתיאור השדה במאמרי העזרה.
איך אפשר לקבל עזרה?
לא תמיד אפשר לזהות ולפתור את הבעיה לבד. אפשר לפנות לתמיכה כדי לקבל עזרה.
כדאי לכלול כמה שיותר מידע בשאילתות. הפריטים המומלצים כוללים:
- בקשה ותגובה בפורמט JSON שעברו הסרת תוכן זדוני או רגיש. חשוב להסיר מידע רגיש כמו טוקן הגישה של OAuth, טוקן הרענון ומספרי הלקוחות.
- קטעי קוד. אם אתם נתקלים בבעיה שקשורה לשפה או שאתם צריכים עזרה בעבודה עם ה-API, כדאי לצרף קטע קוד כדי להסביר מה אתם עושים.
request-id. כך חברי הצוות של Google Developer Relations יוכלו לאתר את הבקשה שלכם אם היא נשלחה לסביבת הייצור. מומלץ לתעד את ה-request-idשכלול בכותרות התגובה או בחריגות שמכילות שגיאות בתגובה, וגם הקשר נוסף מעבר ל-request-idבלבד.- מידע נוסף, כמו גרסת סביבת זמן הריצה או המפרש והפלטפורמה, יכול גם לעזור בפתרון בעיות.
פותרים את הבעיה
עכשיו, אחרי שהבנתם מה הבעיה ומצאתם פתרון, הגיע הזמן לבצע את השינוי ולבדוק את התיקון בחשבון בדיקה (מומלץ) או בסביבת הייצור (אם הבאג חל רק על נתונים בחשבון ספציפי בסביבת הייצור).
השלבים הבאים
עכשיו, אחרי שפתרת את הבעיה, האם שמת לב לדרכים שבהן אפשר לשפר את הקוד כדי למנוע את הבעיה מלכתחילה?
יצירת קבוצה טובה של בדיקות יחידה עוזרת לשפר באופן משמעותי את האיכות והאמינות של הקוד. היא גם מזרזת את תהליך הבדיקה של שינויים חדשים כדי לוודא שהם לא פוגעים בפונקציונליות הקודמת. אסטרטגיה טובה לטיפול בשגיאות היא גם המפתח להצגת כל הנתונים הדרושים לפתרון בעיות.