Android 接入Google Tag Manager
最近公司有意向使用Google Tag Manager来管理App中的埋点事件,本篇文章介绍下Google Tag Manager的接入。
Google Tag Manager
Google Tag Manager基于Firebase Analytics,通过Google Tag Manager,可以实现和管理App中的埋点事件,并轻松的分发到其他统计平台。
支持平台
- Floodlight
- Google Ads
- adjust
- AppsFlyer
- Apsalar
- Kochava
- Tune
- Custom Function Calls(适用于其他产品)
前置条件
1. 集成Firebase SDK
在项目app module的build.gradle中的dependencies中添加依赖:
dependencies {
// 使用Firebase Andorid bom(官方推荐)
implementation platform('com.google.firebase:firebase-bom:31.1.0')
implementation 'com.google.firebase:firebase-analytics'
// 不使用bom
implementation 'com.google.firebase:firebase-analytics:21.2.0'
}
上报事件
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val firebaseAnalytics = FirebaseAnalytics.getInstance(this)
// 参数
val bundle = Bundle()
firebaseAnalytics.logEvent("test_track", bundle)
}
}
2. 创建Google Tag Manager账号
在Google Tag Manager后台创建账号,如下图;
选择安卓应用,如下图:
3. 配置Google Tag Manager(以AppsFlyer为例)
AppsFlyer的帮助中心有相关的文档:
3.1 配置变量
(1)在后台的工作区中选中变量,在用户自定义变量中点击新建变量,如下图:
(2)变量命名为AppsFlyer Dev Key,并点击变量配置,如下图:
(3)选择变量类型为事件参数,如下图:
(4)Event Type选择Custom Parameter,键设置为dev_key,保存变量,如下图:
*重复上述步骤创建变量AppsFlyer Device ID,键值为af_id。
3.2 配置代码
(1)在后台的工作区中选中代码,点击新建,如下图:
(2)点击代码配置,如下图:
(3)代码类型选择AppsFlyer,如下图:
(4)修改AppsFlyer的配置,如下图:
(5)点击触发条件,如下图:
(6)触发器选择All Events(如果只需要分发特定的事件,可以创建不同的触发器),如下图:
(7)保存代码配置
3.3 提交更改
(1)在后台的工作区中选中概览,点击提交,如下图:
(2)在提交配置中选择创建版本,点击创建,如下图:
3.4 测试与发布
(1)在后台的工作区中选中概览,点击最新版本,如下图:
(2)点击下载,下载配置文件Json待用(接入SDK时会用到),如下图:
(3)点击预览,如下图:
(4)配置包名,生成预览链接,测试应用接好SDK并安装到设备后先关闭应用,通过预览链接打开,如下图:
(5)测试没有问题后可以进行发布,如下图:
集成Google Tag Manager SDK
(1)在项目app module的build.gradle中的dependencies中添加依赖:
dependencies {
implementation 'com.google.android.gms:play-services-tagmanager:18.0.2'
}
(2)添加配置
在app/src/main/assets中创建containers文件夹,并将之前下载的配置Json放到该文件夹中,如下图:
(3)调整发送事件代码
需要添加AppsFlyer的SDK,如下:
dependencies {
implementation 'com.appsflyer:af-android-sdk:6.9.4'
}
上报事件时需要传入参数dev_key和af_id,如下图:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val firebaseAnalytics = FirebaseAnalytics.getInstance(this)
// 参数
val bundle = Bundle()
bundle.putString("dev_key", "keyValue")
bundle.putString("af_id", AppsFlyerLib.getInstance().getAppsFlyerUID(context))
firebaseAnalytics.logEvent(eventName, bundle)
}
}
测试
开启Google Tag Manager日志
adb shell setprop log.tag.GoogleTagManager VERBOSE
实测效果:
作者:ChenYhong
链接:https://juejin.cn/post/7175409860643651643