Commit 86b85cda authored by wanglei's avatar wanglei

Merge branch 'master' of gitlab.huolea.com:koko/data-recovery-white

parents a1cf9db7 f576c13a
...@@ -5,6 +5,7 @@ import android.app.Activity ...@@ -5,6 +5,7 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import com.base.datarecovery.activity.SplashActivity import com.base.datarecovery.activity.SplashActivity
import com.base.datarecovery.ads.AdmobMaxHelper import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.ads.admob.AdmobOpenUtils import com.base.datarecovery.ads.admob.AdmobOpenUtils
...@@ -67,7 +68,6 @@ class MyApplication : BaseApplication() { ...@@ -67,7 +68,6 @@ class MyApplication : BaseApplication() {
} else { } else {
initAdMax() initAdMax()
} }
InstallHelps.init()
MainScope().launch(Dispatchers.Main) { MainScope().launch(Dispatchers.Main) {
val deferred = async(Dispatchers.IO) { val deferred = async(Dispatchers.IO) {
......
...@@ -103,7 +103,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -103,7 +103,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
} else { } else {
binding.tvInfo.text = "No junk files found." binding.tvInfo.text = "No junk files found."
} }
AppPreferences.getInstance().put("last_use_junk_cleaner", System.currentTimeMillis()) AppPreferences.getInstance()
.put("last_use_junk_cleaner", System.currentTimeMillis())
} }
else -> {} else -> {}
...@@ -116,17 +117,26 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -116,17 +117,26 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
AdmobMaxHelper.admobMaxShowInterstitialAd(this@ResultActivity){ val s = AppPreferences.getInstance().getString("isShowBackIntAd", "0").toIntOrNull()
?: 0
if (s == 1) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this@ResultActivity) {
finishToMain()
}
} else {
finishToMain() finishToMain()
} }
} }
}) })
binding.ivBack.setOnClickListener { binding.ivBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
AdmobNativeUtils.showNativeAd(this@ResultActivity, binding.flAd, R.layout.layout_native_custom_white) AdmobNativeUtils.showNativeAd(
this@ResultActivity,
binding.flAd,
R.layout.layout_native_custom_white
)
} }
override fun onDestroy() { override fun onDestroy() {
......
...@@ -7,6 +7,7 @@ import android.net.Uri ...@@ -7,6 +7,7 @@ import android.net.Uri
import android.text.SpannableString import android.text.SpannableString
import android.text.Spanned import android.text.Spanned
import android.text.style.UnderlineSpan import android.text.style.UnderlineSpan
import android.util.Log
import android.view.View import android.view.View
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.MyApplication import com.base.datarecovery.MyApplication
...@@ -87,6 +88,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -87,6 +88,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
} else { } else {
LogEx.logDebug(TAG, "load max") LogEx.logDebug(TAG, "load max")
maxInitAction = { maxInitAction = {
Log.d(TAG,"max init suc")
AdMaxOpenUtils.loadAppOpenAd(this) AdMaxOpenUtils.loadAppOpenAd(this)
AdMaxInterstitialUtils.loadInterstitialAd(this) AdMaxInterstitialUtils.loadInterstitialAd(this)
} }
......
package com.base.datarecovery.ads.max package com.base.datarecovery.ads.max
import android.app.Activity import android.app.Activity
import android.os.Bundle
import com.applovin.mediation.MaxAd import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdRevenueListener
import com.applovin.sdk.AppLovinSdk
import com.base.datarecovery.help.BaseApplication
import com.base.datarecovery.utils.EventUtils import com.base.datarecovery.utils.EventUtils
import com.facebook.FacebookSdk
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.ktx.Firebase
import org.json.JSONObject import org.json.JSONObject
object AdMaxEvent { object AdMaxEvent {
fun clickAd(nativeAd: MaxAd, adUnit: String) { fun pullAd(ad: MaxAd?, adUnit: String, error: String? = null, reqId: String? = null) {
// val response = responseInfo?.adapterResponses?.getOrNull(0)
val obj = JSONObject() val obj = JSONObject()
// obj.put("source", response?.adSourceName) obj.put("UnitId", ad?.adUnitId)
obj.put("source", nativeAd.dspName)
obj.put("ad_unit", adUnit) obj.put("ad_unit", adUnit)
obj.put(
val credentials = mapOf( "creativeId",
"placementid" to nativeAd.placement, ad?.creativeId
"appid" to nativeAd.adUnitId,
// "pubid" to
) )
// obj.put("credentials", credentials.toString()) obj.put("req_id", reqId)
// obj.put("session_id", responseInfo?.responseId) obj.put("status", if (ad == null) "0" else "1")
// obj.put("networkname", responseInfo?.mediationAdapterClassName) obj.put("networkname", ad?.networkName)
obj.put("networkname", nativeAd.networkName) obj.put("placement", ad?.placement)
if (adUnit != "nativeAd") { obj.put("networkplacement", ad?.networkPlacement)
EventUtils.event("ad_click", ext = obj) obj.put("requestLatencyMillis", ad?.requestLatencyMillis)
obj.put("valueMicros", ad?.revenue?.times(1000000))
if (error == null) {
obj.put("status", "1")
} else { } else {
EventUtils.event("bigimage_ad_click", ext = obj) obj.put("errMsg", error)
obj.put("status", "2")
} }
EventUtils.event("ad_pull", ext = obj)
} }
fun showAd(nativeAd: MaxAd, adUnit: String, activity: Activity? = null) { fun clickAd(ad: MaxAd?, adUnit: String) {
// val response = responseInfo?.adapterResponses?.getOrNull(0)
val obj = JSONObject() val obj = JSONObject()
// obj.put("source", response?.adSourceName) obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit) obj.put("ad_unit", adUnit)
obj.put("networkname", nativeAd.networkName) obj.put(
// val credentials = mapOf( "creativeId",
// "placementid" to response?.credentials?.get("placementid"), ad?.creativeId
// "appid" to response?.credentials?.get("appid"), )
// "pubid" to response?.credentials?.get("pubid") obj.put("networkname", ad?.networkName)
// ) obj.put("placement", ad?.placement)
// obj.put("credentials", credentials.toString()) obj.put("networkplacement", ad?.networkPlacement)
// obj.put("session_id", responseInfo?.responseId) obj.put("requestLatencyMillis", ad?.requestLatencyMillis)
obj.put("from", activity?.javaClass?.simpleName) obj.put("valueMicros", ad?.revenue)
if (adUnit != "nativeAd") { EventUtils.event("ad_click", ext = obj)
EventUtils.event("ad_show", ext = obj) }
} else {
EventUtils.event("bigimage_ad_show", ext = obj) fun showAd(ad: MaxAd?, adUnit: String) {
val obj = JSONObject()
obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit)
obj.put(
"creativeId",
ad?.creativeId
)
obj.put("networkname", ad?.networkName)
obj.put("placement", ad?.placement)
obj.put("networkplacement", ad?.networkPlacement)
obj.put("requestLatencyMillis", ad?.requestLatencyMillis)
obj.put("valueMicros", ad?.revenue)
EventUtils.event("ad_show", ext = obj)
}
private val taichiPref = FacebookSdk.getApplicationContext()
.getSharedPreferences("TaichiTroasCache", 0)
private val taichiSharedPreferencesEditor = taichiPref.edit()
class EventOnPaidEventListener : MaxAdRevenueListener {
override fun onAdRevenuePaid(ad: MaxAd) {
val params = Bundle()
val currentImpressionRevenue: Double = ad.revenue // In USD
val mFirebaseAnalytics = FirebaseAnalytics.getInstance(BaseApplication.context)
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin")
params.putString(FirebaseAnalytics.Param.AD_SOURCE, ad.networkName)
params.putString(FirebaseAnalytics.Param.AD_FORMAT, ad.format.getDisplayName())
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, ad.adUnitId)
params.putDouble(FirebaseAnalytics.Param.VALUE, currentImpressionRevenue)
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD")
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params)
mFirebaseAnalytics.logEvent("Ad_Impression_Revenue", params)
val previousTaichiTroasCache = taichiPref.getFloat("TaichiTroasCache", 0f)
val currentTaichiTroasCache = previousTaichiTroasCache + currentImpressionRevenue
if (currentTaichiTroasCache >= 0.01) {
val roasbundle = Bundle()
roasbundle.putDouble(FirebaseAnalytics.Param.VALUE, currentTaichiTroasCache)
roasbundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD")///(Required)tROAS事件必须
mFirebaseAnalytics.logEvent("Total_Ads_Revenue_001", roasbundle) // 给Taichi用
taichiSharedPreferencesEditor.putFloat("TaichiTroasCache", 0f)//重新清零,开始计算
} else {
taichiSharedPreferencesEditor.putFloat(
"TaichiTroasCache",
currentTaichiTroasCache.toFloat()
)
taichiSharedPreferencesEditor.commit()
}
val obj = JSONObject()
val revenue = ad.revenue
val countryCode =
AppLovinSdk.getInstance(BaseApplication.context).configuration.countryCode
val networkName = ad.networkName
val adUnitId = ad.adUnitId
val adFormat = ad.format
val placement = ad.placement
val networkPlacement = ad.networkPlacement
obj.put("valueMicros", revenue)
obj.put("currencyCode", countryCode)
obj.put("adUnitId", adUnitId)
obj.put("networkName", networkName)
obj.put("adFormat", adFormat)
obj.put("placement", placement)
obj.put("networkPlacement", networkPlacement)
EventUtils.event("ad_price", ext = obj)
} }
} }
} }
\ No newline at end of file
...@@ -13,6 +13,7 @@ import com.base.datarecovery.utils.EventUtils ...@@ -13,6 +13,7 @@ import com.base.datarecovery.utils.EventUtils
import com.base.datarecovery.utils.LogEx import com.base.datarecovery.utils.LogEx
import com.base.datarecovery.view.CustomDialog import com.base.datarecovery.view.CustomDialog
import org.json.JSONObject import org.json.JSONObject
import java.util.UUID
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlin.math.min import kotlin.math.min
import kotlin.math.pow import kotlin.math.pow
...@@ -31,6 +32,12 @@ object AdMaxInterstitialUtils { ...@@ -31,6 +32,12 @@ object AdMaxInterstitialUtils {
private fun setListener(activity: Activity) { private fun setListener(activity: Activity) {
if (interstitialAd == null) { if (interstitialAd == null) {
val reqId = UUID.randomUUID().toString()
val obj = JSONObject()
obj.put("req_id", reqId)
obj.put("ad_type", "interAd")
EventUtils.event("ad_pull_start", ext = obj)
interstitialAd = MaxInterstitialAd(ConfigHelper.interAdMaxId, activity) interstitialAd = MaxInterstitialAd(ConfigHelper.interAdMaxId, activity)
interstitialAd?.setListener(object : MaxAdListener { interstitialAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) { override fun onAdLoaded(p0: MaxAd) {
...@@ -38,10 +45,12 @@ object AdMaxInterstitialUtils { ...@@ -38,10 +45,12 @@ object AdMaxInterstitialUtils {
loadingListener?.invoke() loadingListener?.invoke()
interLoadTime = System.currentTimeMillis() interLoadTime = System.currentTimeMillis()
retryAttempt = 0 retryAttempt = 0
AdMaxEvent.pullAd(p0,"interAd",reqId = reqId)
} }
override fun onAdLoadFailed(p0: String, p1: MaxError) { override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed") LogEx.logDebug(TAG, "onAdLoadFailed")
AdMaxEvent.pullAd(null,"interAd",reqId = reqId)
AdDisplayUtils.getInstance().incrementAdRequestFailCount() AdDisplayUtils.getInstance().incrementAdRequestFailCount()
retryAttempt++ retryAttempt++
LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt") LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt")
...@@ -107,6 +116,7 @@ object AdMaxInterstitialUtils { ...@@ -107,6 +116,7 @@ object AdMaxInterstitialUtils {
} }
this.onHidden = onHidden this.onHidden = onHidden
interstitialAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener())
if (interstitialAd?.isReady == true) { if (interstitialAd?.isReady == true) {
LogEx.logDebug(TAG, "isReady=true") LogEx.logDebug(TAG, "isReady=true")
interstitialAd?.showAd() interstitialAd?.showAd()
......
...@@ -32,7 +32,7 @@ object AdMaxOpenUtils { ...@@ -32,7 +32,7 @@ object AdMaxOpenUtils {
} }
override fun onAdLoadFailed(p0: String, p1: MaxError) { override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed") LogEx.logDebug(TAG, "onAdLoadFailed:"+p1.message.toString())
onHidden?.invoke() onHidden?.invoke()
AdDisplayUtils.getInstance().incrementAdRequestFailCount() AdDisplayUtils.getInstance().incrementAdRequestFailCount()
} }
......
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