פיתוח פלטפורמת בינה מלאכותית לתווית לבנה לאנליטיקה עבור משווקים מחדש

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

תחומי פיתוח AI

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

למה אנליטיקת AI ב-white-label נשברת תחת עומס גובר

כששותפים שניים-שלושה, אנליטיקת AI ב-white-label נראית עובדת: דוחות נאספים, המספרים תואמים, כל מפיץ רואה את הפאנל שלו. נקודות הכשל מתגלות מאוחר יותר — כשהשותפים כבר עשרות, וזרימת האירועים גדלה פי כמה. נפרק ארבעה מקומות שבהם פלטפורמת אנליטיקה תחת המותג שלכם מתחילה להיסדק.

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

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

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

מה משתנה אחרי ההטמעה: מהירות, כשלים, עומס

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

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

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

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

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

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

אפשרויות אספקה: ענן, קונטור מבודד, היברידי

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

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

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

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

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

סדר העבודות: מניתוח נתונים ועד מסירת הפלטפורמה

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

  1. ביקורת מקורות נתונים. בודקים מהיכן מגיעה האנליטיקה: בסיסי נתונים, ייצואים, תורי אירועים, שירותים חיצוניים. מתעדים את תדירות העדכון, הנפח, איכות השדות, ואיזה נתונים חסרים לדוחות שהמפיץ מבטיח ללקוחותיו.
  2. סכימת הפלטפורמה. מתכננים את בידוד השוכרים, מודל אחסון אירועים ואגרגטים, נקודות חיבור למקורות חדשים. בפלט — סכימה עם תיאור הזרימות והגבולות, מוסכמת לפני תחילת ההרכבה.
  3. הרכבה והגדרת מודלים. מממשים קליטת נתונים, צינור עיבוד ושכבת דוחות; מגדירים מודלים אנליטיים על מדגמים אמיתיים של הלקוח, ולא על מערך הדגמה.
  4. הגדרת תפקידי גישה. מפרידים בין רמות: מנהל הפלטפורמה, מפיץ, הלקוח שלו, אנליטיקאי. ההרשאות מוגדרות ברמת הנתונים והדוחות, כדי ששוכר לא יראה סטטיסטיקה של אחרים לא בממשק ולא דרך ייצוא.
  5. בדיקות קבלה. מריצים תרחישים: טעינת מקור, חישוב מחדש של אגרגטים, כשל מקור, שחזור אחרי תקלה. משווים מספרים בדוחות מול מערכות המקור — פער מתעדים כפגם, לא תולים ב«ייחודיות של הנתונים».
  6. מסירת תיעוד. מוסרים סכימה, קונפיגורציות, נוהל עדכון מודלים והוראות לתמיכת המפיץ. מכשירים את צוות הלקוח ומלווים את ההרצות הראשונות.

ערכת מסירה: קונפיגורציות, סכימות, נהלים, תיעוד

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

  • קונפיגורציות עבודה — פרמטרים של כל סביבה: סביבות הרצה, תורי עיבוד, מגבלות עומס, לוחות זמנים לחישוב מחדש של מודלים. נפרסים מקבוצת קבצים אחת, בלי תיקון ידני מהזיכרון.
  • סכימות זרימת נתונים — נתיב הרשומה מהמקור ועד למאגר הדוחות ולדוח: היכן מנרמלים נתונים, באילו נקודות מתחברים המודלים, היכן נשמרות התוצאות.
  • סכימות אינטגרציה — חוזים של מערכות חיצוניות: פורמטי חליפין, שיטת אימות, כללי ניסיונות חוזרים כאשר המקור אינו זמין.
  • מטריצת גישה — תפקידים לפי רמות (מנהל מפיץ, אנליטיקאי, מפעיל, צופה) עם רשימת הנתונים והפעולות לכל אחד וסדר הענקת ההרשאות.
  • נהלי תפעול — מה לעשות בעת דרדור, כיצד להפעיל מחדש עיבוד, כיצד לחזור לקונפיגורציה קודמת ולאן להסלים אירוע.
  • הוראות לצוות — תרחישים צעד-אחר-צעד לחיבור לקוח חדש של מפיץ ולהוצאת עדכון, עם נקודות בדיקה בכל שלב.

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

מקרה בוחן: פלטפורמת אנליטיקה ב-white-label לרשת שותפים

נקודת התחלה

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

מה שינו ומה קיבלו

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

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

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

ריבוי טננטים או קונטור נפרד לכל לקוח?

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

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

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

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

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

שאלות שנשאלות לפני תחילת העבודות על הפלטפורמה

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

הפלטפורמה נפרסת בתוך הקונטור שלנו?

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

מה יקרה לדוחות שכבר נאספים?

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

איך נתונים של מפיץ אחד לא יגיעו לאחר?

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

מי מתחזק את המודלים ומעדכן את האנליטיקה אחרי המסירה?

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

אפשר לחבר מקורות נתונים משלכם?

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

מה לדון בניתוח המשימה הראשון

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

  • סכימת מקורות: אילו מערכות מוסרות נתונים, באיזה אופן, באיזו תדירות ומי בעל הגישה — מזה תלויים שכבת הטעינה ולוח העדכונים.
  • פרופיל נתונים: סוגי רשומות, נפחים משוערים והצמיחה שלהם, חלק הטקסט הלא מובנה — זה קובע את בחירת המודלים ואת הדרישות למאגר.
  • דרישות בידוד: האם נדרשים קונטורים נפרדים לכל מפיץ, היכן פיזית נמצאים הנתונים ומה לא אמור להצטלב בין לקוחות.
  • מפת תפקידים והרשאות: מי רואה רק את הדוחות שלו, מי — מסכמים, מי מגדיר מדדים; ממנה נבנית מודל הגישה.
  • תרחישי דוחות: 3-5 שאלות שהפאנל חייב לענות עליהן, עם דוגמאות לייצואים ולסימון הנוכחיים.
  • דרישות white-label: דומיין משלכם, לוגו ותבנית עיצוב, שפת הממשק, מגבלות על אזכור הפלטפורמה.
  • תחום אחריות: מה סוגר הצוות שלכם — הרשאות, תשתית, קבלה — ומה אנחנו: צינור נתונים, מודלים, ממשק, תיעוד.

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