מעקב רב-פלטפורמי
רוב המוצרים חיים ביותר מפלטפורמה אחת - אתר, אפליקציית iOS, אפליקציית Android. ב-Joryio מדגמנים זאת עם אפליקציה אחת לכל פלטפורמה, כשכולן מזינות את אותה סביבת עבודה: לכל פלטפורמה מפתח SDK משלה ופרטי גישה לפוש משלה, בעוד שכל אירוע נוחת על פרופיל משתמש משותף אחד.
אפליקציה אחת לכל פלטפורמה
צרו אפליקציה נפרדת (תחת Settings → Apps) לכל פלטפורמה שאתם משיקים בה. אפשר ליצור אפליקציות Web, iOS ו-Android; אפליקציות של חנויות מסחר אלקטרוני (Shopify, WooCommerce, Magento) נוצרות אוטומטית כשמחברים את האינטגרציות האלה.
לכל אפליקציה מפתח SDK משלה בפורמט jry_sdk_<platform>_<random> - הפלטפורמה מוטבעת במפתח, כך שתמיד אפשר לדעת במבט לאיזו גרסה המפתח שייך:
jry_sdk_web_4f2a9c... אתר
jry_sdk_ios_b81d3e... אפליקציית iOS
jry_sdk_android_77c0aa... אפליקציית Android
למפתח שלושה תפקידים: הוא מאמת בקשות SDK, מנתב אירועים לסביבת העבודה הנכונה ומטביע על כל אירוע את זהות האפליקציה ($app_id, $app_name, $platform) כדי שתוכלו לפלח ולנתח לפי פלטפורמה.
אפליקציות React Native
אין פלטפורמת "React Native" נפרדת. ה-SDK של React Native מגשר אל ה-SDKs הנייטיביים של iOS ו-Android, ולכן מוצר React Native משתמש בשתי אפליקציות - אחת iOS ואחת Android - ומעביר את המפתח המתאים בזמן ריצה:
import { Platform } from 'react-native';
import Joryio from '@joryio/react-native-sdk';
await Joryio.initialize(
Platform.OS === 'ios'
? 'jry_sdk_ios_YOUR_IOS_KEY'
: 'jry_sdk_android_YOUR_ANDROID_KEY',
'https://api-eu1.joryio.com',
);
כך פרטי הגישה לפוש נשארים נכונים לכל גרסה בחנות (APNS לאפליקציית ה-iOS, FCM לאפליקציית ה-Android) והאנליטיקה לפי פלטפורמה נשארת מדויקת.
פרופיל משתמש אחד בכל הפלטפורמות
אפליקציות מפרידות מאיפה מגיעים האירועים; הן לא מפרידות למי הם שייכים. כל האפליקציות בסביבת העבודה חולקות את אותו בסיס משתמשים, והפרופילים מתאחדים לפי מזהה המשתמש:
- קראו ל-
identifyעם אותו מזהה משתמש קבוע בכל פלטפורמה (מזהה המשתמש ממסד הנתונים שלכם הוא הבחירה הרגילה - לעולם לא אימייל שיכול להשתנות). - לפני התחברות, כל מכשיר עוקב תחת מזהה אנונימי משלו. כשהמשתמש מזוהה, ההיסטוריה האנונימית של אותו מכשיר ממוזגת לתוך הפרופיל המזוהה - כך שייחוס ההרשמה מה-web ואירועי ההפעלה הראשונה מהמובייל מגיעים כולם לאותו מקום.
- זהו את המשתמש מוקדם ככל האפשר בכל סשן (בהתחברות, ובעליית האפליקציה כשסשן משוחזר), כדי שכמה שפחות אירועים יירשמו אנונימית.
- Web (JS)
- iOS (Swift)
- Android (Kotlin)
const joryio = new JoryioSDK({ sdkKey: 'jry_sdk_web_...' });
joryio.identify('user_123');
// אותו מזהה כמו ב-web
Joryio.shared.identify("user_123")
// אותו מזהה כמו ב-web
Joryio.identify("user_123")
לאחר האיחוד, הפרופיל מפעיל התנהגות חוצת-פלטפורמות בכל מקום:
- סגמנטים יכולים לחצות פלטפורמות ("השתמש ב-iOS אבל אף פעם לא ב-web") כי כל אירוע נושא
$platformו-$app_id. - מסעות מתייחסים למשתמש כאדם אחד: אירוע
Order Completedמאפליקציית ה-iOS יכול לספק את היעד של מסע שהמשתמש נכנס אליו מהאתר. - מאפיינים שמנוהלים בצד השרת כמו
sessionCountסופרים פעילות מכל המכשירים והפלטפורמות.
מאפיינים שנקבעים מכל פלטפורמה (setAttributes) נכתבים לאותו פרופיל - הכתיבה האחרונה מנצחת, לכן שמרו על שמות וסוגי מאפיינים עקביים בין בסיסי הקוד.
פרטי push לכל פלטפורמה
פרטי ה-push חיים על האפליקציה, וזו הסיבה שאפליקציה אחת לכל פלטפורמה חשובה:
- אפליקציית iOS - העלו מפתח אימות APNS (.p8, עם Team ID ו-Key ID) או תעודה (.p12) בהגדרות ה-push של האפליקציה.
- אפליקציית Android - העלו את קובץ ה-service account של Firebase (FCM).
- אפליקציית Web - הפעילו web push על האפליקציה; Joryio מייצרת צמד מפתחות VAPID וחושפת את המפתח הציבורי ל-Web SDK.
הגדירו אותם מ-Settings → Apps דרך פעולת הגדרות הפוש בשורת כל אפליקציה. הסודות מוצפנים כשהם מאוחסנים ומוצגים באופן מוסתר לאחר השמירה.
איזו אפליקציה מקבלת את הפוש?
פוש מכוון לאפליקציה אחת - פרטי ההתחברות של אפליקציית iOS או Android יחידה קובעים אילו מכשירים יקבלו את ההתראה.
- אפליקציה אחת, או אחת לכל פלטפורמה (לדוגמה iOS אחת + Android אחת): הבחירה חד-משמעית, ולכן Joryio בוחרת את האפליקציה הנכונה אוטומטית. לא יוצג בורר אפליקציה.
- שתי אפליקציות או יותר באותה פלטפורמה (לדוגמה שתי גרסאות iOS): הבחירה אינה חד-משמעית, ולכן מופיע בורר Target app - בעורך הקמפיין ובצומת ה-Push במסע - כדי לבחור מאיזו אפליקציה הפוש יוצא. השאירו על Automatic כדי להשתמש באפליקציה הזמינה הראשונה.