آموزش پیاده سازی سرویس Firebase Analytics در برنامه نویسی اندروید
سلام دوستان عزیز در این سری از آموزش برنامه نویسی اندروید به آموزش پیاده سازی سرویس Firebase Analytics در برنامه نویسی اندروید می پردازیم. قبل تر این سرویس را معرفی کردیم و در این بار بیشتر به کد های آن می پردازیم با ما همراه باشید.
ابتدا عمر به این اشاره کنیم که زمانی که sdk فایربیس مربوط به Analytics را در سرویس خود قرار دهید تمامی رویداد ها و ویژگی ها کاربر را می گیرد و همچنین شما می توانید رویداد های سفارشی نیز تعریف کنید که در ادامه به آن ها می پردازیم.
در ادامه به رویداد هایی که به صورت اتوماتیک (در صورت قرار دادن sdk فایربیس در برنامه) به برنامه شما اضافه می شود می پردازیم.
نام رویداد | عمل |
---|---|
first_open | زمانی که کاربر برای اولین بار برنامه را راه اندازی (اجرا) می کند اتفاق می افتد این عمل هنگام دانلود کردن رخ نمی دهد بلکه بعد از نصب این رویداد اجرا می شود. |
in_app_purchase | در ایران این سرویس عملی نمی شود چون پرداخت درون برنامه ای گوگل پلی است و برای برنامه نویسان ایرانی زیاد مهم نیست ولی برای دانستن وقتی برنامه اجرا می شود این رویداد میزان خرید از درون برنامه را برای توسعه دهنده در بخش پنل می تواند مشاهد کند به طور مثال کاربر x مقدار x $ دلار خریده کرده است . |
user_engagement | چه مقدار کاربر با برنامه درگیر است (چقدر در روز از اپلیکیشن شما استفاده می کند.) |
session_start | زمانی که کاربر بیش چند دقیقه با برنامه کار یا بازی می کند یک سشن (جلسه) ایجاد می کند تا تمامی کار های کاربر را زیر نظر گیرد. |
app_update | این رویداد دو طرفه است یعنی از یک طرفی برای توسعه دهنده و از یک طرفی برای کاربر مهم است نحوه کار به این شکل است که اگر برنامه توسعه دهنده به ورژن جدیدی آپدیت شد به کاربر پیام می دهد که نسخه جدید برای نصب در دسترس است و از طرفی یک مقدار برای توسعه دهنده نیز ارسال می شود که ایا کاربر به نسخه جدید ارتقا پیدا کرده است یا نه. |
app_remove | این رویداد مقداری کاربرانی را که اپ را روی گوشیشان حذف کرده اند به پنل ارسال می کند. |
os_update | این رویداد به توسعه دهنده اعلام می کند که گوشی کاربر به ورژن جدیدی ارتقا پیدا کرده است. |
app_clear_data | این رویداد زمانی ارسال می شود که کاربر دیتا مربوط به برنامه را از توی گوشی خود پاک کند. |
app_exception | زمانی که خطای در برنامه رخ دهد این رویداد اجرا و به توسعه دهنده خبر می دهد. |
notification_foreground | زمانی که یک notification از طریق سرویس FCM ارسال می شود میزان کلیک نکردن (باز نکردن) کاربر بروی آن Notification را برای توسعه دهنده ارسال می کند |
notification_receive | این رویداد نرخ رسیدن پیام Notification را به توسعه دهنده اعلام می کند. |
notification_open | نرخ باز شدن صحیح Notification را اعلام می کند. |
notification_dismiss | نرخ رد کردن Notification را به توسعه دهنده اعلام می کند |
dynamic_link_first_open | بعد از باز کردن برنامه و بسته آن اولین لینکی که کاربر آن را باز می کند برای توسعه دهنده ارسال می شود ! (شبیه برنامه جاسوسی می ماند !) البته فقط برای گوشی های ios فعلا این قابلیت فعال است. |
dynamic_link_app_open | بعد از باز کردن برنامه و بستن آن اولین اپلیکیشنی که توسط کاربر باز می شود را برای توسعه دهنده ارسال می کند این سرویس هم فقط روی پلتفروم ios کار می کند البته فعلا |
این تمای رویداد های بودند که تنها با قرار دادن sdk فایربیس در برنامه اجرا می شودند !
حال به ویژگی (Properties) های که از کاربر به صورت اتوماتیک جمع آوری می شوند می پردازیم.
- App version / نسخه اپ
- Device model / مدل گوشی
- Gender / مذکر یا مونث بودن کاربر
- Age / سن کاربر
- Interests علاقه مندی های کاربر
- OS version نسخه پلتفرم کاربر
- New/Established / اخباری که کاربر منتشر کرده (به طور کلی هر کاری که کاربر انجام داده است به طور مثال گذاشتن عکس در اینستاگرام و…)
اولین کاری که انجام می دهید لازم است تا یک حساب کاربری در فایربیس ایجاد کنید در صورتی که حساب کاربری دارید باید آن را به Android studio وصل کنید. (از این آموزش می توانید استفاده کنید.)
دوستان حتما لینک را مطالعه فرماید در غیر این صورت نمی توانید درست انجام دهید ادامه کار را
بعد از آن از قسمت Assistant همانند شکل زیر عمل کنید.
سپس روی Log an Analytics Evnets کلیک کنید و همانند شکل زیر عمل کنید
باید کمی صبر کنید برنامه شما Sync شود ! مقداری زمان می برد.
وارد فایل AndroidManifest.xml شوید و دسترسی اینترنت را اضافه کنید.
1 | <uses-permission android:name="android.permission.INTERNET" /> |
و تمام در صورتی که می خواید یک Evnet کاستوم درست کنید در ادامه با ما همراه باشید و یک نکته شما همین الان نمی توانید کارهایی رو که کاربر انجام می دهد رصد کنید بعد 24 ساعت فعال می شود !
خب گفتیم که تا اینجا آموزش تمام شده فقط کسانی که می خوان رویداد سفارشی درست کنند ادامه رو دنبال کنند یک کلاس به نام Food ایجاد کنید سپس کد های زیر را درآن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Food { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } |
و فایل MainActivity هم به شکل زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.google.firebase.analytics.FirebaseAnalytics; public class MainActivity extends AppCompatActivity { private FirebaseAnalytics firebaseAnalytics; String[] foods; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); foods = new String[]{"Apple", "Banana", "Grape", "Mango", "Orange"}; // Obtain the Firebase Analytics instance. firebaseAnalytics = FirebaseAnalytics.getInstance(this); Food food = new Food(); food.setId(1); // choose random food name from the list food.setName(foods[randomIndex()]); Bundle bundle = new Bundle(); bundle.putInt(FirebaseAnalytics.Param.ITEM_ID, food.getId()); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, food.getName()); //Logs an app event. firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); //Sets whether analytics collection is enabled for this app on this device. firebaseAnalytics.setAnalyticsCollectionEnabled(true); //Sets the minimum engagement time required before starting a session. The default value is 10000 (10 seconds). Let's make it 20 seconds just for the fun firebaseAnalytics.setMinimumSessionDuration(20000); //Sets the duration of inactivity that terminates the current session. The default value is 1800000 (30 minutes). firebaseAnalytics.setSessionTimeoutDuration(500); //Sets the user ID property. firebaseAnalytics.setUserId(String.valueOf(food.getId())); //Sets a user property to a given value. firebaseAnalytics.setUserProperty("Food", food.getName()); } private int randomIndex() { int min = 0; int max = foods.length - 1; Random rand = new Random(); return min + rand.nextInt((max - min) + 1); } } |
کل کاری که کد بالا انجام می دهد یک Instance از فایربیس می گیریم و به صورت رندوم یک غذا را برای سرویس فایربیس ارسال می کنیم.
وتمام امیدوارم مفیده بوده باشد.
موفق باشید.
سلام اموزش خوبی بود
شما می تونید کمکم کنید برای حل خطای زیر:
Error: All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0-alpha1, 26.1.0. Examples include com.android.support:animated-vector-drawable:28.0.0-alpha1 and com.android.support:support-media-compat:26.1.0
تصویر:
up.vbiran.ir/uploads/39436153734225421947_error.jpg
سلام و درود
شما در حال استفاده از sdk 28 هستید بهتر است خط بالا 26 را به 28 تغییر دهید تا خطا رفع شود.
موفق و پیروز باشید.
سلام ببخشید یعنی اگر ما بخواییم اپ که داریم رو در Google Analytics ثبت کنیم باید کار برنامه نویسی انجام بدیم بعد از اماده شدن اپ امکانش نیست
سلام و درود
لازمه برنامه نویسی بشه و دوباره compile بشه.
موفق باشید.