יצירת קשר עם התמיכה

אנחנו משיבים בדוא״ל, בדרך כלל בתוך יומיים.

למניעת שימוש לרעה, Google reCAPTCHA בודק את הפנייה הזאת; נתונים נשלחים אל Google. הסקריפט נטען רק עם פתיחת הטופס הזה.

→ כל הרשומות

שיעור נטישה צריך סיבית אחת, לא כלי מעקב

על התוכן ועל בדיקתו

במאמר הזה

עד 28 באוגוסט האתר הזה לא הציג שיעור נטישה, ודף האודות אמר שזה מכוון: לשם כך צריך הפעלה שנעקבת לאורך כמה צפיות בדפים, וזה יצריך באנר הסכמה.

החצי הראשון היה נכון. השני הפסיק להיות נכון ברגע שהתחלנו לרשום דפי יציאה, ואיש לא עדכן את המשפט.

ארבעה ביקורים, ומה כל מקור אומר עליהם טבלת המעברים הסיבית דף אחד שום דבר 0 אותו דף פעמיים שום דבר 0 שני דפים בהפרש 40 שניות מעבר אחד 1 שני דפים בהפרש 35 דקות שום דבר 1 הביקור הרביעי אינו נטישה, ורק אחד משני המקורות יודע זאת

למה אי אפשר היה פשוט לחשב

יש טבלה של מעברים מדף לדף. היא נראית כמו כל מה ששיעור נטישה צריך: ביקור שעובר מדף אחד לאחר אינו נטישה, אז יש לספור את הביקורים ללא מעברים.

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

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

מה המידע כן אמר

ב־27 וב־28 באוגוסט היו 8,669 ביקורים ו־2,817 מעברים, כך שבממוצע 1.32 דפים לביקור. 99 מתוך 572 מונים רשמו מעבר כלשהו.

זה אינו מתג כבוי — רישום נתיבים פעיל כברירת מחדל, ובכל 166,453 המונים הוא מופעל. האתרים האלה באמת מורכבים מדף יחיד: דפי פרופיל, אתרים בני דף אחד, גלריית תמונות בפלטפורמה של מישהו אחר. שיעור הנטישה של רובם יעמוד קרוב למאה אחוז, וזה יהיה נכון.

סיבית אחת, ללא איסוף חדש

לביקור כבר יש שורה לשעה. היא מכילה כעת דבר נוסף: האם הביקור הזה ראה אי פעם דף שני ושונה. הערך נקבע בתוך הפקודה שממילא פועלת, ללא שאילתה נוספת:

ON DUPLICATE KEY UPDATE mehr = mehr | (url <> VALUES(url)),
                        last_seen = UNIX_TIMESTAMP(), url = VALUES(url)

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

כשהשעה מסתיימת, הניקוי הלילי סופר את השורות שתוקפן מסתיים — כמה ביקורים, כמה מהם בכמה דפים — כותב שורה אחת לכל מונה ויום, ומוחק את השורות. הסיבית חיה שעה. ללא עוגייה, וללא דבר שחי יותר מהסיבית.

מה חל באופן כללי

השאלה המעניינת מעולם לא הייתה איך לעקוב אחר הפעלה. היא הייתה איזה מהדברים שאנחנו כבר רושמים עונה במקרה על השאלה, ואם התשובה שהוא נותן נשענת על אותה הגדרה כמו השאלה.

שני מקורות שנראים שניהם כמודדי ביקורים, אחד עם כלל של שלושים דקות ואחד עם כלל של שישים דקות, יפיקו יחס שהוא מספר ואינו אומר דבר. קל יותר להוסיף סיבית אחת לשורה שכבר קיימת מאשר להסביר אחר כך למה השיעור הוא כפי שהוא.

פרסומת