אבחון

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

  1. שליחת בקשות לשליחת אירועים או לשליחה או להסרה של חברי קהל.

  2. בודקים את הסטטוס הכללי של כל בקשה. אם הבקשה מצליחה, הערך של Status הוא code ששווה ל-0 (ערך enum‏ OK, תגובת HTTP‏ 200 OK), ומוחזרים הערכים IngestEventsResponse, ‏ IngestAudienceMembersResponse או RemoveAudienceMembersResponse.

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

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

  3. מחכים 30 דקות ואז שולחים בקשת RetrieveRequestStatus לכל request_id שהועלה בהצלחה.

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

  4. כדאי לבדוק כל RetrieveRequestStatusResponse כדי לוודא שההעלאות פועלות בצורה תקינה ולזהות בעיות בנתונים.

  5. תיקון בעיות בנתונים.

  6. חוזרים לשלב 1 וחוזרים על הפעולות עד שפותרים את כל הבעיות בהעלאות.

שליחת בקשות

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

שולחים את RetrieveRequestStatusRequest מדי פעם באמצעות אלגוריתם של השהיה מעריכית לפני ניסיון חוזר עד שערך request_status מגיע ל-SUCCESS, FAILURE או PARTIAL_SUCCESS לכל יעד בבקשה המקורית. התהליך עשוי להימשך עד 24 שעות, אבל יכול להיות ש-API של המרכז לניהול נתונים יסיים לעבד חלק מהבקשות תוך 30 דקות בלבד.

דוגמה לזמן המתנה ראשוני סביר ולתצורת ניסיון חוזר שמאזנת בין זמינות לבין שימוש במכסת המכסות:

הגדרה ערך
זמן ההמתנה לפני בקשת האבחון הראשונה (בדקות) 30
מכפיל ההשהיה 1.3
השהיה מקסימלית (בדקות) 60 (שעה אחת)
משך הזמן הכולל המקסימלי (דקות) 1440 (24 שעות)

זוהי רצף של בקשות והזמן שחלף עם ההגדרה הזו:

תרשים

אסטרטגיית סקרים

נתונים

ניסיון הזמן שחלף מאז בקשת ההטמעה (hh:mm) השהיה לפני ניסיון הערות
1 00:30 ‫30.0 דקות קודם בודקים אם הסטטוס זמין
2 01:09 ‫39.0 דקות
3 01:59 ‫50.7 דקות
4 02:59 ‫60.0 דקות ההשהיה מוגבלת עכשיו לשעה אחת
5 03:59 ‫60.0 דקות
6 04:59 ‫60.0 דקות
7 05:59 ‫60.0 דקות
8 06:59 ‫60.0 דקות
9 07:59 ‫60.0 דקות
10 08:59 ‫60.0 דקות
11 09:59 ‫60.0 דקות
12 10:59 ‫60.0 דקות
13 11:59 ‫60.0 דקות סימון של 12 שעות
14 12:59 ‫60.0 דקות
15 13:59 ‫60.0 דקות
16 14:59 ‫60.0 דקות
17 15:59 ‫60.0 דקות
18 16:59 ‫60.0 דקות
19 17:59 ‫60.0 דקות
20 18:59 ‫60.0 דקות
21 19:59 ‫60.0 דקות
22 20:59 ‫60.0 דקות
23 21:59 ‫60.0 דקות
24 22:59 ‫60.0 דקות
25 23:59 ‫60.0 דקות הבקשה האחרונה לפני שהגעתם למקסימום של 24 שעות

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

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

השדה request_status_per_destination ב-RetrieveRequestStatusResponse מכיל רשומה נפרדת לכל יעד בבקשת ההטמעה המתאימה.

לדוגמה, אם IngestAudienceMembersRequest כלל 3 רשומות ברשימה destinations לשליחת נתונים ל-3 קהלים שונים, תגובת הסטטוס תכלול 3 רשומות ב-request_status_per_destination (רשומה אחת לכל קהל).

בדיקת הסטטוס הכולל של היעד

כשלב ראשון, בודקים את השדה request_status כדי לראות אם Data Manager API סיים לעבד את הנתונים של destination ב-RequestStatusPerDestination.

אלה הערכים האפשריים של request_status:

  • PROCESSING: הנתונים של היעד עדיין נמצאים בתהליך עיבוד. בשלב הזה, האזהרות והשגיאות לא מאוכלסות ביעד.

  • SUCCESS: עיבוד הבקשה ליעד הושלם ללא שגיאות. בודקים אם יש אזהרות שסומנו במהלך העיבוד.

  • FAILURE: כל הרשומות של היעד נכשלו בגלל שגיאות. בודקים אם יש אזהרות ושגיאות כדי להבין למה כל הרשומות נכשלו. כדאי גם לבדוק אם יש אזהרות שסומנו במהלך העיבוד.

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

בדיקת הסטטוס של אירוע או קהל לפי יעד

בודקים את שדה הסטטוס שמתאים לסוג הבקשה להעברה. רק אחד מהשדות הבאים מוגדר בכל RequestStatusPerDestination:

סטטוס הטמעת הנתונים של אירועים

השדה events_ingestion_status יאוכלס אם הבקשה הייתה IngestEventsRequest.

כדאי לבדוק את record_count של IngestEventStatus כדי לוודא שהמספר הכולל של הרשומות שהתקבלו תואם למה שציפיתם. המספר record_count כולל רשומות שהצליחו ורשומות שנכשלו.

סטטוס הטמעת הנתונים של חברי הקהל

השדה audience_members_ingestion_status יאוכלס אם הבקשה הייתה IngestAudienceMembersRequest. כאן מופיע השדה IngestAudienceMembersStatus שבו אפשר לבדוק כל סוג של נתוני קהל. רק אחד מהשדות האלה מוגדר.

user_data_ingestion_status

בודקים את record_count של IngestUserDataStatus כדי לוודא שהמספר הכולל של הרשומות שהתקבלו תואם לציפיות שלכם. record_count כולל רשומות שהצליחו ורשומות שנכשלו.

מסמנים את התיבה user_identifier_count כדי לוודא שמספר מזהי המשתמשים שהתקבלו תואם לציפיות שלכם.

אם בבקשה היה מספר מספיק של רשומות, השדה upload_match_rate_range מכיל את טווח שיעור ההתאמה של הרשומות בבקשה.

mobile_data_ingestion_status

בודקים את record_count של IngestMobileDataStatus כדי לוודא שמספר הרשומות הכולל שהתקבל תואם לציפיות שלכם. המספר record_count כולל גם רשומות שהצליחו וגם רשומות שנכשלו.

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

pair_data_ingestion_status

בודקים את record_count של IngestPairDataStatus כדי לוודא שהמספר הכולל של הרשומות שהתקבלו תואם לציפיות שלכם. record_count כולל רשומות שהצליחו ורשומות שנכשלו.

בודקים את pair_id_count כדי לוודא שמספר מזהי ה-PAIR שקיבלתם תואם למה שציפיתם.

ppid_data_ingestion_status

בודקים את record_count של IngestPpidDataStatus כדי לוודא שהמספר הכולל של הרשומות שהתקבלו תואם לציפיות שלכם. record_count כולל רשומות שהצליחו ורשומות שנכשלו.

בודקים את ppid_count כדי לוודא שמספר מזהי ה-PPID שהתקבלו תואם לציפיות שלכם.

user_id_data_ingestion_status

בודקים את record_count של IngestUserIdDataStatus כדי לוודא שהמספר הכולל של הרשומות שהתקבלו תואם לציפיות שלכם. record_count כולל רשומות שהצליחו ורשומות שנכשלו.

בודקים את user_id_count כדי לוודא שמספר מזהי המשתמשים שהתקבלו תואם לציפיות שלכם.

composite_data_ingestion_status

בודקים את record_count של IngestCompositeDataStatus כדי לוודא שמספר הרשומות הכולל שהתקבל תואם לציפיות שלכם. המספר record_count כולל גם רשומות שהצליחו וגם רשומות שנכשלו.

בודקים את data_type_counts כדי לוודא שמספר המזהים תואם לציפיות שלכם. הרשימה הזו כוללת פירוט של כל המזהים שהתקבלו (כמו כתובת אימייל, מספר טלפון, כתובת פיזית וכתובת IP) על ידי DataType.

אם בבקשה היה מספר מספיק של רשומות, השדה upload_match_rate_range מכיל את טווח שיעור ההתאמה של הרשומות בבקשה.

סטטוס ההסרה של חברי הקהל

השדה audience_members_removal_status יאוכלס אם הבקשה הייתה RemoveAudienceMembersRequest. הנה השדה RemoveAudienceMembersStatus שצריך לבדוק לכל סוג של נתוני קהל. רק אחד מהשדות האלה מוגדר.

user_data_removal_status
סטטוס ההסרה של נתוני משתמשים.
mobile_data_removal_status
סטטוס ההסרה של חבילת הגלישה.
pair_data_removal_status
סטטוס ההסרה של נתוני PAIR.
ppid_data_removal_status
סטטוס ההסרה של נתוני PPID.
user_id_data_removal_status
סטטוס ההסרה של נתונים של מזהי משתמשים
composite_data_removal_status
סטטוס ההסרה של נתונים מורכבים

בודקים את record_count כדי לוודא שמספר הרשומות הכולל שהתקבל תואם למה שציפיתם. המספר record_count כולל רשומות שהצליחו ורשומות שנכשלו.

בנוסף, כדאי לבדוק את user_identifier_count, mobile_id_count, ‏pair_id_count, ppid_count או user_id_count כדי לוודא את המספר הכולל של המזהים שהתקבלו.

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

בדיקת אזהרות ושגיאות

בנוסף לשדות הסטטוס של היעד וסוג הבקשה, RetrieveRequestStatusResponse מכיל פירוט של האזהרות והשגיאות שקשורות לבקשה.

  • שגיאה מציינת שה-API דחה את הרשומה לחלוטין.
  • אזהרה מציינת שה-API לא דחה את הרשומה, אבל הוא נאלץ להתעלם מחלקים מהנתונים של הרשומה.

לדוגמה, אם Event מכיל נתונים מוצפנים של UserIdentifier ושל AdIdentifiers כמו gclid, ואי אפשר לפענח את הנתונים של UserIdentifier, ה-Data Manager API עדיין מעבד את הרשומה באמצעות AdIdentifiers אבל מחזיר את האזהרה PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR.

עם זאת, אם Event לא מכיל את AdIdentifiers ואי אפשר לפענח את הנתונים של UserIdentifier, ה-Data Manager API דוחה את הרשומה כולה ומדווח על השגיאה PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR, כי Event תקין חייב להכיל לפחות אחד מהערכים ad_identifiers או user_data.

אלה שדות התשובה שמכילים מידע על אזהרות ושגיאות. השדות האלה מתמלאים כשהסטטוס הכולל של היעד מגיע לערך SUCCESS, PARTIAL_SUCCESS או FAILURE.

warning_info

רשימה של WarningCount אובייקטים. כל רכיב WarningCount מכיל רכיב reason עם סוג האזהרה, ורכיב record_count שמציין את מספר הרשומות שקיבלו את סוג האזהרה הזה.

כדאי לבדוק את warning_info גם אם הסטטוס הכולל של היעד הוא SUCCESS.

error_info

רשימה של ErrorCount אובייקטים. כל ErrorCount מכיל reason עם סוג השגיאה, ו-record_count שמציין את מספר הרשומות שההעלאה שלהן נכשלה בגלל סוג השגיאה הזה.