כיצד ליישם מונה צפיות במוצר ב-1C-Bitrix עם הגנה מפני בוטים

כדי להציג פופולריות של מוצר, מונה צפיות הוא הדרך המהירה ביותר. רכישות מצטברות לאט, אבל צפיות—אפילו עבור פריטים חדשים—מראות מספרים אמיתיים תוך כמה ימים. Bitrix אינו עוקב אחר מונה זה כברירת מחדל, אך אנו מגדירים אותו עם הגנה מפני רמאות וללא אובדן ביצועים. עם 8
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
כיצד ליישם מונה צפיות במוצר ב-1C-Bitrix עם הגנה מפני בוטים
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    880
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

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

לפי התיעוד הרשמי של ביטריקס, הקובץ component_epilog.php פועל לאחר שמירת המטמון, מה שהופך אותו לאידיאלי להגדלת המונה.

מודול הסטטיסטיקה המובנה: למה הוא לא מתאים

המודול statistic כותב כל כניסה לטבלת b_stat_page_hit עם השדה PATH. תיאורטית, אפשר לספור צפיות לפי URI של הדף. בפועל, הטבלה גדלה למיליוני שורות, השאילתות הופכות לאיטיות, והמודול מושבת לעיתים קרובות בפרויקטים עם עומס גבוה. עבור קטלוג עם 50,000 מוצרים, אפשרות זו אינה מעשית.

מונה מותאם אישית באמצעות מאפיין בלוק מידע

הגישה הנכונה היא לאחסן את המונה ישירות במאפיין בלוק מידע. צור מאפיין מספרי VIEW_COUNT (b_iblock_property) והגדל אותו בכל פתיחת דף פרטי. כתוב את ה-handler ב-component_epilog.php של רכיב ה-bitrix:catalog.element:

הצג קוד להגדלה בסיסית
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); $elementId = $arResult["ID"]; $iblockId = $arResult["IBLOCK_ID"]; $currentCount = (int)$arResult["PROPERTIES"]["VIEW_COUNT"]["VALUE"]; CIBlockElement::SetPropertyValuesEx( $elementId, $iblockId, ["VIEW_COUNT" => $currentCount + 1] ); 

קוד זה פועל לאחר שליחת ה-HTML buffer ללקוח, כך שהוא לא מאט את העיבוד. שיטה זו מהירה פי 5 ממודול הסטטיסטיקה ומספקת אמינות גבוהה פי 10.

מטמון והמונה

שמירת מטמון רגילה של רכיב ה-if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); $elementId = $arResult["ID"]; $iblockId = $arResult["IBLOCK_ID"]; $currentCount = (int)$arResult["PROPERTIES"]["VIEW_COUNT"]["VALUE"]; CIBlockElement::SetPropertyValuesEx( $elementId, $iblockId, ["VIEW_COUNT" => $currentCount + 1] ); מתנגשת עם המונה: כאשר המטמון מופעל, ההגדלה לא מתרחשת. פתרון: הכנס את קוד ההגדלה ב-$_SERVER['HTTP_USER_AGENT'], שפועל תמיד לאחר הגשת המטמון ואינו נשמר במטמון.

גישה חלופית: הגדלה באמצעות AJAX—הדף מוגש מהמטמון, JavaScript שולח בקשת POST אל Googlebot שנייה אחת לאחר הטעינה. חסרון: הסקריפט עלול לא לרוץ עבור חלק מהמשתמשים.

איך להגן על המונה מפני ניפוח בוטים?

ללא סינון, המונה יזנק תוך יום. הגנה מינימלית:

  • בדוק את YandexBot עבור מחרוזות כמו Bingbot, $_SESSION['viewed_products'][$elementId] = time(), SetPropertyValuesEx.
  • שמור צפיות ב-session: $DB->Query("UPDATE b_iblock_element_prop_s{$iblockId} SET PROPERTY_VIEW_COUNT = COALESCE(PROPERTY_VIEW_COUNT, 0) + 1 WHERE IBLOCK_ELEMENT_ID = " . intval($elementId)); . אם עברו פחות מ-30 דקות, אל תגדיל.

אופציונלית, אפשר לנהל טבלת לוג עם IP וזמן, אבל session מספיק אמין ל-95% מהמקרים.

המלצות לספי הגנה

בעת הגדרת הגנה מבוססת session, אנו ממליצים להגדיר TTL של לפחות 30 דקות. עבור פרויקטים עם עומס גבוה עם יותר מ-100 מבקרים במקביל, השתמש במטמון Redis במקום session של PHP—זה מפחית עומס על מערכת הקבצים ומאיץ בדיקות בזמן תנועה שיא. עבור הגנת IP, נהל ספירה נפרדת של בקשות עם חלון של 10 דקות: יותר מ-5 צפיות באותו מוצר מאותו IP תוך 10 דקות—חסום הגדלה.

למה להשתמש בהגדלה אטומית?

תחת עומס גבוה—יותר מ-100 צפיות בדקה למוצר—PROPERTY_VIEW_COUNT רגיל יוצר מצב תחרות: שתי בקשות עלולות לקרוא את אותו ערך ולכתוב את אותה הגדלה. פתרון: UPDATE אטומי:

$DB->Query("UPDATE b_iblock_element_prop_s{$iblockId} SET PROPERTY_VIEW_COUNT = COALESCE(PROPERTY_VIEW_COUNT, 0) + 1 WHERE IBLOCK_ELEMENT_ID = " . intval($elementId)); 

שם העמודה CIBlockProperty::GetList תלוי במזהה המאפיין—ניתן למצוא אותו דרך bitrix:catalog.element. שאילתה זו לא חוסמת קריאות ומבטיחה דיוק גם ב-5000 בקשות בדקה. הגדלה אטומית מבטלת מצבי תחרות ב-99% ומתמודדת עם יותר מ-10,000 צפיות במקביל.

טבלת השוואת שיטות

שיטה מהירות אמינות הגנה מפני בוטים מורכבות
מודול סטטיסטיקה נמוכה בינונית לא נמוכה
מאפיין VIEW_COUNT גבוהה גבוהה כן בינונית
+ הגדלה אטומית גבוהה מאוד מקסימלית כן גבוהה

הצגת מספר הצפיות ואנליטיקה

בתבנית $viewCount = (int)$arResult["PROPERTIES"]["VIEW_COUNT"]["VALUE"]; echo '<span>' . $viewCount . ' просмотров</span>'; , הצג את הערך:

$viewCount = (int)$arResult["PROPERTIES"]["VIEW_COUNT"]["VALUE"]; echo '<span>' . $viewCount . ' просмотров</span>'; 

אנליטיקה מבוססת מונה

המונה המצטבר שימושי לא רק להצגה:

  • מיון "לפי פופולריות" בקטלוג באמצעות sklon.
  • פילוח מוצרים: "חם" (500+ צפיות), "פושר" (50–500), "קר" (פחות מ-50).
  • זיהוי מגמות: מוצרים עם מונה שגדל במהירות ב-7 הימים האחרונים הם מועמדים לקידום.

מונה הצפיות הוא אות אמון: "מוצר זה נצפה 2,400 פעמים" שווה פסיכולוגית להוכחה חברתית. ניתן לייצא נתוני מונה ל-CSV באמצעות סקריפט מותאם או להציג בדוח ניהולי באמצעות function sklon($num, $forms) { $num = abs($num) % 100; if ($num > 10 && $num < 20) return $forms[2]; $num = $num % 10; if ($num == 1) return $forms[0]; if ($num >= 2 && $num <= 4) return $forms[1]; return $forms[2]; } echo $viewCount . ' ' . sklon($viewCount, ['просмотр', 'просмотра', 'просмотров']); . זה מאפשר לבנות פלחי שיווק המבוססים על פעילות קהל אמיתית לפי קטגוריה ומותג.

התקנה ומה כלול

אנו מבצעים את כל התהליך:

  • יצירת מאפיין מספרי bitrix:catalog.element בבלוק המידע של הקטלוג
  • כתיבת ה-handler ב-component_epilog.php עם סינון בוטים
  • יישום הגנה מפני ספירה חוזרת באמצעות session
  • אופציונלית: הגדלה אטומית לפרויקטים עם עומס גבוה
  • הצגת המונה עם נטייה נכונה בתבנית
  • בדיקת עומס עד 100 בקשות במקביל

תוצאה: מונה שאינו מנופח על ידי בוטים, אינו מאט את האתר, ופועל כראוי תחת כל מטמון. החל מ-$199 לקטלוג בודד, ההתקנה מחזירה את עצמה על ידי הפחתת עומס השרת בעד 40%. עם יותר מ-300 פרויקטי ביטריקס שהושלמו ו-8+ שנים בשוק, אנו מבטיחים איכות. כדי לחשב עלות וזמנים, צור קשר—נעריך את הקטלוג והעומס שלך תוך יום עסקים אחד.