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 BoMapi platform('com.google.firebase:firebase-bom:28.0.1')// firebase FCM推送api 'com.google.firebase:firebase-messaging'// firebase Analyticsapi '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 ?: returnif (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=XXXXHOST: www.google-analytics.comContent-Type: application/jsonPayload{"app_instance_id": "xxxxxxxxx","events": [{"name": "register_success"}]}

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

    Request info:POST /mp/collect?api_secret=XXXX&firebase_app_id=XXXXHOST: www.google-analytics.comContent-Type: application/jsonPayload{"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

出海共济

出海之路,路远且艰。更多金融出海解决方案,欢迎关注公众号 互金出海百晓通 ,大家一起探讨更多出海实战及政策合规问题,稳健航行世界之海。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二刷算法训练营Day30 | 回溯算法(6/6)

目录 详细布置&#xff1a; 1. 回溯总结 2. 332. 重新安排行程 3. 51. N 皇后 4. 37. 解数独 详细布置&#xff1a; 1. 回溯总结 回溯是递归的副产品&#xff0c;只要有递归就会有回溯&#xff0c;所以回溯法也经常和二叉树遍历&#xff0c;深度优先搜索混在一起&#x…

时代巨兽!深度神经网络如何改变我们的世界?

深度神经网络 1、 简介1.1 定义深度神经网络1.2 深度学习的发展历程1.3 深度神经网络的应用领域 2、深度神经网络的基本原理2.1 神经元层2.1.1 神经元2.1.2 神经元层 2.2 前向传播2.3 反向传播2.4 激活函数2.4.1、作用2.4.2、常见激活函数2.4.3、选择激活函数的考虑 2.5 损失函…

AI 有感:智能体 = 提示词工程 + 大模型算力 + 插件类工具?

回顾 继这篇文章推出&#xff1a;怎么看 AI 大模型&#xff08;LLM&#xff09;、智能体&#xff08;Agent&#xff09;、知识库、向量数据库、知识图谱&#xff0c;RAG&#xff0c;AGI 的不同形态&#xff1f; 引起了很多粉丝朋友的反响&#xff0c;随着目前各大模型的发布以…

项目部署(前后端)

一&#xff1a;多环境概念&#xff1a; 借鉴来源&#xff1a;多环境设计_程序员鱼皮-多环境设计-CSDN博客 为什么需要多环境&#xff1a; 第一个例子&#xff1a;我们可以设想&#xff0c;我们肯定玩过王者荣耀&#xff0c;且王者荣耀也一直在不断更新&#xff0c;如果按我们…

短视频五大要素:成都科成博通文化传媒公司

短视频五大要素&#xff1a;揭秘成功视频的关键 在数字媒体时代&#xff0c;短视频已成为人们生活中不可或缺的一部分。无论是社交平台的日常分享&#xff0c;还是品牌营销的重要工具&#xff0c;短视频都以其短小精悍、内容丰富的特点赢得了广泛的关注和喜爱。然而&#xff0…

9种编程语言的对比分析

在当今的软件开发领域&#xff0c;编程语言扮演着至关重要的角色。不同的编程语言各有其特点和适用场景&#xff0c;选择合适的编程语言能够提高开发效率和软件质量。本文将对十种常见的编程语言进行对比分析&#xff0c;帮助读者了解它们的优缺点和适用场景。 Java 特点&…

freemarker 使用

首次使用freemarker遇到的全是坑,还好,各种问题,最终都解决了。芹菜加油 import com.lowagie.text.pdf.BaseFont; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.xhtmlrenderer.pdf.ITextRenderer;import java.io.Byte…

智能化软件开发微访谈·第三十一期 代码大模型训练、微调与增强

CodeWisdom “智能化软件开发沙龙是由CodeWisdom团队组织的围绕智能化软件开发、数据驱动的软件开发质量与效能分析、云原生与智能化运维等相关话题开展的线上沙龙&#xff0c;通过微信群访谈交流等线上交流方式将学术界与工业界专家学者汇聚起来&#xff0c;共同分享前沿研究进…

领夹麦克风哪个品牌音质最好?轻揭无线麦克风哪个品牌性价比高!

​随着短视频热潮的兴起&#xff0c;越来越多的人倾向于用vlog记录日常生活&#xff0c;同时借助短视频和直播平台开辟了副业。在这一过程中&#xff0c;麦克风在近两年内迅速发展&#xff0c;从最初的简单收音功能演变为拥有多样款式和功能&#xff0c;以满足视频创作的需求。…

【C++】AVL树/红黑树实现及map与set的封装

前言 【C】二叉树进阶&#xff08;二叉搜索树&#xff09; 这篇文章讲述了关于二叉搜索树知识&#xff0c;但是二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff…

如何在Windows 10中恢复已删除的文件?

在 Windows 10 电脑上删除文件是一种常见的操作。如果你不需要某个文件&#xff0c;你会删除它。如果电脑空间用完了&#xff0c;你会尝试删除一些文件以释放更多空间。此外&#xff0c;你可以尝试清理电脑&#xff0c;使用电脑清理工具删除文件。 但是&#xff0c;如果您在 W…

如果供应商不能按时交货怎么办?

虽然说我们在采购的时候&#xff0c;我们会和供应商签订合同&#xff0c;合同上也会注明交期时间等一些必需的条件。 但是当供货商真的没有如期交货&#xff0c;或者交货拖延的时候&#xff0c;我们第一时间选择的是拿起法律武器来让对方承担违约责任吗? 显然&#xff0c;这选…

地表位移监测系统:原理、组成与功能

地表位移监测系统是一项用于实时监测地表下沉、沉降、地面位移和地下水位变化的关键工具。本文将介绍该系统的工作原理、系统组成、工作模式以及功能特点&#xff0c;以便更深入地了解如何有效利用该系统进行沉降监测。 一、工作原理 地表位移监测系统主要由位移监测站、数据采…

揭秘未来:用线性回归模型预测一切的秘密武器!

线性回归模型 1. 引言2. 理论基础2.1 线性回归模型的定义与原理原理与关键假设模型参数估计 2.2 模型评估指标2.2.1 残差分析2.2.2 拟合优度指标2.2.3 统计检验 3. 应用场景3.1. 金融领域中的应用3.2. 医疗健康领域中的应用3.3. 其他领域的应用 4. 实例分析4.1、数据集选择4.2、…

服务器数据恢复—OceanStor存储中NAS卷数据丢失如何恢复数据?

服务器存储数据恢复环境&故障&#xff1a; 华为OceanStor某型号存储。工作人员在上传数据时发现该存储上一个NAS卷数据丢失&#xff0c;管理员随即关闭系统应用&#xff0c;停止上传数据。这个丢失数据的卷中主要数据类型为office文件、PDF文档、图片文件&#xff08;JPG、…

❤ npm运行打包报错归纳

❤ 前端运行打包报错归纳 &#xff08;安装依赖&#xff09;Cannot read property ‘pickAlgorithm’ of null" npm uninstall //删除项目下的node_modules文件夹 npm cache clear --force //清除缓存后 npm install //重新安装 备用安装方式 npm install with --for…

微信小程序添加服务类目|《非经营性互联网信息服务备案核准》怎么获取

根据客服反馈&#xff0c;《非经营性互联网信息服务备案核准》在工业和信息化部政务服务平台网站查询&#xff0c;查询结果的截图就是《非经营性互联网信息服务备案核准》。 工业和信息化部政务服务平台 《非经营性互联网信息服务备案核准》&#xff1a; 与客服聊天的截图&a…

SpringBoot如何自定义启动Banner 以及自定义启动项目控制台输出信息 类似于若依启动大佛 制作教程

前言 Spring Boot 项目启动时会在控制台打印出一个 banner&#xff0c;下面演示如何定制这个 banner。 若依也会有相应的启动动画 _ooOoo_o8888888o88" . "88(| -_- |)O\ /O____/---\____. \\| |// ./ \\||| : |||// \/ _||||| -:- |||||- \| | \\…

第二十一章 访问者模式

目录 1 访问者模式介绍 2 访问者模式原理 3 访问者模式实现 4 访问者模式总结 1 访问者模式介绍 访问者模式(Visitor Pattern) 的原始定义是&#xff1a;允许在运行时将一个或多个操作应用于一组对象&#xff0c;将操作与对象结构分离 2 访问者模式原理 抽象访问者&#xf…

DS18B20温度传感器完整使用介绍(配合51单片机)

DS18B20是一款由Maxim Integrated&#xff08;原Dallas Semiconductor&#xff09;生产的数字温度传感器&#xff0c;以其高精度、低功耗、灵活的接口方式和易于使用的特性&#xff0c;在各种温度监测应用中被广泛采用。 以下是DS18B20的详细介绍&#xff1a; 基本特性 数字输…