Android出海实战:Firebase Analytics埋点

2,510 阅读8分钟

大家好,我是小编阿文。欢迎您关注我们,经常分享有关Android出海,iOS出海,App市场政策实时更新,互金市场投放策略,最新互金新闻资讯等文章,期待与您共航世界之海。

写在伊始

Google Analytics(分析)for Firebase俗称GA是一款免费的应用效果衡量解决方案,可提供关于应用的使用情况和用户互动度的数据分析。它能帮我们收集访客在我们网站上的访问路径、转化记录、转化金额、访客来源国家等;我们可以通过查看GA平台上预设的报表或者自定义报表来了解整个网站的各项数据,进而优化我们的运营策略。

对于市场投放,也非常依赖我们的Firebase埋点,通过其数据来优化投放方案,优化ROI。

本文将就前后端Firebase Analytics埋点做详细分析,助力出海应用顺利集成Firebase Analytics并对接市场,加速广告推广工作。

前端(Android)集成Firebase Analytics

前文浅谈

在上一篇Android出海实战文章中:Android出海实战:Firebase FCM推送详解。对于Firebase项目创建及如何将google-services集成到我们的Android项目中有了详细的介绍,在此文不在详谈,我们集中来看Firebase Analytics的详细集成及效果展示。

Firebase Analytics集成

在此,我们依然通过Firebase Android BoM方式添加Analytics引用,如下代码:

  dependencies {
      // firebase BoM
      api platform('com.google.firebase:firebase-bom:28.0.1')
      // firebase FCM推送
      api 'com.google.firebase:firebase-messaging'
      // firebase Analytics
      api 'com.google.firebase:firebase-analytics'    
  }

Android 获取firebaseInstanceId 值,需要将这个值传递给后端(后端埋点需要这个值)

class FirebaseManager {
    companion object {
      var firebaseInstanceId = ""

      @SuppressLint("MissingPermission")
      fun init(application: Application) {
        FirebaseAnalytics.getInstance(application).appInstanceId.addOnCompleteListener {
          if (it.result != null) {
            firebaseInstanceId = it.result?:""
          }
        }
      }
    }
  }

Android 客户端埋点上报​​​​​​​

@SuppressLint("MissingPermission")
fun Context?.firebaseTrack(event: String?, params: Map<String?, Any?>? = null) {
    this ?: return
        if (event.isNullOrEmpty()) {
            return
        }
        FirebaseAnalytics.getInstance(this).logEvent(event, Bundle().apply {
            //putString("参数名","参数值") 
            params?.forEach {
            if (it.key.orEmpty().isNotEmpty()) {
                putString(it.key.orEmpty(), it.value.toString().orEmpty())
            }
        }
    })
}

那么,我们如何确定Firebase Analytics集成成功了呢?

第一点,我们可以看项目的google_app_id是否正确生成了,如下图:

图片

第二点,我们可以通过Firebase的提供的调试工具及DebugView(调试事件)来看一下。那么,什么是DebugView呢?

Firebase是这样介绍的,使用 DebugView,能够以近乎实时的方式查看由开发设备上的应用记录的原始事件数据。这在开发的插桩 (Instrumentation) 阶段进行验证时很有用,可帮我们发现 Analytics 实现中的错误,还可以帮我们确认所有事件和用户属性已正确记录。

下面,我们来看如何开启DebugView:

1)启用调试模式

Android 设备上启用 Analytics 调试模式,请执行以下命令:
adb shell setprop debug.firebase.analytics.app PACKAGE_NAME

调试模式将保持启用状态,直至您通过执行以下命令明确将其停用:
adb shell setprop debug.firebase.analytics.app .none.

通过以下 adb 命令启用详细日志记录功能
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

2)打开应用,即可看到该应用的事件记录在 DebugView 报告中

图片

因为Firebase Analytics数据分析面板第二天才会更新数据,我们如何确定我们的埋点是否已经在数据报表呢?Firebase提供了实时数据(Realtime Analytics)给我们,如下图:

图片

到此,Android端的Firebase Analytics集成就结束了。

但对于Firebase Analytics埋点,很多业务重要的埋点是要以后端数据为准的,所以在实际应用中,Firebase Analytics后端埋点相对较多一些。

后端Firebase Analytics埋点

准备工作

1.在firebase后台获取Android应用ID(这个可以让Android同学提供,在Firebase项目后台和google-services.json文件中都有)

2.在firebase后台获取api_secret (在创建完Firebase Analytics账户后才有,也就是要让市场同学创建一下Measurement Protocol API 密钥,在管理 —> 数据流模块)

3.Android需要把app_instance_id参数设置到请求的公共参数里, 后端可以在注册或者登录接口里进行保存或更新 (后续要使用,在上文有聊到)

后端需要以Firebase Api方式传递数据给Firebase

根据上述信息我们得到后端上报埋点的请求URL为:

https://www.google-analytics.com/mp/collect?firebase_app_id=android应用ID&api_secret=android api_secret

实际样例

1.上报一般事件

  Request info:
     POST /mp/collect?api_secret=XXXX&firebase_app_id=XXXX
     HOST: www.google-analytics.com
     Content-Type: application/json
     Payload
     {
        "app_instance_id": "xxxxxxxxx",
        "events": [
                {
                    "name": "register_success"
                }
            ]
        }

2.上报带参数自定义事件(本样例为事件价值事件): 

    Request info:
     POST /mp/collect?api_secret=XXXX&firebase_app_id=XXXX
     HOST: www.google-analytics.com
     Content-Type: application/json
     Payload
     {
            "app_instance_id": "xxxxxxxx",
            "events": [
                {
                 "name": "order_success",
                 "params": {
                      "value": "金额",
                      "currency": "货币单位"
                    }
                }
            ]
        }

注意:如果是事件价值的事件,currency和value是固定参数(这个千万不要更改),currency是货币单位,value是金额。

讲述到这里,关于Firebase Analytics埋点的前后端讲解就全部完成了,如果您还有任何问题,欢迎留言。

在多言一句,Firebase Analytics埋点的事件名称是有限制的,如果您的埋点Key名字不符合规范或者整体json数据不符合规范,将不能埋点成功。

发送事件的限制条件:
1)请求最多可以包含 25 个事件。
2)事件最多可以包含 25 个参数。
3)事件最多可以包含 25 个用户属性。
4)用户属性名称不得超过 24 个字符。
5)用户属性值不得超过 36 个字符。
6)事件名称不得超过 40 个字符,只能包含字母数字字符和下划线,并且必须以字母字符开头。
7)参数名称(包括项参数)不得超过 40 个字符,只能包含字母数字字符和下划线,并且必须以字母字符开头。
8)参数值(包括项参数值)不得超过 100 个字符。
9)项参数中最多可以包含 10 个自定义参数

github地址(欢迎下载体验):github.com/loveAndroid…

App出海交流群,寻找志同道合的你

经常分享Google Play,App Store市场政策解决方案,大家共同深入了解应用市场App上架、下架背后的原因,如政策违规、安全漏洞、版权问题、市场策略调整等,确保海外App合规、安全并提升我们的用户体验。也不限于分享其他App出海快讯,一起见证行业的蓬勃发展。

欢迎您来到App出海交流群讨论出海的任何问题!想进群的可以点击这里,或者关注公众号趣浪出海,我拉您进来。

这是一个高质量的属于App出海浪潮儿的技术交流中心!

在这里,都是一群热衷于在海外发展的人群:

1、你的各种谷歌&苹果应用上架问题都能得到解决。

2、你可以了解到各种最新的谷歌&苹果政策更新。

3、你可以获得每日的应用上架数据,了解谷歌&苹果审核严松状态。

4、你可以获得各种资源信息,助力企业出海。

推荐阅读(更多问题咨询请点击这里 或者关注vx 趣浪出海)

Google Play上架审核时间过长?要不要催审!

这都能封!开发者行为导致Google账号关联?

另类封号!别让你的Google老账号为你的粗心买单

GooglePlay账号关联审查机制详解