سرویس Analytics در Firebase
در سری مقالات آموزش Firebase, به سرویس Analytics می پردازیم.
سرویس Analytics در Firebase یک سرویس برای آمارگیری از مصرف کاربران از برنامه میباشد. ممکن است این تعریف یک ضعف امنیتی را در ذهن خواننده تداعی کند. اما این آمارگیری به معنای نگهداری لحظه به لحظه از فعالیت های کاربران در حال استفاده از این سرویس نمیباشد. در واقع شما با استفاده از این سرویس میتوانید ببینید کدام قسمت های برنامه مورد استقبال قرار گرفته است و کدام قسمت ها ممکن است بدلیل ضعف هایی کمتر استفاده شده باشد.
برای مثال یک برنامه RSS Reader مینویسید. با استفاده از این سرویس میتوانید مشخص کنید کدام یک از موضوعات مورد استقابل بیشتری واقع شده است. استفاده دیگر این سرویس میتواند در اعلام وقوع Exception های حساس در برنامه باشد. اگر آمار این Execption ها در برنامه بالا است میتوان در نسخه های بعد آنرا بهبود بخشید.
همانطور که مشخص است این سرویس یک بازخورد دقیق از فعالیت برنامه را برای ما مهیا میسازد و بر اساس این بازخورد ها میتوان تصمیم های مهم و اساسی در راستای افزایش رضایت کاربران اتخاذ کرد. برای مشاهده امکانات آن میتوانید به قسمت Analytics در console.firebase.google.com مراجعه کنید.
در سرویس Analytics اطلاعات پیرامون مصرف و رفتار برنامه جمع آوری میشود. در واقع این اطلاعات به دو دسته تقسیم میشوند :
- Events : رفتاری که در برنامه رخ میدهد. مانند فعالیت های کاربر, فعالیت های سیستم و یا خطا ها
- User properties : اطلاعاتی است که برای دسته بندی بر اساس کاربران استفاده میشود. مانند زبانی که استفاده میکنند و یا در چه موقعیت مکانی قرار دارند.
برای شروع در اندروید ابتدا dependency مربوط به آن را به gradle اضافه میکنیم. البته به صورت پیش فرض در core قرار دارد. در صورتی که با سری آموزش های firebase همراه بوده اید این dependency به پروژه شما اضافه شده است.
compile 'com.google.firebase:firebase-core:10.0.1'
سپس باید یک instance از روی آن ایجاد کنیم :
private FirebaseAnalytics analytics; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); analytics = FirebaseAnalytics.getInstance(this); }
سپس نیاز است تا این Permission ها را به AndroidManifest.xml اضافه کنید :
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
ممکن است برای شما سوال پیش آید که چرا به WAKE_LOCK نیز نیاز دارد. در سرویس google play یک سرویس به عنوان google play service همیشه در حال اجرا است. برای سرویس های غیر google play این درخواست به این معنا میباشد که از بخواب رفتن CPU جلوگیری میکند به این ترتیب میتواند بهتر عمل گزارش دهی را انجام دهد.
برای ارسال یک Event به این روش عمل میکنیم :
@OnClick(R.id.google) public void googleSignIn() { Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, userID); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "google-sign-in"); analytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); }
به این ترتیب تعداد افرادی را که از طریق google احراز هویت کرده اند را در اختیار داریم.
اگر بخواهیم خطا هارا کنترل کنیم :
public void addToList(ListItem listItem) { try { /// add to server } catch (Exception e) { Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, userID); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "add-exception"); analytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); } }
اگر موقع افزودن یک آیتم به لیست خطایی رخ دهد گزارش آن ثبت میشود. این مثال ها برای ثبت اطلاعات از نوع Event ها بوده است. اما اگر بخواهیم اطلاعاتی از نوع User Properties را ثبت کنیم :
public void setLanguage(String lang) { analytics.setUserProperty("language", lang); }
در این مقاله سعی بر این شد تا مفاهیم Analytics را پوشش دهیم. همانطور که مشاهده کردید کد نویسی آن پیچیده نیست اما نکته اینجاست که درچه نقاطی از برنامه استفاده کنید تا با استفاده از این سرویس بتوانید در بروز رسانی برنامه رضایت کاربران را بیشتر جلب کنید و کاربران و مصرف کنندگان برنامه خود را افزایش دهید.
سری مقالات آموزش Firebase همچنان ادامه دارد.
با ما همراه باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.