חלון קופץ שמופיע בזמן הלא נכון מעצבן. אותו חלון בדיוק ברגע הנכון עם הצעה רלוונטית מביא מנויים ומכירות. ההבדל טמון בטריגרים, בטירגוט ובמימוש הטכני. יש לנו למעלה מ-5 שנות ניסיון בפיתוח מודולים של חלונות קופצים עבור 1C-Bitrix והשלמנו יותר מ-20 פרויקטים.
ל-Bitrix אין בונה חלונות קופצים מובנה. פתרונות מהמרקטפלייס עמוסים מדי ומתנגשים עם מטמון משולב. פיתוח בהתאמה אישית נותן שליטה מלאה: מה אנחנו מציגים, למי, מתי ובאיזו תדירות. חלון קופץ בהתאמה אישית נטען פי 3 מהר יותר ואינו מתנגש עם המטמון.
למה חלון קופץ מותאם אישית עדיף על פתרונות מדף
פתרונות מסחר אלקטרוני לרוב כוללים תלויות מיותרות, משתלבים בצורה גרועה עם לוגיקה מותאמת אישית, ולא תמיד תומכים בטריגרים מודרניים. הגישה שלנו היא מודול המנוהל דרך אינפובלוק עם מערכת גמישה של טריגרים ומיקוד. אנו מבטיחים תאימות עם מטמון מורכב וללא התנגשויות עם מודולים אחרים.
איך עובדים טריגרים להצגה
טריגר הוא אירוע שמפעיל הצגת חלון קופץ. מבחינה טכנית, כל טריגר הוא מטפל JavaScript שקורא לפונקציה להצגת החלון המודאלי.
Exit-intent — הסמן עובר לקצה העליון של אזור התצוגה. נעקב באמצעות mouseleave על document.documentElement. במובייל — גלילה למעלה, מזוהה באמצעות touchmove:
document.addEventListener('mouseleave', (e) => { if (e.clientY < 10) showPopup('exit-intent'); });
עומק גלילה — המשתמש גלל 50%, 70%, או עד סוף העמוד. אנו משתמשים ב-IntersectionObserver על אלמנט סימון או מחשבים אחוזים באמצעות window.scrollY / (document.body.scrollHeight - window.innerHeight).
זמן בעמוד — setTimeout עם השהיה של 15-30 שניות. חוסר פעילות — המשתמש לא מזיז את העכבר או לא גולל במשך 10 שניות. מיושם באמצעות טיימר debounce, מתאפס על mousemove, scroll, keydown.
לחיצה על אלמנט — addEventListener('click') סטנדרטי. מספר עמודים שנצפו — מונה ב-sessionStorage, למשל, אחרי 3 עמודים.
כיצד להגדיר טירגוט עבור קבוצות משתמשים שונות
פופ-אפ ללא טירגוט הוא ספאם. התנאים נבדקים בשרת בעת יצירת הקונפיג ובצד הלקוח בעת הפעלת הטריגר. תנאים בצד השרת (נוצרים בקומפוננטת ה-PHP):
- קבוצת משתמשים (מחובר / אורח / קבוצה ספציפית) באמצעות $USER->GetUserGroupArray().
- אזור באתר: רק קטלוג, דף הבית, החרגת עגלת קניות באמצעות $APPLICATION->GetCurDir().
- סוג מכשיר: מחשב שולחני / נייד באמצעות User-Agent.
- תגי UTM: הצגה למבקרים מקמפיין פרסומי, בדיקת $_GET['utm_source'] עם אחסון בסשן.
תנאים בצד הלקוח:
- תדירות הצגה: לא יותר מפעם ביום / בסשן / ב-3 ביקורים באמצעות localStorage עם חתימת זמן.
- סגירה: אם המשתמש סגר את הפופ-אפ — לא להציג שוב, דגל popup_{id}_closed.
ארכיטקטורה: קומפוננטה + אינפובלוק
חלונות קופצים מנוהלים באמצעות אינפובלוק. כל אלמנט הוא חלון קופץ נפרד עם הגדרות:
| מאפיין | סוג | מטרה |
|---|---|---|
| TRIGGER_TYPE | רשימה | exit-intent, scroll, timeout, inactivity |
| TRIGGER_VALUE | מחרוזת | אחוז גלילה / שניות השהיה |
| TARGET_PAGES | מחרוזת | מסכת URL: /catalog/, /, חריגים |
| TARGET_GROUPS | קישור | קבוצות משתמשים |
| SHOW_FREQUENCY | רשימה | once, daily, session |
| POPUP_TEMPLATE | רשימה | תבנית: subscribe, promo, feedback |
| CONTENT | HTML | תוכן החלון הקופץ |
| ACTIVE_FROM / ACTIVE_TO | תאריך | תקופת פעילות |
הקומפוננטה local:popup.manager נכללת ב-header.php. היא בוחרת חלונות קופצים פעילים, מסננת לפי תנאי שרת, ומייצרת קונפיגורציית JSON עבור JavaScript.
תאימות עם מטמון מורכב
מטמון מורכב שומר HTML במטמון. אם תצורת החלון הקופץ מוטמעת ב-HTML, בדף השמור במטמון תהיה תצורה מיושנת. הפתרון הוא להעביר את התצורה לנקודת קצה של AJAX. כאשר הדף נטען, JavaScript מבקש את /ajax/popup_config.php ומקבל JSON. הדף נשמר במטמון במלואו, והתצורה תמיד מעודכנת. הבקשה שוקלת 1-3 KB ומתבצעת תוך 20-50 ms. Bitrix Frame דינמי הוא חלופה לתרחישים מורכבים.
תבניות אופייניות
הרשמה לדיוור — טופס עם שדה אחד וכפתור, שליחה ב-AJAX ל-handler שמוסיף את כתובת הדוא"ל לרשימת הדיוור של Bitrix (\Bitrix\Sender\Internals\Model\PostingRecipientTable) או דרך ה-API של שירות חיצוני. אימות כפול (double opt-in) הוא חובה לצורך עמידה בחוק הפדרלי 152.
קוד קופון — הצגת קוד הנחה עם העתקה בלחיצה. הקוד נלקח מקופונים של מודול המכירות (\Bitrix\Sale\Internals\DiscountCouponTable). ניתן ליצור קופון ייחודי לכל מבקר.
חזרה טלפונית (Callback) — טופס עם שם + טלפון, השליחה יוצרת ליד ב-Bitrix24 CRM דרך REST API (crm.lead.add) או כותבת לאינפובלוק מקומי.
אנליטיקת תצוגה
ללא אנליטיקה, לא ברור אם הפופ-אפ עובד. מינימום — שלושה מדדים: חשיפות, סגירות, המרות. הנתונים נשלחים ל-Yandex.Metrica / Google Analytics דרך ym(COUNTER_ID, 'reachGoal', 'popup_show_' + popupId) או לטבלה מותאמת אישית b_popup_stats.
מה כלול בעבודה
- תכנון ארכיטקטורה והגדרת בלוקי מידע (2-3 ימים)
- פיתוח רכיב מותאם אישית עם טריגרים וטרגוט (5-7 ימים)
- אינטגרציה עם מטמון מורכב באמצעות AJAX (1-2 ימים)
- הגדרת אנליטיקת חשיפות והמרות (יום אחד)
- תיעוד והדרכת מנהל המערכת (יום אחד)
- חודש תמיכה לאחר ההשקה
ציר זמן ועלות
| אפשרות | היקף | משך | עלות אופיינית |
|---|---|---|---|
| חלון קופץ בודד | טריגר קבוע, תבנית אחת, ללא ניהול אדמין | 2-3 ימים | העלות מחושבת לאחר אבחון |
| קונסטרוקטור | בלוק מידע, מספר טריגרים, טירגוט, תאימות לקומפוזיט, אנליטיקה | 7-12 ימים | העלות מחושבת לאחר אבחון |
אנו נעריך את הפרויקט שלך ונציע פתרון אופטימלי. צור קשר — נחשב את לוחות הזמנים והעלות באופן אישי.

