Commit 32caa541 authored by wanglei's avatar wanglei

[同步]installReferrer

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