Event Tracking موبائل ایپ کے اندر صارف کے اعمال کے بارے میں ایونٹس کو جمع کرنا اور ان کا تجزیہ کرنا ہے، بٹن دبانے سے لے کر خریداری مکمل کرنے تک۔ معیاری event tracking پروڈکٹ اینالیٹکس، A/B ٹیسٹنگ اور پرسنلائزیشن کی بنیاد ہے۔Amplitude (2024) کے مطابق، منظم Event Tracking والی ٹیمیں ڈیٹا پر مبنی نقطہ نظر کی بدولت پروڈکٹ کے فیصلے 3 گنا تیزی سے لیتی ہیں۔ ایونٹس کے بغیر ایپ کا تجزیہ اندھا ہے۔
اہم نکات
Event Tracking ایپ میں صارفین کے الگ الگ اعمال کو جمع کرنے، ذخیرہ کرنے اور تجزیہ کرنے کا عمل ہے۔ ہر ایونٹ ایک نام (event_name) اور پیرامیٹرز کے ایک سیٹ (event_params) پر مشتمل ہوتا ہے۔ مثال کے طور پر، purchase ایونٹ میں price, currency, product_id, quantity پیرامیٹرز ہوتے ہیں۔
Screen View کے برعکس جو اسکرین کھولنے کے حقیقت کو ریکارڈ کرتا ہے، Event Tracking یہ بیان کرتا ہے کہ صارف اس اسکرین پر بالکل کیا کر رہا ہے: اس نے "خریدیں" بٹن دبایا، کارٹ کھولا، پرومو کوڈ لاگو کیا۔ ایونٹس کے بغیر صارف کے اعمال کے محرک اور سیاق و سباق کو سمجھنا ناممکن ہے۔
ہر Analytics Event لازمی اور اختیاری فیلڈز پر مشتمل ہوتا ہے۔ لازمی: event_name, event_timestamp, user_id (یا device_id)۔ اختیاری: پیرامیٹرز، سیاق و سباق کی وضاحت۔
| فیلڈ | لازمی | مثال |
|---|---|---|
| event_name | ہاں | "purchase_completed" |
| event_timestamp | ہاں | 1719876543000 |
| user_id | ہاں | "user_abc123" |
| session_id | نہیں | "session_456def" |
| revenue | نہیں | 9.99 |
| currency | نہیں | "USD" |
revenue پیرامیٹر خاص طور پر اہم ہے — یہ ROAS اور LTV کے خودکار حساب کتاب کے لیے MMP پلیٹ فارمز کو بھیجا جاتا ہے۔
ایونٹس کو ماخذ اور مقصد کے لحاظ سے درجہ بندی کیا جاتا ہے۔ یہ تقسیم ڈیٹا کے ڈھانچے کو منظم کرنے اور مختلف ٹیموں کے لیے رسائی کے حقوق متعین کرنے میں مدد دیتی ہے۔
تجزیاتی پلیٹ فارمز کے SDK خود بخود بنیادی ایونٹس جمع کرتے ہیں: app_install, app_remove, session_start, screen_view۔ Firebase Analytics کوڈ کی ایک لائن کے بغیر تقریباً 20 خودکار ایونٹس پیدا کرتا ہے۔ یہ ایونٹس بنیادی میٹرکس کو کور کرتے ہیں لیکن کاروباری منطق کی سمجھ فراہم نہیں کرتے۔
حسب ضرورت ایونٹس وہ ہیں جو Event Tracking کو قیمتی بناتے ہیں۔ یہ کاروباری اعمال کو بیان کرتے ہیں: add_to_cart, start_subscription, level_complete, share_content, search_performed۔ حسب ضرورت ایونٹس کو ایپلیکیشن کوڈ سے واضح طور پر بھیجنا ضروری ہے۔
// Firebase کو حسب ضرورت ایونٹ بھیجنا
val bundle = Bundle().apply {
putString(AnalyticsParam.ITEM_ID, "prod_789")
putString(AnalyticsParam.ITEM_NAME, "Premium Subscription")
putString(AnalyticsParam.CURRENCY, "USD")
putDouble(AnalyticsParam.PRICE, 29.99)
putString(AnalyticsParam.SOURCE, "onboarding_screen")
}
FirebaseAnalytics.getInstance(this)
.logEvent("subscribe_premium", bundle)
مثال میں، subscribe_premium ایونٹ میں چار سیاق و سباق کے پیرامیٹرز ہیں۔ source پیرامیٹر یہ سمجھنے میں مدد دیتا ہے کہ صارف نے کس اسکرین سے سبسکرپشن شروع کی — آن بورڈنگ، سیٹنگز یا پے وال۔
ایونٹس کے علاوہ، Event Tracking میں User Properties — صارف سے منسلک خصوصیات (سبسکرپشن لیول، ملک، ایپ ورژن) شامل ہیں۔ User Property ایک بار بھیجی جاتی ہے اور سیشن کے بعد کے تمام ایونٹس پر لاگو ہوتی ہے۔ یہ ہر ایونٹ میں پیرامیٹرز شامل کیے بغیر تجزیات کو سیگمنٹ کرنے کی اجازت دیتا ہے۔
Super Properties (Amplitude) یا Global Properties (Mixpanel) وہ خصوصیات ہیں جو صارف کے بجائے سیشن سے منسلک ہوتی ہیں۔ A/B ٹیسٹوں کے لیے استعمال ہوتی ہیں: variant_id کو سیشن کے تمام ایونٹس میں Super Property کے طور پر شامل کیا جاتا ہے، جس سے تجزیہ کار دیکھ سکتا ہے کہ صارف کس گروپ میں ہے۔
ریونیو ایونٹس لین دین ریکارڈ کرنے کے لیے ایک علیحدہ کلاس ہیں۔ ان میں رقم، کرنسی اور خریداری کی قسم (سبسکرپشن، ایک بار خریداری، بحالی) شامل ہوتی ہے۔ MMP پلیٹ فارمز (AppsFlyer, Adjust) ROAS کے حساب کتاب کے لیے ریونیو ایونٹس کی ضرورت ہوتی ہے۔
Branch (2024) کے اعداد و شمار کے مطابق، جو ایپس MMP کو ریونیو ایونٹس درست طریقے سے بھیجتی ہیں، وہ 25% زیادہ درست انتساب ڈیٹا حاصل کرتی ہیں اور CPI کے بجائے LTV کی بنیاد پر مہمات کو بہتر بنا سکتی ہیں۔
Event Tracking کی ترتیب تین مراحل میں ہوتی ہے: ایونٹ اسکیما کی منصوبہ بندی، SDK کا انٹیگریشن، ڈیٹا کی توثیق۔
ایک Event Taxonomy دستاویز بنائیں — ہر ایونٹ کو بیان کرنے والی: نام، پیرامیٹرز، بھیجنے کا محرک، مالک۔ ای کامرس کی مثال: order_completed → پیرامیٹرز: order_id, total_price, items_count, payment_method, shipping_city۔
اینالیٹکس SDK کو پروجیکٹ میں شامل کریں۔ Firebase Analytics, Amplitude, Mixpanel — ہر SDK کو Application.onCreate() میں ابتدا کی ضرورت ہوتی ہے۔ Flutter کی مثال:
import 'package:firebase_analytics/firebase_analytics.dart';
class AnalyticsService {
final _analytics = FirebaseAnalytics.instance();
Future<void> logPurchase({
required String productId,
required double price,
required String currency,
}) async {
await _analytics.logEvent(
name: 'purchase_completed',
parameters: {
'product_id': productId,
'price': price,
'currency': currency,
'timestamp': DateTime.now().millisecondsSinceEpoch,
},
);
}
}
AnalyticsService کلاس تمام ایونٹس کی بھیجائی کو مرکزی بناتی ہے۔ ہر طریقہ کاروباری عمل سے مطابقت رکھتا ہے۔ یہ تلاش کو آسان بناتا ہے — اگر کوئی ایونٹ نہیں آتا ہے تو کوڈ میں طریقہ کار کے نام سے تلاش کریں۔ پروجیکٹ کے بڑھنے پر طریقوں کی تعداد 50–100 تک پہنچ سکتی ہے، لیکن خصوصیات کے لحاظ سے گروپ بندی کی بدولت ساخت پڑھنے کے قابل رہتی ہے۔
Firebase DebugView ڈیولپر ڈیوائس پر ایونٹس کو حقیقی وقت میں دیکھنے کی اجازت دیتا ہے۔ موڈ فعال کریں: adb shell setprop debug.firebase.analytics.app your.package۔ تمام ایونٹس 5 سیکنڈ سے کم تاخیر کے ساتھ Firebase کنسول میں ظاہر ہوتے ہیں۔
DebugView کو فعال کرنے کے بعد، ایپ کھولیں اور ایک ٹیسٹ منظر نامہ (رجسٹریشن، خریداری، کیٹلاگ براؤزنگ) چلائیں۔ کنسول میں چیک کریں: کیا تمام ایونٹس بھیجے گئے، کیا صحیح پیرامیٹرز پہنچائے گئے، کیا کوئی ڈپلیکیٹ نہیں ہے۔ Amplitude ایک جیسا ٹول پیش کرتا ہے — iOS اور Android کے لیے Amplitude Debugger۔
CI/CD کے ذریعے خودکار توثیق اگلا معیار کی سطح ہے۔ پائپ لائن میں ایک اسکرپٹ شامل کریں جو چیک کرے کہ اسکیما کا ہر ایونٹ ٹیسٹ رن کے دوران کم از کم ایک بار بھیجا گیا۔ یہ غائب ایونٹس والے ورژن کی ریلیز کو روکتا ہے اور QA انجینئرز کا وقت بچاتا ہے۔
ایونٹس کا نام دینا Event Tracking کا سب سے کم سمجھا جانے والا پہلو ہے۔ غلط نام تجزیات کو بےکار بنا دیتا ہے جب پروجیکٹ میں 50 سے زیادہ ایونٹس ہوں۔
object_action پیٹرن (چھوٹے حروف، snake_case) استعمال کریں: product_added, cart_opened, payment_failed, subscription_cancelled۔ شے ہستی ہے، عمل ماضی کا فعل ہے۔ یہ ایک جملے کی طرح پڑھا جاتا ہے: "مصنوعہ شامل کیا گیا"، "کارٹ کھولا گیا"۔
خالی جگہ ("Add to Cart"), CamelCase ("AddToCart"), نقطہ ("add.to.cart"), ڈیش ("add-to-cart") استعمال نہ کریں۔ زیادہ تر SDK snake_case تجویز کرتے ہیں۔ UI عنصر کے نام ("btn_submit_clicked") استعمال نہ کریں — ایونٹ کاروباری ہونا چاہیے، تکنیکی نہیں۔
سابقہ کے طور پر فیچر یا اسکرین کا نام شامل کریں: onboarding_step_completed, checkout_payment_selected۔ یہ رپورٹس میں ایونٹس کو فعالیت کے لحاظ سے فلٹر کرنے کی اجازت دیتا ہے۔
پیرامیٹرز تین اقسام میں تقسیم ہوتے ہیں: string (قدر), number (مجموعی کے لیے عدد), boolean (پرچم)۔ String پیرامیٹرز میں زمرہ جاتی ڈیٹا ہوتا ہے: ملک، ٹریفک ماخذ، مصنوعہ کا نام۔ Number پیرامیٹرز میٹرکس کے لیے استعمال ہوتے ہیں: قیمت، مقدار، مدت۔ Boolean پیرامیٹرز حالت ظاہر کرتے ہیں: is_trial, is_promo_applied۔
ایک پیرامیٹر میں آبجیکٹ یا ارے بھیجنے سے گریز کریں — تجزیاتی پلیٹ فارم انہیں پارس نہیں کر سکتے۔ ایک فیلڈ میں JSON سٹرنگ کے بجائے کئی فلیٹ پیرامیٹرز بھیجیں۔ مثال کے طور پر، items_count_total کے بجائے items_count اور total_price علیحدہ علیحدہ بھیجیں۔
Event Tracking پلیٹ فارم کا انتخاب پروجیکٹ کے پیمانے اور ٹیم پر منحصر ہے۔ مختلف سطحوں کے تین آپشنز دیکھتے ہیں۔
Firebase اسٹارٹ اپس کے لیے معیاری انتخاب ہے۔ مفت حد 500 مختلف event_name ہے، پیرامیٹرز کی تعداد لامحدود۔ حسب ضرورت تجزیات کے لیے BigQuery کے ساتھ انٹیگریشن۔ نقصانات: محدود سیگمنٹیشن، سیشن میں ایونٹس کا خودکار رابطہ نہیں۔
Amplitude ایک پروڈکٹ اینالیٹکس پلیٹ فارم ہے۔ Behavioural Cohorts, Funnel Analysis, Pathfinder کو سپورٹ کرتا ہے۔ حقیقی ایونٹس کے امتزاج سے ورچوئل ایونٹس بنانے کی اجازت دیتا ہے۔ Segment کے ذریعے 50+ ٹولز کے ساتھ انٹیگریٹ ہوتا ہے۔
Segment ایونٹ مینجمنٹ کے لیے middleware ہے۔ آپ ایونٹس Segment کو بھیجتے ہیں، Segment انہیں 300+ ٹولز میں تقسیم کرتا ہے۔ انٹرپرائز ماحول میں مفید جہاں Firebase, Amplitude, Mixpanel, Braze اور Salesforce ایک ساتھ استعمال ہوتے ہیں۔
PostHog اپنے Event Tracking کے ساتھ ایک اوپن سورس پروڈکٹ اینالیٹکس پلیٹ فارم ہے۔ خودکار ایونٹ کیپچر، سیشن ریکارڈنگ اور فیچر فلیگ کو سپورٹ کرتا ہے۔ اپنے سرور پر تعینات کیا جاتا ہے، جو GDPR یا حساس ڈیٹا والے پروجیکٹس کے لیے اہم ہے۔ ETL پائپ لائنز کے لیے Python مطابقت رکھنے والا API فراہم کرتا ہے۔
Flutter پروجیکٹس کے لیے flutterfire_analytics + amplitude_flutter پلگ ان کے ذریعے Amplitude تجویز کیا جاتا ہے۔ React Native کے لیے — react-native-firebase + mixpanel-react-native۔
اکثر پوچھے گئے سوالات
بہترین حد فی ایپ 50–150 ایونٹس ہے۔ 50 سے کم — تجزیہ کے لیے ڈیٹا ناکافی، 150 سے زیادہ — معیار گر جاتا ہے (تجزیہ کار سب کو ٹریک نہیں کر سکتے)۔ MVP کے لیے 20–30 اہم ایونٹس کافی ہیں۔
اوسط موبائل SDK ایونٹس کو بفر کرتا ہے اور ہر 5–30 سیکنڈ میں بیچ بھیجتا ہے۔ محفوظ حد فی ڈیوائس فی منٹ 100 ایونٹس ہے۔ اس سے زیادہ — کمزور کنکشن پر ڈیٹا ضائع ہونے کا خطرہ۔ اضافہ (مثال: لیول لوڈ کرنا) اہم نہیں ہے۔
ہاں، جدید SDK نیٹ ورک نہ ہونے پر ایونٹس کو مقامی اسٹوریج میں محفوظ کرتے ہیں۔ کنکشن بحال ہونے پر، وہ صحیح ٹائم اسٹیمپ کے ساتھ بھیجے جاتے ہیں۔ Firebase 7 دن تک، Amplitude 30 دن تک آف لائن ایونٹس رکھتا ہے۔
نیا event_name کے ساتھ نیا ایونٹ بنایا جاتا ہے، پرانا تاریخی ڈیٹا کے لیے رہتا ہے۔ ڈیٹا کو جوڑنے کے لیے BI پرت (SQL CASE یا ڈیش بورڈ) میں میپنگ بنائیں۔ موجودہ ایونٹ کا نام کبھی تبدیل نہ کریں — تاریخ خراب ہو جائے گی۔
ہاں، Event Tracking پرسنلائزیشن کی بنیاد ہے۔ ایونٹس ریئل ٹائم میں فلٹر کیے جاتے ہیں: اگر کسی صارف نے product_viewed 3 بار بھیجا لیکن خریدا نہیں، تو ڈسکاؤنٹ پاپ اپ دکھائیں۔ Amplitude اور Braze ایونٹ پر مبنی ٹرگرز کو سپورٹ کرتے ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں