לכל הפוסטים

נמסר זה לא נקרא: מה הווי הכחול ב-WhatsApp חושף — ולמה ל-SMS אין את זה בכלל

WhatsApp Business Platform מבחין רשמית בין הודעה שנשלחה, נמסרה ונקראה ומציג זאת בשני ווים נפרדים בצ'אט — ל-SMS אין מנגנון מקביל לאישור קריאה, וכדאי לדעת מה זה אומר לפני שסומכים על "אחוז פתיחה" בדוח.

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

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

ב-WhatsApp Business Platform ההבחנה הזאת מתועדת רשמית, ומוצגת בפועל דרך שני ווים שונים על המסך. ב-SMS אין וי שני. אין "נקרא" בכלל — ומי שמציג לכם "אחוז פתיחה" להודעת SMS, ממציא אותו.

הסולם הרשמי: מה כל וי באמת אומר

מסמכי המפתחים הרשמיים של Meta ל-WhatsApp Business Platform — התיעוד של ה-webhook לסטטוסי ההודעות — מגדירים ארבעה מצבים עוקבים, ולכל אחד יש משמעות טכנית מדויקת, לא רק עיצוב של אייקון:

סטטוססימון בצ'אטהמשמעות הרשמית
נשלח (sent)✓ אפור בודדההודעה יצאה בהצלחה משרתי WhatsApp
נמסר (delivered)✓✓ אפור כפולההודעה הגיעה בפועל למכשיר של הנמען
נקרא (read)✓✓ כחול כפולההודעה הוצגה בשיחה פתוחה אצל הנמען
נכשל (failed)משולש אדוםההודעה לא נמסרה כלל

מטא גם מבהירה נקודה שכמעט אף אחד לא מדבר עליה: אם הנמען כבר נמצא בתוך הצ'אט הפתוח כשההודעה מגיעה, השרתים עשויים לדלג לגמרי על webhook ה"נמסר" ולדווח ישר "נקרא" — כי ברגע שההודעה מוצגת על המסך, גם המסירה וגם הקריאה כבר קרו, כמעט בו-זמנית. זו לא תקלה בלוח בקרה שמראה קפיצה כזאת. זו התנהגות מתועדת.

למה הודעה יכולה להיתקע על "נשלח" — לנצח

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

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

ב-SMS אין וי כחול — ומעולם לא היה

בפוסט רשמי בבלוג של Twilio על ההבדלים בין SMS ל-WhatsApp לעסקים, החברה כותבת במפורש שדווקא WhatsApp מציעה "אישורי קריאה ומסירה ספציפיים, שלא נתמכים באופן טבעי ב-API-ים של SMS". זו לא תכונה חסרה במקרה — זו מגבלת פרוטוקול. תעודת המסירה של SMS (DLR) מאשרת שההודעה הגיעה לרשת הסלולרית ולמכשיר — זו ההגדרה שמופיעה למשל בדף המונחים הרשמי של Bandwidth, שעוצר בדיוק שם ולא מזכיר קריאה בכלל. מקורות תעשייה נוספים (בהם Sinch ו-Notifyre) חוזרים על אותה הבחנה: DLR הוא אישור רשת ומכשיר, לא אישור קריאה.

וכאן כדאי להיזהר מכיוון אחר: אם תחפשו "אחוז פתיחה" ל-WhatsApp מול SMS תמצאו טווח פרוע של מספרים סותרים בין מקורות שיווקיים שונים ברשת — ולפחות מקור אחד מציין במפורש שהנתון הנפוץ ביותר חסר מקור מאומת. זה בדיוק המיתוס שכבר פירקנו כאן בעבר. ההבדל האמיתי הוא לא באחוז שמישהו ינסה למכור לכם. הוא במנגנון: ל-WhatsApp יש דרך לדעת ולהראות "נקרא" ברמת ההודעה הבודדת. ל-SMS אין את המנגנון הזה בכלל.

איך זה נראה בפועל בלוח הודעות של אירוע

אצלנו, ב-irua, כל הודעת WhatsApp נשמרת עם שני שדות סטטוס נפרדים — לא אחד. שדה אחד הוא תוצאת השליחה המיידית: התקבלה, נכשלה, נחסמה. שדה שני, נפרד לגמרי, הוא התוצאה המאוחרת שמגיעה בפועל ממטא: נמסר, נקרא, נכשל. זו לא בחירת עיצוב שרירותית — זו הבחנה מכוונת: כל שדה משקף רגע אחר בחיי ההודעה: השדה הראשון נשאר תוצאת השליחה; השני מתעד את מה שבאמת קרה אצל הנמען. אלה שני דברים שיכולים להתרחק זה מזה בזמן, ולפעמים לא להתכנס בכלל.

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

ההבדל הזה לא נשאר תיאורטי. כשהבדיקה המאוחרת מגלה שהודעת אישור, RSVP או תודה נכשלה בפועל למרות שיצאה בהצלחה, הצ'יפ הירוק בכרטיס האורח הופך בחזרה ל"נכשל" — כי אחרת הצ'יפ הירוק בכרטיס האורח היה ממשיך להציג הצלחה שלא קרתה בפועל. ובדוח האנליטיקס, "נקרא" מוצג בכוונה בלי אחוז — רק כספירה גולמית שמתויגת "מינימום" — כי נמענים יכולים לכבות אישורי קריאה ב-WhatsApp (אפשרות קיימת בהגדרות הפרטיות, הדדית: מי שמכבה אותה גם מפסיק לראות אישורי קריאה של אחרים). אחוז "נקרא" כן מחושב מאחורי הקלעים, אבל הוא לא עולה למסך ככותרת — מאותה סיבה בדיוק: הוא רצפה מוכחת, לא מדידה סופית.

יש לזה גם שימוש מעשי, לא רק תיאורי: מהרגע שיש שדה נמסר נפרד משדה נקרא, אפשר לבנות מהם רשימה שימושית — אורחים שקיבלו הודעה בהצלחה אבל לא פתחו אותה. פלח שאפשר להתקשר אליו, לא רק להתפעל ממנו.

איך קוראים נכון דוח שליחה

כמה כללי אצבע שנובעים ישירות מהמנגנון, לא ממספר קסם:

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

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