Android Firebase入门到精通之七:Analytics(分析) 的集成与开发

版权声明:本文为博主原创文章,未经允许不得转载,如有问题,欢迎指正,谢谢! 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 报告可帮助您清晰地了解用户的行为方式,让您可以就应用营销和性能优化制定明智的决策。

二、远程配置的集成说明:

三、代码汉化说明:

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. 上报打点事件:当前应用界面
    }

}

猜你喜欢

转载自blog.csdn.net/cbk861110/article/details/88629174
今日推荐