הכנסת מספר דינמי לפי מקור תנועה ב-1C-Bitrix
משווק רוצה לדעת כמה שיחות מגיעות מ-Yandex.Direct לעומת תנועה אורגנית. אם האתר שלך כולל מספר טלפון יחיד, זה בלתי אפשרי ללא מעקב שיחות. הכנסת מספר דינמי (DNI) – החלפת המספר המוצג לפי מקור התנועה – פותרת זאת. יישמנו עשרות אינטגרציות כאלה במפתח מלא – ללא שירותים חיצוניים, רק PHP טהור ו-Bitrix. החיסכון בשירותים חיצוניים יכול להגיע ל-40%.
כיצד הכנסת מספר דינמי פותרת ייחוס שיחות
בכל כניסה של מבקר, המערכת מזהה את המקור שלו: תגי UTM, מזהי קליקים (yclid, gclid), ו-referrer. אם המקור מזוהה, המספר המתאים מטבלת מיפוי מוצג. כך, אתה רואה ששיחה ל-+375 29 111-22-33 הגיעה מ-Yandex.Direct, בעוד ש-+375 29 444-55-66 הגיעה מאורגני. הנתונים נרשמים בהזמנה וב-CRM. בפועל, עד 80% מהשיחות מיוחסות כראוי לאחר ההתקנה. עם 2,000 שיחות בחודש, זה עד 1,600 מיוחסות.
מה צריך כדי לבצע אינטגרציית מעקב שיחות משלך
ל-Bitrix אין מעקב שיחות מובנה. ישנם שני מסלולים: שירותים חיצוניים (CoMagic, Calltouch, Roistat) עם קוד ה-JavaScript שלהם ודמי מנוי חודשיים, או יישום עצמי המבוסס על סשנים ופרמטרי UTM. אנו מציעים את האפשרות השנייה – היא זולה יותר (רק עלות המספרים הנוספים) וניתנת לשליטה מלאה. החיסכון הממוצע הוא 60–80% בהשוואה למנוי לשירות חיצוני.
לפי תיעוד 1C-Bitrix, ה-handler של OnPageStart רץ על כל בקשה.
השוואת גישות
| קריטריון | שירות חיצוני | יישום פנימי |
|---|---|---|
| דמי מנוי חודשיים | חוזרים (לפי תוכנית) | רק השכרת מספרים |
| עומק נתונים | מלא (הקלטה, משך) | הצגת מספר בלבד |
| אינטגרציית Bitrix24 | דרך API | ישירות דרך אירועים |
| מהירות השקה | יום אחד | 2-3 ימים |
| תלות בקוד צד שלישי | כן | לא |
הפתרון הפנימי מנצח בעלות ובשליטה. שירותים חיצוניים מספקים יותר אנליטיקה (הקלטת שיחות, ייחוס מדויק) אך דורשים תקציב.
עדיפויות זיהוי מקור
הכלל לבחירת מספר מבוסס על עדיפות: אם קיים yclid – מספר עבור Yandex.Direct, אם gclid – עבור Google Ads, ולאחר מכן ערוץ UTM ו-referrer. זה מונע התנגשויות.
| עדיפות | מקור | מפתח בטבלה |
|---|---|---|
| 1 | yclid (Yandex.Direct) | yclid |
| 2 | gclid (Google Ads) | gclid |
| 3 | utm_source | utm_source:{значение} |
| 4 | referrer | referrer:{домен} |
איך אנחנו עושים את זה: מחסנית וקוד
כדי לזהות את מקור התנועה בביקור הראשון, אנו משתמשים ב-handler של OnPageStart. הפרמטרים נשמרים בסשן:
AddEventHandler('main', 'OnPageStart', function() { if (isset($_GET['utm_source']) || isset($_GET['yclid']) || isset($_GET['gclid'])) { $_SESSION['traffic_source'] = [ 'utm_source' => $_GET['utm_source'] ?? '', 'utm_medium' => $_GET['utm_medium'] ?? '', 'utm_campaign' => $_GET['utm_campaign'] ?? '', 'yclid' => $_GET['yclid'] ?? '', 'gclid' => $_GET['gclid'] ?? '', 'referrer' => $_SERVER['HTTP_REFERER'] ?? '', 'timestamp' => time(), ]; } if (!isset($_SESSION['traffic_source'])) { $_SESSION['traffic_source'] = [ 'referrer' => $_SERVER['HTTP_REFERER'] ?? '', 'direct' => true, ]; } }); מיפוי מקור למספר מאוחסן בטבלה נפרדת:
CREATE TABLE custom_calltracking_numbers ( id SERIAL PRIMARY KEY, source_key VARCHAR(100) NOT NULL, -- 'yclid', 'gclid', 'utm_source:yandex', ... phone VARCHAR(30) NOT NULL, description VARCHAR(255), active BOOLEAN DEFAULT true ); לוגיקת בחירת המספר:
function getPhoneByTrafficSource(array $source): string { $default = '+375 (17) 000-00-00'; if (!empty($source['yclid'])) { return getPhoneFromDb('yclid'); } if (!empty($source['gclid'])) { return getPhoneFromDb('gclid'); } if (!empty($source['utm_source'])) { return getPhoneFromDb('utm_source:' . $source['utm_source']) ?: $default; } if (!empty($source['referrer'])) { $host = parse_url($source['referrer'], PHP_URL_HOST); return getPhoneFromDb('referrer:' . $host) ?: $default; } return $default; } החלפת המספר בתבנית האתר נעשית על ידי החלפת הערך המקודד בקריאה לפונקציה:
$phone = getPhoneByTrafficSource($_SESSION['traffic_source'] ?? []); echo '<a href="tel:' . preg_replace('/\D/', '', $phone) . '">' . $phone . '</a>'; אם התבנית אינה ניתנת לעריכה, אנו משתמשים ב-handler של OnEndBufferContent:
AddEventHandler('main', 'OnEndBufferContent', function(&$content) { $phone = getPhoneByTrafficSource($_SESSION['traffic_source'] ?? []); $content = str_replace('+375 (17) 000-00-00', $phone, $content); }); תהליך עבודה
- אנליטיקה – קביעה אילו מקורות תנועה חשובים, הסכמה על רשימת מספרים.
- עיצוב – פיתוח סכמת טבלה ולוגיקת עדיפויות.
- יישום – כתיבת handlers, יצירת טבלה, אינטגרציה לתבנית.
- בדיקות – אימות החלפה לכל מקור (UTM, קליקים, הפניות).
- פריסה – העלאה לסביבת ייצור, הגדרת ניטור.
מקרה בוחן
מקרה: חנות אונליין למוצרי אלקטרוניקה עם ארבעה מספרים לערוצים שונים. לאחר ההתקנה, חלק השיחות ללא ייחוס ירד מ-70% ל-15%. האנליטיקה הראתה ש-35% מהשיחות הגיעו מאורגני, 40% מ-Yandex.Direct, והשאר מ-Google Ads ומרשתות חברתיות. בהתבסס על נתונים אלה, תקציב הפרסום חולק מחדש, מה שהעלה את ההמרה ב-12%.
מה כלול בעבודה
- הגדרת handlers של OnPageStart ו-OnEndBufferContent
- יצירת טבלת custom_calltracking_numbers
- יישום פונקציית בחירת מספר עם עדיפויות
- החלפת מספר בתבנית או דרך אירוע
- העברת מקור התנועה להזמנה (שדה USER_DESCRIPTION)
- תיעוד להוספת מספרים חדשים
- אחריות ל-30 יום לפעולה תקינה
טעות אופיינית: שמירת מספר במטמון
אם אתה משתמש במטמון מתויג או במטמון דף מלא, המספר עלול להיות קבוע לכל המבקרים. פתרון: השבתת מטמון למספרים דינמיים או שימוש ב-OnEndBufferContent להחלפה לאחר המטמון.לוח זמנים ועלות
ההתקנה אורכת בין 2 ל-5 ימים – תלוי במורכבות המיפוי ובגישה לפאנל הניהול. העלות מחושבת באופן אישי לאחר ביקורת על האתר הנוכחי שלך. אנו עובדים עם Bitrix למעלה מ-5 שנים, עם יותר מ-30 פרויקטים של מעקב שיחות מאחורינו. צור קשר להערכת פרויקט שלך – נכין הצעה תוך יום אחד. קבל ייעוץ למשימה שלך וחסוך עד 40% על מעקב שיחות.
טעויות אופייניות ביישום עצמי
- דריסת המספר למשתמש שכבר אומת – הסשן צריך להיווצר רק בביקור הראשון.
- התעלמות ממטמון – המספר נשמר במטמון ב-HTML; יש לנקות מטמון רכיב או להשתמש במטמון מתויג.
- אין מספר ברירת מחדל – לביקורים ישירים ומקורות לא נתמכים.
אם אתה רוצה ליישם החלפת מספר משלך ללא תשלומים חודשיים לשירותים חיצוניים, תן לנו להעריך את הפרויקט שלך – פשוט כתוב לנו.







