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
實測效果:
- Android 通過Chrome Custom Tab開啟網頁
- Android 通過MotionLayot實現點贊動畫
- Android FCM接入
- Android 接入Google Tag Manager
- Android 一種點贊動畫的實現
- Android 搜尋框架使用
- Android WebView JS互動 傳Json格式引數問題
- 以往專案中的壓縮apk經驗
- Android 字型下載
- Android 全屏顯示和沉浸式顯示
- Android Google支付接入
- Android 自定義Gradle外掛(八):檢查Manifest中的許可權
- Android 自定義View ——漸變色折線圖
- Android Activity Result API (二) :拍照與選擇照片
- Android 自定義Gradle外掛(七):關於多渠道打包
- Android 自定義Gradle外掛(六):打包時修改assets中的檔案
- Android 自定義Gradle外掛(四):在專案的資料夾中建立檔案
- 使用Nexus搭建maven私有庫
- 記windows下 AndroidStudio 安裝配置過程,以及最新版AndroidStuido遇到的一個問題