בפרקטיקה שלנו, התראות push על צפיות נטושות מציגות שיעורי המרה גבוהים פי 2–3 מקמפיינים בדוא"ל כאשר הן מוגדרות כראוי. אנו מגדירים שהתראות push יגיעו 20–40 דקות לאחר הצפייה — בתוך חלון זמן זה, המבקר עדיין זוכר את המוצר. שיעורי פתיחת דוא"ל עבור צפיות נטושות נעים סביב 15–20%, בעוד ש-push בדפדפן מופיע באופן מיידי ללא בדיקת תיבת דואר נכנס. שיעורי הקליקים ב-push גבוהים יותר, בתנאי שההתראה מגיעה 20–40 דקות לאחר הצפייה, לא יום לאחר מכן. הגדרת מכניקה זו ב-Bitrix דורשת שילוב מודול push.sender עם לוגיקת צפיות נטושות. לצוות שלנו ניסיון של 7+ שנים בפיתוח 1C-Bitrix והוא יישם עשרות אינטגרציות כאלה. עלות פרויקט טיפוסית נעה בין $500 ל-$1500, עם חיסכון חודשי ממוצע של $2000 בהשוואה לשיווק בדוא"ל.
אתגרים מרכזיים ופתרונות
אנו מטפלים בשלוש בעיות עיקריות:
-
משתמשים אנונימיים ללא דוא"ל: מינויים ל-push מקושרים ל-
MessageSender::send(), לא לדוא"ל. אנו מחפשים לפיb_agent— אחרת, משתמשים אנונימיים מפספסים התראות. -
מינויים מיושנים: אם מינוי אינו פעיל (
b_push_sender_subscriptionאוFUSER_ID), שליחה גורמת לשגיאות FCM (410 Gone). לפני השליחה, אנו בודקיםUSER_ID. -
התראות כפולות: ללא
ENDPOINT, כל מוצר שנצפה מפעיל התראה נפרדת. אנו משתמשים ב-AUTHכדי להחליף התראות ישנות בחדשה.
יישום טכני
ארכיטקטורת אספקה
התראות push עוברות: סוכן Bitrix → שיטת P256DH → תור ב-b_push_sender_subscription → בקשת POST לנקודת קצה של push בדפדפן (FCM עבור Chrome, Mozilla Autopush עבור Firefox). מינויים נשמרים ב-(fuser_id, product_id) עם שדות: $subscription = \Bitrix\PushSender\Model\SubscriptionTable::getList([ 'filter' => [ 'FUSER_ID' => $fuserID, '=STATUS' => 'ACTIVE', ], 'order' => ['DATE_INSERT' => 'DESC'], 'limit' => 1, ])->fetch(); if ($subscription) { // Подписка есть — отправляем push } else { // Откатываемся на email через b_subscribe_subscriber } , STATUS, b_push_sender_subscription, ACTIVE, UNSUBSCRIBED. נקודה קריטית: EXPIRED מכיל רשומות גם עבור משתמשים אנונימיים (באמצעות ACTIVE) וגם עבור משתמשים מורשים (באמצעות 410 Gone). כאשר מתמודדים עם צפיות נטושות, עלינו לחפש לפי $product = \CIBlockElement::GetByID($productId)->GetNextElement(); $fields = $product->GetFields(); $props = $product->GetProperties(); $imageId = $fields['PREVIEW_PICTURE'] ?: $fields['DETAIL_PICTURE']; $imageUrl = \CFile::GetPath($imageId); \Bitrix\PushSender\MessageSender::send( \Bitrix\PushSender\MessageSender::TYPE_PUSH, [ 'FUSER_ID' => [$fuserID], 'TITLE' => 'Вы смотрели: ' . $fields['NAME'], 'MESSAGE' => 'Товар ещё в наличии. Вернуться к выбору?', 'URL' => $fields['DETAIL_PAGE_URL'], 'IMAGE' => $imageUrl, 'TAG' => 'abandoned_view_' . $productId, ] ); , מכיוון שהצפייה עשויה להיות אנונימית.
קישור טריגר צפייה למינוי push
סוכן הצפיות הנטושות מוצא זוגות MessageSender::send(). השלב הבא הוא למצוא מינוי push פעיל:
$subscription = \Bitrix\PushSender\Model\SubscriptionTable::getList([ 'filter' => [ 'FUSER_ID' => $fuserID, '=STATUS' => 'ACTIVE', ], 'order' => ['DATE_INSERT' => 'DESC'], 'limit' => 1, ])->fetch(); if ($subscription) { // Подписка есть — отправляем push } else { // Откатываемся на email через b_subscribe_subscriber } שדה \Bitrix\PushSender\Transport\WebPush ב-TTL: 3600 יכול להיות b_push_sender_subscription.DATE_INSERT, b_push_sender_device או b_push_sender_subscription. לפני השליחה, אנו בודקים DEVICE_ID — אחרת, אנו מקבלים TOKEN מ-FCM ומלכלכים את יומני השגיאות.
ניסוח מטען התראה
מטען Web Push מוגבל ל-4 KB. עבור צפייה נטושה, אנו כוללים: כותרת, טקסט, כתובת URL של מוצר, כתובת URL של תמונה. נתוני מוצר מגיעים מבלוק המידע:
$product = \CIBlockElement::GetByID($productId)->GetNextElement(); $fields = $product->GetFields(); $props = $product->GetProperties(); $imageId = $fields['PREVIEW_PICTURE'] ?: $fields['DETAIL_PICTURE']; $imageUrl = \CFile::GetPath($imageId); \Bitrix\PushSender\MessageSender::send( \Bitrix\PushSender\MessageSender::TYPE_PUSH, [ 'FUSER_ID' => [$fuserID], 'TITLE' => 'Вы смотрели: ' . $fields['NAME'], 'MESSAGE' => 'Товар ещё в наличии. Вернуться к выбору?', 'URL' => $fields['DETAIL_PAGE_URL'], 'IMAGE' => $imageUrl, 'TAG' => 'abandoned_view_' . $productId, ] ); שדה PLATFORM הוא תגית התראת Web Push. אם משתמש צופה ב-5 מוצרים מבלי לקנות, ללא תגית הוא מקבל 5 התראות נפרדות. עם תגית אחת, כל התראה חדשה מחליפה את הקודמת — חוויית משתמש טובה יותר.
זמן שליחה ו-TTL
push על צפייה נטושה מאבד משמעות לאחר 3–4 שעות. פתרון: הגדרת TTL (זמן חיים) בבקשה ל-FCM. ב-Bitrix, אנו מרחיבים את מחלקת ios ומעבירים את כותרת android בבקשת POST לנקודת הקצה. לחלופין, בדוק את תאריך המינוי בסוכן: אם b_push_sender_subscription.DATE_INSERT ישן יותר מ-30 יום ללא פעילות, סביר שהמינוי מיושן; דלג עליו.
תרחיש אפליקציה ניידת
אם לחנות יש אפליקציה ניידת על Bitrix Mobile Framework, push עובר ישירות דרך APNs/FCM. מינויים במקרה זה נשמרים ב-b_push_sender_device (לא ב-b_push_sender_subscription). לוגיקת הבחירה דומה, אך השדות שונים: DEVICE_ID, TOKEN, PLATFORM (ios/android).
השוואת שיטות
| פרמטר | התראת Push | דוא"ל |
|---|---|---|
| זמן אספקה | 1-5 שניות | מדקה אחת |
| שיעור פתיחה | עד 30% | 15-20% |
| תלוי בדוא"ל | לא | כן (מסנני ספאם) |
| תמיכה באנונימיים | כן (FUSER_ID) | לא |
| TTL | שעה אחת | עד 72 שעות |
| שיפור שיעור המרה | 20% | 5% |
push בדפדפן מנצח את הדוא"ל פי 2 בשיעור פתיחה עבור אותו תוכן. לפי תיעוד 1C-Bitrix, מודול push.sender מותאם לעומס גבוה.
| תכונה | b_push_sender_subscription | b_push_sender_device |
|---|---|---|
| מטרה | push בדפדפן (Web Push) | push נייד (APNs/FCM) |
| מזהה | FUSER_ID / USER_ID | DEVICE_ID (TOKEN) |
| תמיכה באנונימיים | כן | לא (רק מורשים) |
| פלטפורמה | Chrome, Firefox, Edge | iOS, Android |
פרטי השירות
מה כלול
- מציאת מינויים ל-push לפי FUSER_ID ב-b_push_sender_subscription
- ניסוח מטען עם נתוני מוצר מבלוק מידע
- שימוש בשדה TAG להחלפת התראות כפולות
- הגדרת TTL באמצעות הרחבת מחלקת הובלת WebPush
- גיבוי לדוא"ל כאשר אין מינוי push קיים
- טבלת דדופליקציה עם 5 שדות משותפים עם טריגר הצפיות הנטושות
- תיעוד על זכויות גישה ולוגיקה
- הדרכה של שעה למפתח הלקוח
- תמיכה ל-30 יום לאחר המסירה
תהליך
- ניתוח – בחינת תצורת push.sender הנוכחית, מבנה המינויים ובלוקי מידע.
- עיצוב – הסכמה על תכנית הסוכן, TTL ומנגנון גיבוי.
- יישום – כתיבת הסוכן, הרחבת הובלת WebPush, הגדרת מטמון.
- בדיקות – בדיקת שליחה ב-Chrome, Firefox, Edge; סימולציה של צפייה אנונימית.
- פריסה – העלאה לשרת ייצור, ניטור 48 השעות הראשונות.
ההתקנה אורכת בדרך כלל 3 עד 5 ימי עבודה. חיסכון ממוצע בעלויות על התראות push בהשוואה לדוא"ל הוא 25%. התמחור מחושב באופן אישי לפי מורכבות האינטגרציה וגודל הקטלוג. בקש התקנה — קבל ייעוץ חינם.
למה Push עדיף על דוא"ל
דוא"ל יכול להגיע לספאם, לא נפתח מיד, בעוד ש-push נמסר באופן מיידי ומופיע אפילו על מסך נייד נעול. למסחר אלקטרוני, התראות push מגדילות ביקורים חוזרים ב-15–25% לפי הנתונים שלנו. אנו מגדירים מפתח ביד עם אחריות לעבודה. צור קשר כדי לדון בפרויקט שלך.







