Android:Google三方庫之Adjust集成詳細步驟

通過 Adjust 安卓 SDK,您可以在自己的安卓應用中跟蹤歸因、事件及更多數據。請按照本指南中說明的步驟操作,在應用內設置 Adjust SDK

1、添加依賴

        //adjustimplementation("com.adjust.sdk:adjust-android:4.33.5")implementation("com.android.installreferrer:installreferrer:2.2")

2、添加Google Play服務

Google Play 商店中的應用需要使用?Google 廣告 ID?來識別設備。要為我們的 SDK 啟用 Google 廣告 ID,您需要集成?Google Play 服務。為此請將 Google Play 服務庫加入您的項目。將下列 dependency 加入build.gradle?文件的?dependencies?部分。

        //google servicesimplementation("com.google.android.gms:play-services-ads-identifier:18.0.1")

3、收集 App Set Identifier(用了firebase可以不用這個)

App Set Identifier?是一個唯一標識符,用戶在設備上安裝您的應用后,您可以通過此標識符監測這些應用的信息。同一位開發者開發的所有應用共享同一個 App Set ID,也就是說您可以從所有應用中收集有用的洞見。要記錄設備的 App Set ID,您需要向build.gradle?文件中添加下列權限:

        implementation("com.google.android.gms:play-services-appset:16.0.2")

4、添加權限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

如果您的應用并非面向 Google Play 商店,請添加以下權限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

5、設置混淆:proguard-rules.pro


#adjust
-keep class com.adjust.sdk.**{ *; }
-keep class com.google.android.gms.common.ConnectionResult {int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {java.lang.String getId();boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.**{ *; }

應用不在 Google Play 商店發布,請添加下列?com.adjust.sdk?規則:

-keep public class com.adjust.sdk.**{ *; }

6、設置 Install Referrer

Install Referrer 是一種唯一標識符,可用來將應用安裝歸因至來源。Adjust SDK 需要該信息進行歸因。(使用?Google Play Referrer API方式獲取:前面已經集成依賴)

/*** 獲取安裝來源信息的函數* 在application中調用這個方法*/
private fun getInstallReferrer(applicationContext:Context) {val installReferrerClient = InstallReferrerClient.newBuilder(applicationContext).build()installReferrerClient.startConnection(object : InstallReferrerStateListener {override fun onInstallReferrerSetupFinished(responseCode: Int) {when (responseCode) {InstallReferrerClient.InstallReferrerResponse.OK -> {val response: ReferrerDetails = installReferrerClient.installReferrerval referrerUrl: String = response.installReferrerval referrerClickTime: Long = response.referrerClickTimestampSecondsval appInstallTime: Long = response.installBeginTimestampSeconds// 這里可以處理安裝來源信息// ...// 將安裝來源信息傳遞給 Adjust SDKAdjust.setReferrer(referrerUrl, applicationContext)//斷開服務連接installReferrerClient.endConnection()}// ...}}override fun onInstallReferrerServiceDisconnected() {// 安裝來源服務斷開連接// ...}})
}

7、初始化(Application 類中onCreate?方法。)

         //配置Adjustval environment = if (BuildConfig.IS_DEBUG) {AdjustConfig.ENVIRONMENT_SANDBOX} else {AdjustConfig.ENVIRONMENT_PRODUCTION}val config = AdjustConfig(this, "{YourAppToken}", environment)config.setLogLevel(LogLevel.VERBOSE)Adjust.onCreate(config)

注意:在進行測試時,應當確保將環境設置為?AdjustConfig.ENVIRONMENT_SANDBOX?。請在向 App Store 提交應用程序前將此設為?AdjustConfig.ENVIRONMENT_PRODUCTION?。

8、設置會話跟蹤

        registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}override fun onActivityStarted(activity: Activity) {}override fun onActivityResumed(activity: Activity) {Adjust.onResume()}override fun onActivityPaused(activity: Activity) {Adjust.onPause()}override fun onActivityStopped(activity: Activity) {}override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}override fun onActivityDestroyed(activity: Activity) {}})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167163.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Aop面向切面實現開發日志收集打印一文輕松搞定,內附詳細圖文示例+源碼自取

目錄 介紹 動態代理 jdk動態代理 cglib動態代理 注解實現Aop 添加必須依賴 添加Atm類 (主業務邏輯代碼塊) 定義打印log方法(提取公共代碼邏輯塊) 啟用代理 切點表達式 Aop通知類型 前置通知(Before) 后置通知(After) 正常結束通知(AfterReturning) 異常結束通知…

樹莓派上使用Nginx通過內網穿透實現無公網IP訪問內網本地站點

前言 安裝 Nginx&#xff08;發音為“engine-x”&#xff09;可以將您的樹莓派變成一個強大的 Web 服務器&#xff0c;可以用于托管網站或 Web 應用程序。相比其他 Web 服務器&#xff0c;Nginx 的內存占用率非常低&#xff0c;可以在樹莓派等資源受限的設備上運行。同時結合c…

XTU OJ 1146 矩陣乘法學習筆記

原題 題目描述 給你兩個矩陣A(n*k),B(k*m),請求A*B。 輸入 第一行是一個整數K&#xff0c;表示樣例的個數。 每個樣例包含兩個矩陣A和B。 每個矩陣的第一行是兩個整數n,m,(1≤n,m≤10)表示矩陣的行和列 以后的n行&#xff0c;每行m個整數&#xff0c;每個整數的絕對值不超過…

如何讓大模型更好地完成知識圖譜推理?

? 論文標題&#xff1a; Making Large Language Models Perform Better in Knowledge Graph Completion 論文鏈接&#xff1a; https://arxiv.org/abs/2310.06671 代碼鏈接&#xff1a;GitHub - zjukg/KoPA: [Paper][Preprint 2023] Making Large Language Models Perform Be…

node-red - 節點實戰總結1

node-red - 節點實戰總結1 二、功能2.1 循環(for\while) 三、網絡四、序列五、解析六、存儲七、協議7.1 modbus協議7.2 opcua 八、formats8.1 時間格式化與時區轉換 二、功能 2.1 循環(for\while) 安裝節點node-red-contrib-loop-processing,該節點支持三種方式的循環&#xf…

【SpringBoot】 This application has no explicit mapping for 解決方法

This application has no explicit mapping for 解決方法 This application has no explicit mapping for 解決方法一、背景二、原因三、解決方案方式一&#xff1a;方式二&#xff1a; 四、解決 This application has no explicit mapping for 解決方法 一、背景 在SpringBo…

奧特曼不是第一次被開除!離職YC系“被創始人要求離開”

明敏 西風 發自 凹非寺 量子位 | 公眾號 QbitAI 鈕祜祿奧特曼&#xff0c;竟然不是第一次被“掃地出門”&#xff1f;&#xff1f;&#xff01; 沒想到&#xff0c;OpenAI鬧劇剛稍微消停了一點&#xff0c;“前傳”馬上來了。 《華盛頓郵報》從知情人士處獲悉&#xff0c;奧…

java編程:使用遞歸 循環和位運算實現將10進制轉為2進制

1 遞歸 /*** 遞歸&#xff1a;十進制轉二進制* param decimal 待轉換的十進制數* param binary 轉換后的二進制數*/public static void decimalToBinaryByRecursion(int decimal,StringBuilder binary){if(decimal < 0){return;}decimalToBinaryByRecursion(decimal/2,bina…

3D卷積的理解

卷積核不僅需要在高寬這兩個維度上進行滑動&#xff0c;還需要在時間維度上進行滑動

前端設計問題:iframe

居中問題&#xff1a; 嘗試了一般的居中方法&#xff0c;無效果 display: flex;justify-content: center;align-items: center;放到導航欄下面不居中 放到頁面底部還是不居中 Code <iframe id"demo_sanshui" src"demo_sanshui.html" width"120%…

【現場問題】現場的zk出現問題,ES也出現問題,一個一個排查出來,服務器重啟了

湖南現場 zk出現問題ES出現問題了罪魁禍首&#xff0c;服務器重啟 zk出現問題 發現集群出現問題了&#xff0c;想都沒想就直接去重啟了&#xff0c;把三臺服務器都重啟 ES出現問題了 三臺機器只有一臺機器是有ES的&#xff0c;但是看了配置文件&#xff0c;發現這個ES是三臺…

centos7 openssh版本升級至 openssh-9.5p1

公司項目驗收提示ssh版本存在漏洞&#xff0c;要求升級至最高版本&#xff0c;這里做個記錄 默認版本 [rootlocalhost ~]# sshd -v unknown option -- v OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017yum groupinstall -y "Development Tools" yum install -y …

[HCIE] IPSec-VPN (IKE自動模式)

概念&#xff1a; IKE&#xff1a;因特網密鑰交換 實驗目標&#xff1a;pc1與pc2互通 步驟1&#xff1a;R1與R3配置默認路由 R1&#xff1a; ip route-static 0.0.0.0 0.0.0.0 12.1.1.2 R2&#xff1a; ip route-static 0.0.0.0 0.0.0.0 23.1.1.2 步驟2&#xff1a;配ACL…

Postgresql在ubuntu 22.04上遭遇OOM的處理方法

OOM機制就是kill那些占用內存多且優先級低的進程以此來保證操作系統內核的正常運轉&#xff0c;一旦我們關閉OOM可能會導致操作系統內核奔潰。 https://manpages.ubuntu.com/manpages/jammy/en/man1/choom.1.html Linux kernel uses the badness heuristic to select which pro…

工業級5G路由器:穩定性更高,網絡速度更快!

隨著5G技術的發展&#xff0c;5G路由器也越來越受到人們的關注。特別是工業級5G路由器&#xff0c;它的應用范圍更廣&#xff0c;穩定性更高&#xff0c;網絡速度更快&#xff0c;已成為許多企業和工業領域的必備選擇。 一、工業級5G路由器的特點 工業級5G路由器具有很多獨特的…

利用MATLAB進行矩陣運算

一、畫出y1/(x3)的函數曲線&#xff0c;x∈[0, 200]。 程序&#xff1a; x0:0.01:200; y(3x).^(-1); plot(x,y) 結果&#xff1a; 二、生成一個信號&#xff1a;xsin(2*pi*t)cos(4*pi*t) 程序&#xff1a; syms t; xsin(2*pi*t).*cos(4*pi*t); fplot(x,[0 pi]); 結果&…

MyBatis - 自定義 ResultMap 返回數據與數據庫查詢不一致

問題描述 最近遇到一個查詢列表問題&#xff0c;發現實際數據庫查詢 4 條數據&#xff0c;但是經過程序就是 3 條&#xff0c;一開始懷疑是不是自己程序做了去重啥的&#xff0c;一頓排查猛如虎發現并沒有&#xff0c;后來看了下 resultMap 的機制的坑~ <resultMap id"…

electerm 跨平臺的終端 /ssh/sftp 客戶端

文章目錄 electerm功能特性主題配色 electerm 每個程序員基本都離開SSH鏈接工具,目前市場上好用的基本都是收費的 給大家推薦一款國人開發的開源鏈接工具https://github.com/electerm/electerm 到目前為止star已經9.5K了,非常受歡迎 功能特性 支持ssh,telnet,serialport,本地和…

使用AndResGuard報錯:copy res file not in resources.arsc file:Ezi.xml

Android使用AndResGuard進行資源混淆&#xff0c;壓縮。 源碼地址&#xff1a;GitHub - shwenzhang/AndResGuard: proguard resource for Android by wechat team 集成完成后編譯過程中出現如下錯誤&#xff1a; 14:57:05 copy res file not in resources.arsc file:IUk.xml…

CMake API使用指南

文章目錄 CMake 的基本語法和用法1. CMakeLists.txt 基本結構2. 變量和宏3. 條件語句4. 循環語句5. 定義和使用函數6. 導入庫和鏈接庫7. 設置編譯器選項 message1. 顯示普通消息&#xff1a;2. 顯示帶模式的消息&#xff1a;3. 顯示變量值&#xff1a;4. 顯示多行消息&#xff…