版权声明:本文为博主原创文章,未经允许不得转载,如有问题,欢迎指正,谢谢! https://blog.csdn.net/cbk861110/article/details/88629174
项目源码请移步:https://github.com/caobaokang419/FirebaseApp(欢迎Github Fork&Star,如有描述错误的地方,请帮忙指正),谢谢!
一、 概念阐述:
Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析。Firebase 的核心是 Google Analytics for Firebase:一项无限制的免费分析解决方案。Analytics 与各种 Firebase 功能进行了集成,可以针对多达 500 种不同类型的事件向您提供无限多的报告,您可以利用 Firebase SDK 定义这些事件。Analytics 报告可帮助您清晰地了解用户的行为方式,让您可以就应用营销和性能优化制定明智的决策。
二、远程配置的集成说明:
- Analytics(分析):需自备梯子
三、代码汉化说明:
1. project build.gradle 添加:
implementation 'com.google.firebase:firebase-analytics:16.0.5'
2. AndroidManifest.xml 添加:
<activity android:name=".analytics.AnalyticsActivity" android:label="@string/fb_analytics_label" android:theme="@style/AppTheme" />
3. Activity实现(打点事件上报):
public class AnalyticsActivity extends AppCompatActivity { private static final String KEY_FAVORITE_FOOD = "favorite_food"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fb_analytics); // 1. 获取FirebaseAnalytics实例对象 mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); } /** * Set the user's ic_fb_analytics_favorite food as an app measurement user property and in shared preferences. * @param food the user's ic_fb_analytics_favorite food. */ private void setUserFavoriteFood(String food) { Log.d(TAG, "setFavoriteFood: " + food); mFavoriteFood = food; PreferenceManager.getDefaultSharedPreferences(this).edit() .putString(KEY_FAVORITE_FOOD, food) .apply(); mFirebaseAnalytics.setUserProperty("favorite_food", mFavoriteFood); // 2. 上报用户属性favorite_food } @Override public boolean onOptionsItemSelected(MenuItem item) { int i = item.getItemId(); if (i == R.id.menu_share) { Bundle params = new Bundle(); params.putString("image_name", name); params.putString("full_text", text); mFirebaseAnalytics.logEvent("share_image", params);// 3. 上报打点事件:share_image(用户行为) } return false; } /** * This sample has a single Activity, so we need to manually record "screen views" as * we change fragments. */ private void recordScreenView() { // This string must be <= 36 characters long in order for setCurrentScreen to succeed. String screenName = getCurrentImageId() + "-" + getCurrentImageTitle(); mFirebaseAnalytics.setCurrentScreen(this, screenName, null );// 4. 上报打点事件:当前应用界面 } }