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

出海共济

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 引入中文py文件

目录 背景 思路 importlib介绍 使用方法 1.导入内置库 importlib.util 2.创建模块规格对象 spec importlib.util.spec_from_file_location("example_module", "example.py") 3.创建模块对象 module importlib.util.module_from_spec(spec) …

VMWARE安装Centos8,并且使用ssh连接虚拟机

VMWARE安装Centos8,并且使用ssh连接虚拟机 安装VMWARE安装Centos 8SSH连接 安装VMWARE 参考这篇文章: https://blog.csdn.net/weixin_74195551/article/details/127288338 安装Centos 8 首先在aliyun镜像仓库下载: https://mirrors.aliyun.com/centos/8/isos/x86_64/ 我下载…

高等数学笔记(一):映射与函数

一、映射 1.1 映射的概念 存在一个法则 f &#xff0c;使得对 X 中每个元素 x &#xff0c;在 Y 中有唯一确定的元素 y 与之对应&#xff08;X、Y 非空集&#xff09; 称 f 为从 X 到 Y 的映射&#xff0c;如图所示 其中 y 称为元素 x&#xff08;在映射 f 下&#xff09;的…

目录文件管理

文章目录 Linux目录结构树形目录结构根目录常见的子目录子目录的作用 查看及检索文件查看文件内容cat格式 more格式操作方法 less格式操作方法 head格式 tail格式 统计文件内容wc格式选项 检索和过滤文件内容grep格式选项查找条件 备份及恢复文档压缩命令gzip bzip2格式压缩解压…

LLM中表格处理与多模态表格理解

文档处理中不可避免的遇到表格&#xff0c;关于表格的处理问题&#xff0c;整理如下&#xff0c;供各位参考。 问题描述 RAG中&#xff0c;对上传文档完成版式处理后进行切片&#xff0c;切片前如果识别文档元素是表格&#xff0c;那么则需要对表格进行处理。一般而言&#x…

黑龙江等保测评的流程和注意事项

黑龙江等保测评&#xff08;信息安全级别保护评估&#xff09;&#xff0c;是根据国家信息安全等级保护的有关标准&#xff0c;以保证信息系统的安全性&#xff0c;对信息系统所做的一种安全性评价。下面是对等保进行评估的具体过程和说明&#xff1a; 一、黑龙江等保测评流程 …

Unity制作背包的格子

1.新建一个面板 2.点击面板并添加这个组件 3.点击UI创建一个原始图像&#xff0c;这样我们就会发现图像出现在了面板的左上角。 4.多复制几个并改变 Grid Layout Group的参数就可以实现下面的效果了

无忧易售ERP:引领电商管理新纪元,一键EAN生成,让商品流通无忧

在瞬息万变的电商蓝海中&#xff0c;高效与精准成为企业制胜的关键。为了帮助广大电商卖家们在激烈的市场竞争中脱颖而出&#xff0c;无忧易售ERP支持Allegro、OZON、OnBuy、Walmart平台免费EAN生成工具及一键填充功能。 如何使用无忧易售erp快速生成EAN码呢&#xff0c;接下来…

Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1

OpenSSH更新 一、OpenSSH漏洞二、安装zlib三、安装OpenSSL四、安装OpenSSH 一、OpenSSH漏洞 服务器被扫描出了漏洞需要修复&#xff0c;准备升级为最新openssh服务 1. 使用ssh -v查看本机ssh服务版本号 ssh -V虚拟机为OpenSSH7.4p1&#xff0c;现在准备升级为OpenSSH9.7p1…

帮助汽车制造业实现高精度脚垫上下料自动化

随着汽车制造业的快速发展&#xff0c;对生产效率和产品质量的要求日益提高。在汽车制造过程中&#xff0c;脚垫的上下料操作是一个重要的环节&#xff0c;传统的人工操作方式已经无法满足现代生产的需求。富唯智能凭借其先进的3D视觉引导机器人抓取技术&#xff0c;成功解决了…

YOLOv8 + SAM实现自动标注分割数据集【附完整源码+步骤详解】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【C++11】常见的c++11新特性(一)

文章目录 1. C11 简介2. 常见的c11特性3.统一的列表初始化3.1initializer_list 4. decltype与auto4.1decltype与auto的区别 5.nullptr6.右值引用和移动语义6.1左值和右值6.1.1左值的特点6.1.2右值的特点6.1.3右值的进一步分类 6.2左值引用和右值引用以及区别6.2.1左值引用6.2.2…

YOLOv5目标检测——基于YOLOv5的吊车安全监测

移动式起重机是建筑施工中使用的重要设备。 遵守正确的操作程序对于防止事故很重要。 然而&#xff0c;其中存在人为错误的因素。 这里我将举一个例子来说明计算机视觉&#xff08;CV&#xff09;如何帮助解决这个问题。 1、移动式起重机操作的安全问题 为简单起见&#xff0…

躬行践履始玉成,行而不辍终致远 | 中创算力季度优秀员工表彰大会

蓬勃发展&#xff0c;根基在人。在中创发展的道路上&#xff0c;有初心不改的领导者、有披星戴月的业务标杆、也有默默坚守的员工&#xff0c;他们扎根中创&#xff0c;用努力、拼搏、坚持&#xff0c;在中创的历程上镌刻下 属于自己的一份印记&#xff01; 为了表彰优秀&…

【吉林大学Java程序设计】第9章:并发控制

第9章&#xff1a;并发控制 1.线程的基本概念2.线程的创建与启动3.线程的调度与优先级线程的状态线程的生命周期线程控制的基本方法线程优先级 4.线程的协作多线程存在的问题同步区域&#xff08;临界区&#xff09;生产者与消费者问题&#xff08;互斥与同步问题&#xff09;哲…

618必抢清单:内存升级国货更强,DDR5劲爆大白菜

随着数字时代的加速发展&#xff0c;平时在PC上玩游戏、办公的时候&#xff0c;电脑性能对我们的影响越来越打。相比于CPU、显卡等硬件&#xff0c;内存对于电脑性能的重要性也很高&#xff0c;而且可以通过更低的成本来升级。内存就像是电脑的神经网络&#xff0c;影响着CPU数…

【机器学习300问】119、什么是语言模型?

语言模型&#xff08;Language Models&#xff09;是自然语言处理&#xff08;NLP&#xff09;的重要组成部分&#xff0c;它的目的是量化一段文本或一个序列的概率。简单讲就是你给语言模型一个句子&#xff0c;它给你计算出特定语言中这个句子出现的概率。这样的概率度量可以…

Node-red win11安装

文章目录 前言一、安装node.js和npm二、安装Node-red三、 运行Node-red 前言 Node-RED 是一种编程工具&#xff0c;用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 它提供了一个基于浏览器的编辑器&#xff0c;只需单击一下即可将调色板中的各种节点轻松连接在…

麒麟移动运行环境(KMRE)——国内首个开源的商用移固融合“Android生态兼容环境”正式开源

近日&#xff0c;由麒麟软件研发的KMRE&#xff08;Kylin Mobile Runtime Environment&#xff0c;麒麟移动运行环境&#xff09;在openKylin&#xff08;开放麒麟&#xff09;社区正式发布&#xff0c;为Linux桌面操作系统产品提供了高效的Android运行环境解决方案。这也是国内…

2024年【电工(高级)】考试内容及电工(高级)考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;高级&#xff09;考试内容考前必练&#xff01;安全生产模拟考试一点通每个月更新电工&#xff08;高级&#xff09;考试试题题目及答案&#xff01;多做几遍&#xff0c;其实通过电工&#xff08;高…