דף תוצאות בזאפ הוא תצפית עם חותמת זמן, לא מחירון. אילו שדות שומרים בכל צילום, למה מחיר ישן אסור שיוצג כמחיר נוכחי, ואיך נמנעים מפרסום מחדש של קטלוג.
עיקרי הדברים
- הרשומה הבסיסית אינה "מחיר של מוצר" אלא "תצפית": מחיר, מטבע, מוכר, כתובת, שיטת לכידה וחותמת זמן.
- מחיר בלי `observed_at` הוא נתון שלא ניתן להפריך. ברגע שמישהו שואל "נכון למתי", התשובה חייבת להיות בשדה ולא בזיכרון.
- זיהוי מוצר לפי שם מייצר התאמות שגויות. מזהה יציב - ברקוד GTIN או מק"ט יצרן - הוא מה שהופך השוואה למשמעותית.
- שמירה פנימית של צילום גולמי כראיה היא דבר אחד. פרסום מחדש של הקטלוג של מישהו אחר הוא דבר אחר לגמרי.
- כשקיימת הזנה רשמית - קובצי שקיפות המחירים של רשתות המזון, הזנת מוצרים של הספק עצמו, או ממשק שותפים - זה המסלול, ולא קריאה של דף תוצאות.
דף תוצאות של השוואת מחירים הוא תצפית: מחיר מסוים, אצל מוכר מסוים, ברגע מסוים, כפי שהוצג לדפדפן מסוים. הוא אינו מחירון ואינו הצעה. כל תכנון שמתייחס אליו כמחירון מייצר בסופו של דבר מספר ישן שמוצג כאילו הוא נכון להיום.
למה דף תוצאות אינו מחירון
מנוע השוואת מחירים מציג רשימה שנבנתה עבור פנייה אחת: מסננים מסוימים, מיון מסוים, מיקום מסוים ולעיתים משתמש מסוים. שני אנשים שפותחים את אותו דף באותה דקה יכולים לראות סדר שונה, ואפילו מוכרים שונים.
לכן הטענה "המחיר של המוצר הוא 899" אינה טענה שאפשר לאמת, בעוד ש"ב-14 באוגוסט בשעה 09:03 הוצג מחיר 899 אצל המוכר X בדף שכתובתו Y" היא טענה שאפשר לבדוק. ההבדל אינו סמנטי: הוא מה שקובע אם דוח שהופק מהנתונים יחזיק מים בישיבה.
עוד שלוש סיבות שדף תוצאות אינו מחירון: מחיר תצוגה לרוב אינו כולל משלוח, מבצע או תנאי כמות; מוכר יכול לשנות מחיר בין הרגע שנצפה לרגע שנקרא הדוח; ורשומה בדף עשויה להיות פרסומית ולא תוצאה אורגנית. ההיבטים העסקיים הרחבים של הפער הזה מפורטים בניטור מחירי מתחרים בישראל.
מה חייבת לשאת רשומת תצפית אחת
| שדה | דוגמה | למה בלעדיו הנתון חסר משמעות |
|---|---|---|
observed_price | 899.00 | המספר עצמו, כפי שהוצג, בלי עיגול ובלי המרה |
currency | ILS | השוואה בין מטבעות בלי השדה הזה היא שגיאה שקטה |
price_includes_vat | true | מחיר לצרכן ומחיר לעסק אינם אותו מספר |
seller_name | שם המוכר כפי שהופיע | תצפית בלי מוכר אינה ניתנת לאימות |
listing_url | כתובת הרשומה הספציפית | מאפשרת לאדם לפתוח ולבדוק |
observed_at | חותמת זמן UTC | בלעדיו אין תוקף לשום מסקנה |
capture_method | "דף תוצאות" / "הזנת ספק" / "קלט ידני" | מחירים ממקורות שונים אינם באותה רמת ודאות |
product_key | ברקוד GTIN או מק"ט יצרן | בלעדיו ההשוואה עלולה להיות בין שני פריטים שונים |
shipping_note | "משלוח 29 ש"ח" או ריק | מחיר זול עם משלוח יקר אינו זול |
raw_ref | מזהה הצילום השמור | ראיה למקרה שמישהו טוען שהמספר שגוי |
השדה שמפתיע אנשים הוא capture_method. מחיר שהגיע מהזנת מוצרים רשמית של ספק ומחיר שנקרא מדף תצוגה אינם שווי ערך, וברגע שהם יושבים באותה טבלה בלי להבחין ביניהם, אי אפשר יותר להסביר סתירה.
מבנה השדות הזה אינו המצאה. אוצר המילים של schema.org להצעת מכר מגדיר בדיוק את האבחנות האלה: price, priceCurrency, availability, seller, url ו-priceValidUntil - כלומר גם התקן הפומבי מכיר בכך שלמחיר יש תאריך תפוגה.
מתי מחיר שנשמר הופך לישן מדי להצגה?
אין מספר אחד, אבל יש כלל: התוקף נקבע לפי קצב השינוי של המקור, ולא לפי נוחות התצוגה. שלוש רמות מעשיות:
- מוצרי אלקטרוניקה וצריכה במנועי השוואה - משתנים ברמת ימים, ולעיתים שעות בתקופות מבצעים. תצפית בת שבוע היא היסטוריה, לא מחיר.
- מוצרי מזון ברשתות - מתפרסמים בקבצים רשמיים בקצב יומי, כך שיש עוגן חיצוני לתדירות.
- ציוד מקצועי ומחירוני ספקים - יציבים יותר, לעיתים חודשים, אבל דווקא שם קל לשכוח שהמחיר השתנה.
הכלל התצוגתי נגזר מכך: לעולם אין מציגים מחיר שמור בלי הזמן שבו נצפה, וכשהתצפית חורגת מסף שהוגדר מראש, המספר מוצג באפור עם ציון "נצפה לפני 9 ימים" או שאינו מוצג כלל. מסך שמראה "899 ש"ח" בלי תאריך הוא מסך שמייצר החלטות שגויות בשקט. אותו עיקרון של מקור אמת יחיד למחיר מפורט במחירון ידני מול מקור אמת אחד.
התאמת מוצר: למה שם אינו מזהה
הכשל היקר ביותר בניטור מחירים אינו איסוף שנשבר, אלא השוואה בין שני פריטים שונים שמוצגת בביטחון מלא. "מקרר 500 ליטר לבן" הוא לא מזהה:
- אותה דגם מופיע אצל מוכרים שונים בסדר מילים שונה ובקיצורים שונים.
- מק"ט פנימי של חנות אינו מק"ט יצרן.
- אריזה כפולה, ערכה או דגם שנה קודמת נראים כמעט זהים בשורת הכותרת.
- צבע או נפח מופיעים לעיתים רק בתמונה או בדף הפריט.
התשובה היא מזהה יציב. תקן GS1 מגדיר את מפתח ה-GTIN כמזהה גלובלי למוצר, וזה מה שמאחורי הברקוד. כאשר יש GTIN או מק"ט יצרן, ההתאמה ודאית. כאשר אין, הפריט הולך לתור בדיקה אנושי - ולא להשוואה אוטומטית לפי דמיון שמות. מספר חסר עדיף על מספר שקרי.
מה שומרים, ומה אסור לפרסם מחדש
ההבחנה פשוטה יותר משנדמה, ושווה לכתוב אותה במסמך האפיון:
- שמירה פנימית של צילום גולמי - כדי לבדוק בדיעבד אם המערכת קראה נכון. זהו שימוש פנימי ומוגבל בזמן.
- נתון נגזר - "החציון בקטגוריה ירד ב-4 אחוזים החודש", "אנחנו יקרים ב-12 אחוזים בשלושה מתוך שמונה פריטים". זה מה שמזין החלטה.
- מה שאינו חלק מהשיטה - להעמיד מסך ציבורי שמשכפל את רשימת המוצרים והמחירים של מקור אחר. זו כבר הפצה מחדש של קטלוג שאינו שלכם, והיא נשלטת על ידי תנאי המקור והדין החל.
הכלל הפרקטי: ככל שהתוצר קרוב יותר להעתק של הקטלוג המקורי, כך גדל הסיכון; וככל שהוא מופשט יותר לכדי מדד, כך הוא גם שימושי יותר עסקית. שתי המגמות מצביעות לאותו כיוון.
מאיפה מביאים מחיר בלי לקרוא דף תוצאות?
לפי הסדר, וזה הסדר שחוסך את רוב העבודה:
- הזנת מוצרים של הספק או המוכר עצמו. קובץ שנשלח אליכם או ממשק מתועד. יציב, מוסכם, ואין בו שאלת תנאים.
- פרסום מחויב על פי דין. ברשתות המזון בישראל מתפרסמים קובצי מחירים ומבצעים לכל סניף באתרי שקיפות ייעודיים, למשל אתר שקיפות המחירים של שופרסל, שמאפשר בחירת סניף והורדת הקבצים.
- ממשק שותפים או תוכנית מסחר רשמית, אם למקור יש כזו.
- קלט ידני מתועד - מישהו פותח, מצלם, ורושם. איטי, אבל לגיטימי, ולעיתים מספיק לעשרים פריטים.
- קריאה מדף פומבי - אחרון, ורק אחרי בדיקת התנאים וההנחיות של אותו מקור.
הסדר הזה אינו נימוס. הזנה רשמית שוברת פחות, עולה פחות לתחזק, ולא דורשת דיון בכל שינוי עיצוב באתר של מישהו אחר. השוואה בין המסלולים בהקשר של מנועי קניות מפורטת באיסוף מחירים מגוגל שופינג.
מקורות
שאלות נפוצות
האם מותר לאסוף מחירים מאתר השוואת מחירים?
זו אינה שאלה שמאמר יכול לענות עליה. לכל אתר יש תנאי שימוש והנחיות robots, ויש דין שחל, והתשובה תלויה גם במה בדיוק נאסף ולשם מה. את הבדיקה הזו עושים מול עורך דין לפני שבונים, לא אחרי. אם המקור חוסם, התשובה היא לעצור.
מה עושים כשאותו מוצר מופיע במחירים שונים אצל אותו מוכר?
שומרים את שתי התצפיות. הבדל נובע לרוב ממחיר מבצע מול מחיר בסיס, ממחיר לחברי מועדון, או מדף אחר של אותו פריט. איחוד שתי התצפיות לערך אחד מוחק את המידע שמסביר את הפער, ואי אפשר יהיה לשחזר אותו אחר כך.
כמה זמן צריך לשמור צילומים גולמיים?
מספיק שזה יכסה את חלון הבדיקה שלכם - לרוב שלושים עד תשעים יום, כדי לאפשר בירור של מספר שנראה חריג. מעבר לזה שומרים את הנתון הנגזר בלבד. שמירת גולמי ללא הגבלה מגדילה עלות אחסון וגם את היקף המידע שאתם מחזיקים בלי צורך.
האם מספיק לשמור מחיר אחרון לכל מוצר?
לא. בלי סדרת זמן אי אפשר לומר אם מחיר ירד או שתמיד היה כזה, ואי אפשר לזהות מבצע חוזר. מצב נוכחי בלבד עונה על השאלה "מה המחיר" ולא על השאלה "מה השתנה", וזו השאלה השנייה שמצדיקה את הפרויקט.
להמשך קריאה
שירות רלוונטי
ניטור מחירי מתחרים
מחירים ומלאי של מתחרים כל יום, מותאמים למק"טים שלכם, עם התראות.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
