其他
Android出海实战:Firebase Analytics埋点
https://mp.weixin.qq.com/s/3XwWGL6h8L-r6zpJ_CwTxw
// 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'
}
companion object {
var firebaseInstanceId = ""
@SuppressLint("MissingPermission")
fun init(application: Application) {
FirebaseAnalytics.getInstance(application).appInstanceId.addOnCompleteListener {
if (it.result != null) {
firebaseInstanceId = it.result?:""
}
}
}
}
}
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())
}
}
})
}
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
准备工作
在firebase后台获取Android应用ID(这个可以让Android同学提供,在Firebase项目后台和google-services.json文件中都有) 在firebase后台获取api_secret (在创建完Firebase Analytics账户后才有,也就是要让市场同学创建一下Measurement Protocol API 密钥,在管理 —> 数据流模块) Android需要把app_instance_id参数设置到请求的公共参数里, 后端可以在注册或者登录接口里进行保存或更新 (后续要使用,在上文有聊到)
后端需要以Firebase Api方式传递数据给Firebase
实际样例
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"
}
]
}
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": "货币单位"
}
}
]
}
1)请求最多可以包含 25 个事件。
2)事件最多可以包含 25 个参数。
3)事件最多可以包含 25 个用户属性。
4)用户属性名称不得超过 24 个字符。
5)用户属性值不得超过 36 个字符。
6)事件名称不得超过 40 个字符,只能包含字母数字字符和下划线,并且必须以字母字符开头。
7)参数名称(包括项参数)不得超过 40 个字符,只能包含字母数字字符和下划线,并且必须以字母字符开头。
8)参数值(包括项参数值)不得超过 100 个字符。
9)项参数中最多可以包含 10 个自定义参数
https://github.com/loveAndroidAndroid/Firebsse-Analytics-Demo