דלג לתוכן הראשי

מעקב רב-פלטפורמי

רוב המוצרים חיים ביותר מפלטפורמה אחת - אתר, אפליקציית 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 ואירועי ההפעלה הראשונה מהמובייל מגיעים כולם לאותו מקום.
  • זהו את המשתמש מוקדם ככל האפשר בכל סשן (בהתחברות, ובעליית האפליקציה כשסשן משוחזר), כדי שכמה שפחות אירועים יירשמו אנונימית.
const joryio = new JoryioSDK({ sdkKey: 'jry_sdk_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 כדי להשתמש באפליקציה הזמינה הראשונה.

קישורים רלוונטיים