التطبيقات والتتبع متعدد المنصات
تتيح لك التطبيقات تتبع المستخدمين عبر منصات مختلفة، الويب وiOS وAndroid، باستخدام مفاتيح SDK منفصلة مع إدارة كل شيء من مكان واحد.
ما هي التطبيقات؟
تمثل التطبيقات منصات أو خصائص مختلفة تتتبع فيها المستخدمين:
- Web App: موقعك أو تطبيق الويب.
- iOS App: تطبيقك للجوال على iOS.
- Android App: تطبيقك للجوال على Android.
يحصل كل تطبيق على مفتاح SDK فريد للتتبع، بينما تتدفق كل البيانات إلى مؤسسة Joryio الخاصة بك.
لماذا تستخدم تطبيقات متعددة؟
التتبع عبر المنصات
اعرف المستخدمين الذين يتفاعلون مع تطبيق الويب مقابل تطبيقات الجوال:
رحلة المستخدم:
1. يزور الموقع (Web App)
2. يسجل في الويب
3. ينزل تطبيق iOS
4. يشتري عبر iOS
التقسيم حسب المنصة
استهدف المستخدمين بناءً على استخدام المنصة:
الهدف: مستخدمو تطبيق iOS الذين لم يستخدموا تطبيق Android
الحملة: "جرّب تطبيق Android"
تحليل أداء المنصات
قارن المقاييس عبر المنصات:
Web App:
- 10,000 مستخدم نشط
- 50,000 حدث/يوم
- أكثر ميزة استخدامًا: Export
iOS App:
- 5,000 مستخدم نشط
- 25,000 حدث/يوم
- أكثر ميزة استخدامًا: Camera
إنشاء تطبيق
الخطوة 1: الانتقال إلى Apps
- انتقل إلى Settings ← Apps.
- انقر Create App.
الخطوة 2: ضبط التطبيق
- Name: اسم وصفي، مثل "My Website" أو "iOS App".
- Platform: اختر web أو iOS أو Android.
الخطوة 3: الحصول على مفتاح SDK
بعد الإنشاء، ستتلقى مفتاح SDK فريدًا:
jry_sdk_web_abc123... (Web)
jry_sdk_ios_def456... (iOS)
jry_sdk_android_ghi789... (Android)
تتضمن مفاتيح SDK المنصة في المفتاح نفسه ليسهل التعرف إليها.
استخدام مفاتيح SDK
- Web (JS)
- iOS (Swift)
- Android (Kotlin)
import JoryioSDK from '@joryio/web-sdk';
const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_abc123...' // Your web app SDK key
});
import Joryio
Joryio.shared.initialize(
sdkKey: "jry_sdk_ios_def456...", // Your iOS app SDK key
apiHost: "api-eu1.joryio.com"
)
import io.joryio.sdk.Joryio
Joryio.initialize(
context = this,
sdkKey = "jry_sdk_android_ghi789...", // Your Android app SDK key
apiHost = "https://api-eu1.joryio.com"
)
بيانات التطبيق الوصفية التلقائية
تشمل كل الأحداث التي يتتبعها SDK بيانات تعريف التطبيق تلقائيًا:
{
"eventName": "Page Viewed",
"properties": {
"page": "/pricing",
// Automatically added:
"$app_id": "app_123",
"$app_name": "My Website",
"$platform": "web",
"$session_id": "session_456"
}
}
يمكّن ذلك تقسيمًا قويًا حسب التطبيق/المنصة.
تحليلات التطبيق
اعرض تحليلات كل تطبيق:
- انتقل إلى Settings ← Apps.
- انقر View Analytics للتطبيق.
المقاييس المتاحة
الإحصاءات العامة:
- إجمالي الأحداث المتتبعة.
- المستخدمون النشطون خلال آخر 30 يومًا.
- الطابع الزمني لآخر حدث.
الأحداث بمرور الوقت:
- حجم الأحداث اليومي.
- تحليل الاتجاه.
أهم الأحداث:
- الأحداث الأكثر تتبعًا.
- أعداد الأحداث ونسبها المئوية.
التقسيم حسب استخدام التطبيق
أنشئ شرائح باستخدام فلتر App / site usage، بعاملي used app وdid not use app. وبما أن التطبيق يحدد منصته ضمنًا، استهدف المنصات باختيار التطبيق أو التطبيقات المطابقة.
المثال 1: مستخدمو الجوال فقط
Used app "iOS App"
AND
Did NOT use app "My Website"
المثال 2: مستخدمون متعددوا المنصات
Used app "My Website"
AND
Used app "iOS App"
المثال 3: سلوك خاص بالتطبيق
Used app "iOS App"
AND
Performed "Order Completed" within last 30 days
استخدم ذلك لتشجيع تبني تطبيق الجوال والرسائل الخاصة بالمنصة.
إدارة التطبيقات
عرض كل التطبيقات
يعرض Settings ← Apps كل تطبيقاتك مع:
- اسم التطبيق والمنصة.
- مفتاح SDK، مع زر نسخ.
- تاريخ الإنشاء.
- الإجراءات السريعة.
تحرير تطبيق
- انقر اسم التطبيق أو أيقونة التحرير.
- حدّث الاسم.
- انقر Save.
لا يمكن تغيير نوع المنصة بعد الإنشاء. أنشئ تطبيقًا جديدًا عند الحاجة.
إعادة إنشاء مفتاح SDK
إذا تعرّض مفتاح SDK للخطر:
- انقر Regenerate Key للتطبيق.
- أكد الإجراء.
- حدّث تطبيقك بالمفتاح الجديد.
تؤدي إعادة إنشاء مفتاح SDK إلى إبطال المفتاح القديم فورًا. حدّث تطبيقك قبل إعادة الإنشاء.
حذف تطبيق
- انقر Delete للتطبيق.
- أكد الحذف.
حذف تطبيق:
- يبطل مفتاح SDK، فيتوقف التتبع.
- تبقى الأحداث التي استُقبلت سابقًا في مخزن التحليلات.
- لا يمكن التراجع عنه.
أفضل الممارسات
1. تطبيق واحد لكل منصة
أنشئ تطبيقات منفصلة لكل منصة:
جيد
- "My Website" (web)
- "iOS App" (iOS)
- "Android App" (Android)
سيئ
- "All Platforms" (web): خلط للمنصات.
2. أسماء وصفية
استخدم أسماء واضحة يسهل التعرف إليها:
جيد: "Production Web App"، "iOS - App Store"
سيئ: "App 1"، "Test"
3. أمّن مفاتيح SDK
- لا ترفع مفاتيح SDK إلى مستودعات عامة أبدًا.
- استخدم متغيرات البيئة.
- أعد إنشاء المفتاح إذا انكشف.
// Good: Use environment variables
const joryio = new JoryioSDK({
sdkKey: process.env.JORYIO_SDK_KEY
});
// Bad: Hardcoded key
const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_abc123...'
});
حالات استخدام شائعة
1. حملات خاصة بالمنصة
أرسل رسائل مستهدفة حسب المنصة:
الشريحة: مستخدمو iOS الذين لم يحدثوا التطبيق خلال 30 يومًا
الحملة: "ميزات جديدة في أحدث تحديث لتطبيق iOS"
2. تحليلات متعددة المنصات
قارن تفاعل المستخدمين عبر المنصات:
الاستعلام: كم مستخدمًا نشطًا على الويب والجوال معًا؟
الشريحة: Has used platform "web" AND has used platform "ios"
3. ترحيل المنصة
شجّع المستخدمين على تجربة منصات أخرى:
الشريحة: مستخدمو الويب النشطون الذين لم ينزلوا تطبيق الجوال
الحملة: "خذنا معك أينما ذهبت - نزّل تطبيق الجوال"
4. ميزات خاصة بالمنصة
تتبع استخدام الميزة حسب المنصة:
Event: Feature Used
Properties: { feature: "camera", platform: "ios" }
التحليل: ميزة الكاميرا متاحة على الجوال فقط
رحلة مستخدم متعددة التطبيقات
تتبع المستخدمين خلال رحلتهم كاملة:
الخط الزمني لـ user_123:
اليوم 1 (Web App):
- Signup Completed
- Profile Created
- Viewed Pricing
اليوم 3 (iOS App):
- App Installed
- Login
- First Purchase
اليوم 7 (Web App):
- Login
- Settings Updated
اليوم 14 (Android App):
- App Installed
- Login
- Feature Used
يُتتبع كل ذلك تلقائيًا ببيانات تعريف التطبيق.
الأمان والتحكم بالوصول
صلاحيات مفتاح SDK
يمكن لمفاتيح SDK، جهة العميل، فقط:
- تتبع الأحداث.
- تعريف المستخدمين.
- إرسال سمات المستخدم.
- لا يمكنها الوصول إلى بيانات مؤسسة أخرى.
- لا يمكنها إرسال الحملات.
- لا يمكنها حذف المستخدمين.
صلاحيات مفتاح API
تُدار مفاتيح API، جهة الخادم، من Settings ← API Keys وتحمل الصلاحيات التي تمنحها لها، وقد تشمل:
- جميع عمليات SDK.
- إدارة الحملات.
- استعلامات المستخدمين.
- الوصول إلى التحليلات.
يجب استخدام مفاتيح API على الخادم فقط. استخدم مفاتيح SDK لتتبع جهة العميل.
استكشاف الأخطاء وإصلاحها
الأحداث لا تظهر
تحقق من صحة مفتاح SDK:
// Enable debug mode
const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_...',
enableDebug: true // See logs in console
});
تحقق من أن التطبيق نشط:
- انتقل إلى Settings ← Apps.
- افحص حالة التطبيق.
- أكد تطابق مفتاح SDK.
التحليلات لا تتحدث
تتحدث التحليلات في الوقت الفعلي، لكن قد تتأخر بضع ثوانٍ:
- افحص طابع "Last Event" الزمني.
- تأكد من تتبع الأحداث.
- جرّب تحديث الصفحة.
مطابقة المستخدمين عبر المنصات
تُطابق المستخدمين بواسطة:
- User ID، إن عُرِّف المستخدم.
- Anonymous ID، قبل التعريف.
تأكد من تعريف المستخدمين باتساق عبر المنصات:
// Web
joryio.identify('user_123');
joryio.setAttributes({
email: 'user@example.com',
name: 'John Doe'
});
// iOS (same user ID)
Joryio.shared.identify("user_123")
Joryio.shared.setAttributes([
"email": "user@example.com",
"name": "John Doe"
])