Commit 32caa541 authored by wanglei's avatar wanglei

[同步]installReferrer

parent 813e956b
......@@ -33,6 +33,8 @@ import com.rgt.superr.push.receiver.ScreenStatusReceiver
import com.rgt.superr.ui.batteryinfo.BatteryReceiver.Companion.registerBatteryReceiver
import com.rgt.superr.ui.splash.SplashActivity
import com.facebook.appevents.AppEventsLogger
import com.rgt.superr.SpConstObject.appUuid
import com.rgt.superr.SpConstObject.gid
import com.rgt.superr.business.push.receiver.AlarmReceiver.Companion.startAlarm
import com.rgt.superr.business.push.timer.TimerManager.Companion.changeTimer
import com.rgt.superr.business.push.work.RepeatingWorker.Companion.schedulePeriodicWork
......@@ -102,7 +104,7 @@ class MyApplication : Application() {
try {
val info: AdvertisingIdClient.Info = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext)
val advertisingId = info.id
AppPreferences.getInstance().put("gid", advertisingId)
gid = advertisingId ?: "null"
} catch (e: Exception) {
EventUtils.event("gid_exception")
}
......@@ -114,13 +116,12 @@ class MyApplication : Application() {
}
private fun initUUid() {
uuid = AppPreferences.getInstance().getString("uuid", "")
uuid = appUuid
if (TextUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString() + System.currentTimeMillis()
AppPreferences.getInstance().put("uuid", uuid)
LogEx.logDebug(TAG, "uuid=$uuid")
appUuid = uuid
}
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
LogEx.logDebug(TAG, "uuid=${uuid}")
}
fun initApp() {
......
......@@ -5,6 +5,24 @@ import java.util.Locale
object SpConstObject {
var appUuid = ""
get() {
return AppPreferences.getInstance().getString("uuid", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("uuid", value, true)
}
var gid = ""
get() {
return AppPreferences.getInstance().getString("gid", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("gid", value, true)
}
//是否已经点击start
var ifAgreePrivacy = false
......@@ -91,5 +109,4 @@ object SpConstObject {
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import android.os.Build
import com.rgt.superr.BuildConfig
import com.rgt.superr.SpConstObject.ifAgreePrivacy
import com.rgt.superr.GlobalConfig
import com.rgt.superr.SpConstObject.appUuid
import com.rgt.superr.SpConstObject.gid
import com.rgt.superr.bean.config.ConfigBean
import com.rgt.superr.utils.AppPreferences
import com.rgt.superr.utils.LogEx
......@@ -50,8 +52,8 @@ object EventUtils {
jsonObject.put("${packageName}_4", Build.MANUFACTURER) // 手机厂商
jsonObject.put("${packageName}_5", Build.VERSION.SDK_INT) // android系统版本号
jsonObject.put("${packageName}_8", BuildConfig.VERSION_NAME) // APP版本号,如:1.1.2
jsonObject.put("${packageName}_9", AppPreferences.getInstance().getString("uuid", "")) // Android id
jsonObject.put("${packageName}_10", AppPreferences.getInstance().getString("gid", "")) // Google advertiser id
jsonObject.put("${packageName}_9", appUuid) // Android id
jsonObject.put("${packageName}_10", gid) // Google advertiser id
jsonObject.put("${packageName}_13", "android") // platform 默认android
jsonObject.put("${packageName}_14", BuildConfig.VERSION_CODE)// android版本,如:13
jsonObject.put("${packageName}_15", "google") // 渠道标识
......
......@@ -2,27 +2,67 @@ package com.rgt.superr.business.helper
import com.android.installreferrer.api.InstallReferrerClient
import com.android.installreferrer.api.InstallReferrerStateListener
import com.android.installreferrer.api.ReferrerDetails
import com.rgt.superr.BuildConfig
import com.rgt.superr.MyApplication
import com.rgt.superr.utils.AppPreferences
import com.rgt.superr.utils.LogEx
import org.json.JSONObject
/**
* call before agree
*/
object InstallHelps {
private val TAG = "InstallHelps"
var installReferrer = ""
get() {
return AppPreferences.getInstance().getString("install_referrer", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("install_referrer", value, true)
}
//用户来源
var installSource = ""
get() {
return AppPreferences.getInstance().getString("install_source", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("install_source", value, true)
}
//用户是否上报过
var installEvent = false
get() {
return AppPreferences.getInstance().getBoolean("installEvent", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("installEvent", value, true)
}
fun eventInstallReferrer(response: ReferrerDetails) {
val obj = JSONObject()
obj.put("referrerUrl", response.installReferrer)
obj.put("referrerClickTime", response.referrerClickTimestampSeconds)
obj.put("appInstallTime", response.installBeginTimestampSeconds)
obj.put("instantExperienceLaunched", response.installReferrer.toString())
EventUtils.event("install_referrer", ext = obj)
}
fun init(requestCfg: () -> Unit) {
val installReferrer = AppPreferences.getInstance().getString("install_referrer", "")
if (installReferrer.isNotEmpty()) {
if (installEvent) {
requestCfg.invoke()
return
}
val referrerClient = InstallReferrerClient.newBuilder(MyApplication.appContext).build()
referrerClient.startConnection(object : InstallReferrerStateListener {
override fun onInstallReferrerSetupFinished(responseCode: Int) {
......@@ -30,31 +70,26 @@ object InstallHelps {
when (responseCode) {
InstallReferrerClient.InstallReferrerResponse.OK -> {
val response = referrerClient.installReferrer
val installInfo = response.installReferrer
val obj = JSONObject()
obj.put("referrerUrl", response.installReferrer)
obj.put("referrerClickTime", response.referrerClickTimestampSeconds)
obj.put("appInstallTime", response.installBeginTimestampSeconds)
obj.put("instantExperienceLaunched", installInfo.toString())
EventUtils.event("install_referrer", ext = obj)
LogEx.logDebug(TAG, "referrerUrl=${response.installReferrer}")
AppPreferences.getInstance().put("install_referrer", response.installReferrer)
if (listOf(
installReferrer = response.installReferrer
eventInstallReferrer(response)
installSource = if (listOf(
"gclid",
"facebook",
"instagram"
).all { !installInfo.contains(it, true) }
).all { !response.installReferrer.contains(it, true) }
) {
//自然用户
if (BuildConfig.DEBUG) {
AppPreferences.getInstance().put("install_source", "channel")
"channel"
} else {
AppPreferences.getInstance().put("install_source", "origin")
"origin"
}
} else {
//渠道用户
AppPreferences.getInstance().put("install_source", "channel")
"channel"
}
requestCfg()
}
......
......@@ -10,6 +10,9 @@ import com.rgt.superr.bean.config.PopupConfigBean
import com.rgt.superr.utils.AppPreferences
import com.rgt.superr.utils.LogEx
import com.google.gson.Gson
import com.rgt.superr.SpConstObject.appUuid
import com.rgt.superr.SpConstObject.gid
import com.rgt.superr.business.helper.InstallHelps.installReferrer
import okhttp3.Call
import okhttp3.Callback
import okhttp3.OkHttpClient
......@@ -54,7 +57,7 @@ object NewComUtils {
val appCode = packageName.substringAfter(PACKAGE_NAME_PREFIX).take(5).toLowerCase(Locale.getDefault())
val bRefer = Base64.encodeToString(
AppPreferences.getInstance().getString("install_referrer", "").toByteArray(),
installReferrer.toByteArray(),
Base64.DEFAULT
)
......@@ -62,8 +65,8 @@ object NewComUtils {
"&referrer=${bRefer}" +
"&vn=${BuildConfig.VERSION_NAME}" +
"&vc=${BuildConfig.VERSION_CODE}" +
"&device=${AppPreferences.getInstance().getString("gid", "")}" +
"&aid=${AppPreferences.getInstance().getString("uuid", "")}"
"&device=${appUuid}" +
"&aid=${gid}"
if (BuildConfig.DEBUG) {
s = "$s&mode=4"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment