מה זה DLR (Delivery Report)
כשמערכת שולחת בקשת SMS לספק, התגובה הראשונה שמתקבלת היא לרוב רק אישור שהבקשה התקבלה ונכנסה לתור שליחה — לא אישור שההודעה בפועל הגיעה למכשיר הנמען. דוח מסירה (DLR) הוא עדכון נפרד שמגיע מאוחר יותר, לאחר שרשת הסלולר מדווחת בחזרה מה קרה בפועל להודעה: האם נמסרה, נכשלה, או עדיין ממתינה.
Webhook מול Polling
יש שתי דרכים עיקריות לקבל את עדכון הסטטוס:
- Webhook — המערכת שלכם חושפת כתובת URL, וספק ה-SMS שולח אליה בקשה אוטומטית ברגע שהסטטוס מתעדכן. זו השיטה היעילה יותר: אין המתנה מיותרת, והעדכון מגיע ברגע שהוא קורה.
- Polling — המערכת שלכם שואלת את השרת של הספק שוב ושוב ("מה הסטטוס של הודעה X?") עד שמתקבל עדכון. פשוט יותר ליישום ראשוני, אבל פחות יעיל — יש עיכוב מובנה בין קבלת העדכון בפועל לבין הרגע שבו המערכת שלכם "שואלת" עליו, וזה גם מייצר עומס מיותר על השרת.
webhook חוסך את התשאול החוזר, אבל polling במרווחים קצרים מגיע לתוצאה דומה ברוב השימושים — כולל קודי אימות — כל עוד המרווח מותאם לזמן שהמשתמש מוכן להמתין. מה שקובע הוא לא שם השיטה אלא כמה מהר המערכת שלכם יודעת שהמסירה נכשלה.
דוחות המסירה ב-Global SMS נשלפים ב-polling דרך ה-API — המערכת שלכם מבקשת את סטטוס ההודעה ומקבלת אותו בתשובה. webhook זמין בשירות אחר: קבלת הודעות חוזרות מלקוחות דרך קו וירטואלי, שאפשר להעביר אוטומטית למערכת שלכם. לפרטים ראו את עמוד ה-API ואת השכרת קו וירטואלי.
סטטוסים נפוצים בדוח מסירה
אין תקן אחיד בין ספקים לשמות הסטטוסים, אבל רוב המערכות מדווחות משהו בסגנון הזה:
- נמסרה (Delivered) — ההודעה הגיעה בפועל למכשיר הנמען.
- נכשלה (Failed) — ההודעה לא הגיעה, בגלל מספר לא תקין, מכשיר כבוי לאורך זמן, או חסימה ברשת.
- ממתינה (Pending) — ההודעה עדיין בתהליך, טרם התקבל אישור סופי.
- פג תוקף (Expired) — ההודעה לא נמסרה בתוך חלון הזמן שהוגדר, ונמחקה מהתור.
למה זה קריטי בקודי אימות (OTP)
בזרימת עבודה של קוד אימות, המשתמש ממתין להודעה בזמן אמת. אם המערכת שלכם לא מקבלת אינדיקציה שההודעה נכשלה, היא לא יכולה להציע חלופה (למשל שליחה חוזרת, או דרך אימות אחרת) בזמן שהמשתמש עדיין נמצא בתהליך. מעקב צמוד אחרי דוח המסירה — בתשאול תכוף או בדחיפה, לפי מה שהספק מציע — מאפשר לזהות כשלים תוך שניות ולהגיב בהתאם, במקום לגלות בדיעבד שאחוז מסוים מקודי האימות פשוט לא הגיעו. המדריך המלא לזרימה הזו: קוד אימות ב-SMS (OTP).
בכל שיטה שבה תבחרו, כדאי להוסיף מנגנון גיבוי (fallback) — אם לא התקבל עדכון סטטוס תוך זמן סביר, להתייחס לזה כאילו ההודעה לא נמסרה ולתת למשתמש אפשרות לנסות שוב, במקום להשאיר אותו תקוע ללא מענה.
שימוש אופייני נוסף ל-DLR הוא בעדכוני הזמנה מחנות אונליין — ראו מדריך חיבור SMS לחנות אונליין לדוגמאות מעשיות.
מה כדאי לבדוק לפני שמסתמכים על DLR של ספק
- באיזו שיטה מתקבל הסטטוס — תשאול (polling) דרך ה-API, דחיפה (webhook) לכתובת שלכם, או שתיהן?
- האם התשובה מגיעה בפורמט קבוע ומתועד (JSON עם שדות ברורים), או שצריך "לנחש" את המבנה?
- כמה זמן נשמר הסטטוס אצל הספק, ובאיזו תדירות מותר לתשאל בלי להיחסם?
מחברים מערכת ל-API של SMS?
ב-Global SMS דוחות המסירה נשלפים ב-polling דרך ה-API, ולהודעות חוזרות מלקוחות יש גם webhook. לשניהם יש תיעוד למפתחים.
לעמוד ה-API של Global SMSהתוכן במדריך זה נועד למידע כללי בלבד ואינו מהווה ייעוץ משפטי או תחליף לייעוץ כזה. האחריות לעמידה בהוראות כל דין בנוגע למשלוח הודעות — ובכלל זה קבלת הסכמה, זיהוי השולח ומתן אפשרות הסרה — חלה על השולח בלבד. גלובל סמס בע״מ אינה מספקת ייעוץ משפטי ואינה נושאת באחריות להסתמכות על התוכן שבמדריך. לפרטים ראו את תנאי השירות.