קרבות Push Notifications בצוק איתן, מי השולף המהיר ביותר?

מבצע צוק איתן הדגיש את החשיבות של שליחה מהירה של הודעות ב-Push Notifications. מהן החוליות החלשות וכיצד עושים את זה הכי מהר שניתן?

צבע אדום

הפוסט נכתב על ידי אלירן לזר, מנכ”ל PushApps ושותף ב-Groboot שמתמחה בפיתוח אפליקציות למובייל ול-Web.

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

בגלל PushApps שהיא מערכת לשליחת הודעות Push שפיתחנו, לי אישית יש מאות אפליקציות שאישרתי להן לשלוח לי הודעות כדי ללמוד. בתקופת צוק איתן נקראתי בצו 8 למילואים ופתאום שמתי לב שכל צבע אדום אני מקבל מספר רב של הודעות התראה שונות ב-Push מכל עיתון או כל חברה. 0404 אפילו הגדילו לעשות והוסיפו שעה כדי שתוכלו לראות מתי נשלחה ההודעה לעומת מתי זה הגיע למכשיר. כל עוד הנייד שלי היה איתי שיחקתי עם עצמי את משחק “השולף המהיר ביותר במזרח התיכון”. בכל פעם ששמעתי צבע אדום בשטחי כינוס חיכיתי לראות מי ישלח את ההודעה ראשון ומה הם יכתבו.

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

בכדי לדון בנושא, חשוב להבין קודם כל כיצד עובד מנגנון הודעות ה-Push:

שלב ראשון: רישום המכשיר אצל Apple ו/או Google

גם ב-iOS וגם ב-Android, מנגנון ההודעות הוא כזה שעובר לרוב דרך שירות ההודעות של כל אחת מהחברות הללו – APNS אצל Apple ו-GCM אצל Google. מפתח האפליקציה שותל קוד באפליקציה שתפקידו לרשום את המכשיר באחד השירותים הללו (בהסכמת המשתמש כמובן), לאחר הרשמה מוצלחת הוא מקבל מזהה ייחודי של המכשיר בשירות אליו נרשם. באמצעות מזהה זה, שרת צד שלישי יוכל לפנות לשירותים הללו בבקשה לשליחת הודעת Push למכשיר זה.

שלב שני: רישום המזהה בשרת צד שלישי

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

שלב שלישי: ניהול סגמנטציה של המשתמשים

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

שלב רביעי: שליחת ההודעה

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

נשמע פשוט לא? כנראה שלא עד כדי כך, עובדה לכך היא תעשיית שירותי ה-Push הענקית שצמחה בשנים האחרונות, אשר נותנים למפתח האפליקציה פתרון מא’ עד ת’ לשליחה וניהול הודעות ה-Push באפליקציה, וחוסכים ממנו כמעט את כל העבודה שתוארה בשלבים הקודמים. יש לציין שלמרות שאפליקציות רבות משתמשים בשירותים אלה, ישנן גם אפליקציות רבות אשר מבצעות את השליחה בעצמן, במה שנקרא In House, מהסיבות שלהן.

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

אז כיצד שולחים הודעה מהר ככל הניתן?

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

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

שירות ה-APNS של אפל

שליחת ההודעה מתבצעת ע”י חיבור TCP קבוע לשרתים של Apple. כדי להקים את החיבור יש לשלוח את התוכן של ה-certificate שהמפתח קיבל בעצמו מבעוד מועד מהשירות. זמן הקמה זה אמנם איטי יחסית, אך לאחר שהחיבור מוקם ההודעות נשלחות בקצב מהיר מאוד. ההודעות עצמן נשלחות בשיטת “שגר ושכח” כך שהן מוזרמות באופן רציף ללא קשר לתוצאת שליחתן ורק שגיאה בחיבור עצמו או בניית ההודעה תקטע את החיבור מול Apple. כל שרת יכול להחזיק עד בערך 15 חיבורים מקבילים כאלה. מניסיוננו חיבור בודד כזה יכול לשלוח עשרות ואף מאות הודעות כאלה בשנייה בהתאם למהירות השרת והרשת (משקל כל הודעה מוגבל ל-256 Bytes, אז תאורטית שרת עם מהירות של 1MB יכול לשלוח 4096 הודעות בשנייה בקצב השיא שלו, אבל כמובן שיש בדרך תקורות למיניהן שמביאות את קצב השליחה לנמוך בהרבה).

את תוצאות ההודעה קוראים משרת אחר לגמרי של Apple שנקרא הFeedback service והוא מעדכן אותנו איזה הודעות הצליחו, איזה נכשלו ומדוע, ולא חשוב מכך איזה מזהים של מכשירים כבר אינם רלבנטיים כיוון שהתוקף שלהם פג (אם משתמש לא התחבר לאפליקציה תקופה ממושכת) או שהמשתמש ביטל את הודעות הפוש לאפליקציה זו, או שהמשתמש מחק אותה מהמכשיר – ונותן לנו את האופציה לטייב את רשימת המכשירים שלנו.

שירות ה-GCM של גוגל

כאן הסיפור שונה לחלוטין. ההודעות נשלחות בפרוטוקול HTTP, כל הודעה היא קריאה בודדת לשרתים של Google – ותוצאת ההודעה מוחזרת לנו באופן מיידי. ניתן לחשוב שקריאת HTTP לכל הודעה היא משהו בזבזני שייקח המון זמן אך Google פתרו נושא זה בכך שהם נותנים לנו לשלוח (במקרה של הודעה זהה שזה המקרה הנפוץ העולם האפליקציות) את אותה הודעה ל-1000 מכשירים שונים בו זמנית באותה קריאה, כך שאנחנו מעבירים את ההודעה פעם אחת יחד עם רשימה של 1000 מזהים שונים – דבר שמשפר את קצב השליחה משמעותית. הודעה כזאת ל-1000 משתמשים שוקלת בממוצע כמה מאות KB, כך שאפילו שליחה של הודעה אחת כזאת בשנייה תביא אותנו לקצב יפה של 1000 הודעות בשנייה.

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

<<< 8 טיפים לשימוש נכון ב-Push Notifications באפליקציה שלכם

כתב אורח

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

הגב

35 תגובות על "קרבות Push Notifications בצוק איתן, מי השולף המהיר ביותר?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
טל שגיא
Guest

כתבה מצוינת. השכלתי.

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

טל שגיא.

גיסנו
Guest

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

תומר דרום
Guest

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

גיא מרון
Guest

לא מבין למה צריך את השירות שלכם- למה לא לשלוח ישירות דרך gcm או apns? למה אני צריך אתכם באמצע?
ונניח שאני רוצה חוליה מקשרת באמצע- במה אתם טובים מהמתחרים (push.io, urbanairship וכדומה)?

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

אלירן
Guest
היי גיא, ברשותך אחלק את התשובה למספר חלקים – 1. אם אתה מכיר את urban, push.io וכדומה, אז אתה יודע שזה שוק מאד חזק שמתפתח, למה צריך את זה? זה כמו שתשאל למה צריך את ActiveTrail או MailChimp כדי לשלוח מיילים, זה כמו שתשאל למה צריך את ZOOZ או Tranzilla כדי לשלם, תפתח את זה בעצמך. לפעמים כדי לחסוך הרבה מאד עבודה שהיא לא עיקר הפיתוח שלך אתה מעדיף להשתמש בשירותים חיצוניים ו- PushApps ודומיו הוא אחד מהם. 2. על השאלה למה דווקא אנחנו, ברשותך לא אענה פה, אבל אשמח להסביר בכל בפלטרומה אחרת שהיא לא טוקבק על מאמר. 3.… Read more »
גיא מרון
Guest

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

ולגבי התמונה- אז למה השתמשת בתמונה של האפליקציה ההיא? תהיו אתים לפחות, זה המינימום שמצופה.

אלירן
Guest
אתה צודק בנוגע לתמונה, היא באה להמחשה בלבד, לא חשבנו שמישהו ייתייחס לזה בצורה כזאת. אבל אם נמשיך את הדיון על למה צריך את זה, אז תחשוב רגע כמה זמן (שווה כסף) לוקח לך לפתח שרת כזה בעצמך, ועכשיו תוסיף לזה את כל הפיצ’רים המיוחדים (שליחה לפי סגמנטציה, לפי אירועים אוטומטיים, שליחה בתזמון, מבוסס מיקום ועוד) ונגיד שאתה רוצה גם לראות סטטיסטיקות של כל הודעות… אחרי שפיתחת את כל זה תחשוב כמה אתה צריך להשקיע זמן (שווה כסף) כדי לתחזק את זה. האם לא עדיף לך לשלם סכום סימלי כל חודש ולהמשיך להתעסק עם החלק העיקרי של האפליקציה שלך? אני… Read more »
אבי
Guest

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

אלירן
Guest

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

אבי
Guest

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

ואולי, מן הראוי, שתכתבו גילוי נאות שהכתבה היא כתבה ממומנת.

אלירן
Guest

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

האם אתה חושב שזה שאני מתעסק בהודעות Push Notifications בשנה וחצי האחרונות משנה את העובדות שכתבתי מהפסקה השלישית? מי היית מעדיף שיכתוב לך על הנושאים האלה? אתה לא מעדיף מישהו שיכתוב מהניסיון שלו?

אבי
Guest
היי אלירן ותודה על התגובה המהירה. אני חושב שזה קצת לא במקום שאתה כותב מאמר שמפרסם את החברה שלך, במסווה של כתבה טכנולוגית. הרי ברור שאת העובדות הצגת, על זה אין ויכוח, אבל חובת הגילוי הנאות מחייבת אותך לומר שהכתבה היא ממומנת, או לכל הפחות נועדה כדי לפרסם את המוצר שלך. תחשוב על זה ככה- כמה אמין זה היה נשמע אם סטיב ג׳ובס עליו השלום היה כותב מאמר על ״איזה מחשב כדאי לקנות השנה״, וכדרך אגב ממליץ על מק? כמה אמין זה היה נשמע אם גיל שווייד היה מסביר איך עובד פיירוול, ו״על הדרך״ ממליץ על הפיירוול של צ׳קפוינט? תהיה… Read more »
אבי
Guest

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

נמרוד
Guest

אף אחד לא יודע לקרוא פה?

אורי
Guest

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

תומר דרום
Guest

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

אבי
Guest

חחח הנה עוד תגובה ממומנת מבית היוצר של גיקטיים

אבי
Guest

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

תומר דרום
Guest

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

גיסנו
Guest

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

רן
Guest

הייתי מצפה לקצת יותר מקצועיות ממי שמתיימר לפתח פלטפורמה לפושים.
שירות GCM של גוגל מאפשר שליחת הודעות בשני אופנים:
1. HTTP כפי שתואר בכתבה.
2. XMPP – המאפשר חיבור קבוע, אסינכרוני ודו כיווני בין שרת האפליקציה לשרת GCM של גוגל.

כאשר עובדים עם GCM, אפשר לשלב בין שתי השיטות הנ”ל (כלומר להשתמש גם ב-HTTP וגם ב-XMPP כאוות נפשינו).

עובד גוגל
Guest

XMPP משתמש בפרוטוקלים של XML. אני מבין שנתקעת בשנות ה90 רן.

רן
Guest

מכיוון שגוגל השיקה את התמיכה ב-XMPP עבור GCM רק לפני כשנה – כנראה שגם היא “תקועה בשנות ה-90” יחד איתי.

משום מה אני נוטה לסמוך יותר על המהנדסים שהרימו את השירות הזה מאשר על איזה טוקבקיסט ממורמר ואנונימי.

Doron
Guest

Push notifications are only as fast as the (APNS or GCM) network that delivers them. For *real* realtime message delivery via a global data stream network (current stats: 14 data centers, 3 million msgs/sec, 150 million devices) see: http://www.pubnub.com/docs/java/android/tutorial/data-push.html

יניב
Guest

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

עם ישראל חי ✌

יניב
Guest

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

ששון
Guest

האפליקציה שלך לא צריכה צד שרת ומתשאלת את פיקוד העורף ישירות מהמכשיר?

ספר לי עוד על ״כמה האפליקציה שלך לא טוחנת את הסוללה״

אור
Guest

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

טל ארביב
Guest

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

אלירן
Guest

היי טל,
תודה על הזמן שהשקעת בקריאה ובתגובה. כל מה שכתבת נכון.
יש לנו מאמר בנושא ההיסטוריה של ה-Push מה-BlackBarry וה- Windows mobile 5.0 (שהיה במכשירי ה-Palm הישנים) ושם אנחנו נוגעים בהבדל בין Polling ו-Push היתרונות והחסרונות וכד’.
המחשבה הייתה למקד את המאמר הזה בנושא מהירות השליחה. קיבלתי את ההערה שאולי הייתי צריך להכניס על זה פסקה קצרה. תודה רבה.

נועם
Guest

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

מ
Guest

אני מפתח אתרים לא יודע איך אנדרואיד עובד.

לפי מה שאני רואה פה משמע שudp או websockets לא עובד באנדרואיד.

האם זה באמת לא עובד או שיש סיבה אחרת?

אלעד
Guest

אני באמת לא מבין – למה שנשתמש (מפתחים) בשירות הPUSH של push-apps?
הרי יש את parse.com שמציעה גם שירות PUSH נהדר, מחירים נוחים יותר (או ליתר דיוק: חינמיים יותר) ובנוסף מציעה שירותים נוספים.

אור
Guest

parse.com אכן שירות מעולה אבל לא חינמי. אחרי מיליון ההודעות הראשונות זה עולה 0.05$ ל1,000 הודעות נוספות. כלומר 2 מיליון הודעות חודשיות יעלו 50 דולר, וכל מיליון הודעות נוספות עוד 50 דולר. בעוד שבpushapps ניתן ב20$ לחודש לשלוח הודעות ללא הגבלה.

נועם
Guest

בתור מפתח שפיתח PUSH עבור ANDROID ואפל אני מאוד מעריך את מה שכתבת.
יש כמה נקודות שעוד אפשר להתייחס אליהן, ה PUSH עצמו מגיע לטלפון דרך חיבור קבוע בין הטלפון לבין ספק ה PUSH שזה אפל או גוגל בהתאמה לטלפון. אם יש אינטרנט איטי, בעיית קליטה סלולרית (במקום שאין ויפי) או שהמעבד של הטלפון עסוק בדברים אחרים אז הדבר יגרום לעיכוב נוסף בקבלת ה PUSH. למפתח בודד אין דרך להתגבר על זה ולעשות את זה in-house רק יגביר את הבעיה הזאת אבל כדי לבדוק באמת המשתמש קצה צריך לבדוק כל אפליקציה בנפרד ולא טלפון עם המון אפליקציות.

wpDiscuz

תגיות לכתבה: