Android出海实战:Firebase Analytics埋点
点击👆🏻蓝字关注我
大家好,我是小编阿文。欢迎您关注我们,经常分享有关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地址(欢迎下载体验):https://github.com/loveAndroidAndroid/Firebsse-Analytics-Demo
出海共济
出海之路,路远且艰。更多金融出海解决方案,欢迎关注公众号 互金出海百晓通 ,大家一起探讨更多出海实战及政策合规问题,稳健航行世界之海。