如何通过Google Analytics+Firebase+Tag Manager在Android应用中按组织区分用户签到签出?
实现流程
1. 基础服务关联配置
- 先在Firebase控制台创建项目,绑定对应Android应用,按指引下载
google-services.json文件放到项目app模块根目录 - 进入Firebase项目「整合」板块,绑定已创建的GA4媒体资源,开启Firebase到GA4的数据自动同步
- 在Google Tag Manager控制台创建Android容器,下载生成的
gtm-xxxxxx.json配置文件,放到项目app/src/main/assets/containers目录下
2. Android端依赖引入
在模块级build.gradle中添加以下依赖:
// Firebase 核心BOM,统一管理版本号 implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-analytics' // GTM 依赖 implementation 'com.google.android.gms:play-services-tagmanager:18.0.3'
3. 用户组织属性持久化配置
用户登录成功获取所属组织唯一标识后,调用Firebase Analytics接口设置全局用户属性,属性名建议统一为org_id:
val firebaseAnalytics = Firebase.analytics // 组织属性会关联该用户后续所有上报事件,直到切换组织/登出时修改 firebaseAnalytics.setUserProperty("org_id", "当前用户所属组织的唯一ID/名称") // 用户登出/切换组织时清空原有属性 firebaseAnalytics.setUserProperty("org_id", null)
注意:该属性为用户级维度,不需要每次触发签到、签出事件时重复上传
4. 签到/签出事件埋点
在签到、签出操作的触发节点上报自定义事件,可按需携带业务扩展参数:
// 签到事件上报 val checkInParams = bundleOf( "checkin_location" to "办公区A座", "checkin_timestamp" to System.currentTimeMillis() ) firebaseAnalytics.logEvent("checkin_event", checkInParams) // 签出事件上报 val checkOutParams = bundleOf( "checkout_location" to "办公区A座", "checkout_timestamp" to System.currentTimeMillis(), "work_duration_hour" to 8.5 ) firebaseAnalytics.logEvent("checkout_event", checkOutParams)
5. GTM 规则配置(可选,用于事件二次分发/字段修正)
如果需要对事件做自定义处理再分发到GA4或其他分析平台,可在GTM控制台做如下配置:
- 新建变量,类型选择「Firebase 用户属性」,关联之前设置的
org_id,变量名设为OrgID - 新建触发器,触发条件设置为「事件名称等于
checkin_event或checkout_event」 - 新建GA4事件标签,选择绑定的GA4资源,在事件参数中添加
org_id字段,值引用之前创建的OrgID变量,关联触发器后发布容器即可
6. GA4 数据拆分配置
要实现按组织区分数据查看,在GA4控制台做如下配置:
- 进入「自定义定义」页面,新建用户级自定义维度,维度参数填
org_id,保存后24小时内生效 - 后续查看签到、签出数据时,在探索报告中添加「用户属性 > org_id」作为筛选条件或分组维度,即可拆分不同组织的签到签出数据
内容的提问来源于stack exchange,提问作者Subratsss
相关产品推荐
相关产品推荐

