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
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import com.base.datarecovery.activity.SplashActivity
import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.ads.admob.AdmobOpenUtils
......@@ -67,7 +68,6 @@ class MyApplication : BaseApplication() {
} else {
initAdMax()
}
InstallHelps.init()
MainScope().launch(Dispatchers.Main) {
val deferred = async(Dispatchers.IO) {
......
......@@ -103,7 +103,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
} else {
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 -> {}
......@@ -116,17 +117,26 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
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()
}
}
})
binding.ivBack.setOnClickListener {
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() {
......
......@@ -7,6 +7,7 @@ import android.net.Uri
import android.text.SpannableString
import android.text.Spanned
import android.text.style.UnderlineSpan
import android.util.Log
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.MyApplication
......@@ -87,6 +88,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
} else {
LogEx.logDebug(TAG, "load max")
maxInitAction = {
Log.d(TAG,"max init suc")
AdMaxOpenUtils.loadAppOpenAd(this)
AdMaxInterstitialUtils.loadInterstitialAd(this)
}
......
package com.base.datarecovery.ads.max
import android.app.Activity
import android.os.Bundle
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.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
object AdMaxEvent {
fun clickAd(nativeAd: MaxAd, adUnit: String) {
// val response = responseInfo?.adapterResponses?.getOrNull(0)
fun pullAd(ad: MaxAd?, adUnit: String, error: String? = null, reqId: String? = null) {
val obj = JSONObject()
// obj.put("source", response?.adSourceName)
obj.put("source", nativeAd.dspName)
obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit)
val credentials = mapOf(
"placementid" to nativeAd.placement,
"appid" to nativeAd.adUnitId,
// "pubid" to
obj.put(
"creativeId",
ad?.creativeId
)
// obj.put("credentials", credentials.toString())
// obj.put("session_id", responseInfo?.responseId)
// obj.put("networkname", responseInfo?.mediationAdapterClassName)
obj.put("networkname", nativeAd.networkName)
if (adUnit != "nativeAd") {
EventUtils.event("ad_click", ext = obj)
obj.put("req_id", reqId)
obj.put("status", if (ad == null) "0" else "1")
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?.times(1000000))
if (error == null) {
obj.put("status", "1")
} 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) {
// val response = responseInfo?.adapterResponses?.getOrNull(0)
fun clickAd(ad: MaxAd?, adUnit: String) {
val obj = JSONObject()
// obj.put("source", response?.adSourceName)
obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit)
obj.put("networkname", nativeAd.networkName)
// val credentials = mapOf(
// "placementid" to response?.credentials?.get("placementid"),
// "appid" to response?.credentials?.get("appid"),
// "pubid" to response?.credentials?.get("pubid")
// )
// obj.put("credentials", credentials.toString())
// obj.put("session_id", responseInfo?.responseId)
obj.put("from", activity?.javaClass?.simpleName)
if (adUnit != "nativeAd") {
EventUtils.event("ad_show", ext = obj)
} else {
EventUtils.event("bigimage_ad_show", ext = obj)
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_click", 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
import com.base.datarecovery.utils.LogEx
import com.base.datarecovery.view.CustomDialog
import org.json.JSONObject
import java.util.UUID
import java.util.concurrent.TimeUnit
import kotlin.math.min
import kotlin.math.pow
......@@ -31,6 +32,12 @@ object AdMaxInterstitialUtils {
private fun setListener(activity: Activity) {
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?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) {
......@@ -38,10 +45,12 @@ object AdMaxInterstitialUtils {
loadingListener?.invoke()
interLoadTime = System.currentTimeMillis()
retryAttempt = 0
AdMaxEvent.pullAd(p0,"interAd",reqId = reqId)
}
override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed")
AdMaxEvent.pullAd(null,"interAd",reqId = reqId)
AdDisplayUtils.getInstance().incrementAdRequestFailCount()
retryAttempt++
LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt")
......@@ -107,6 +116,7 @@ object AdMaxInterstitialUtils {
}
this.onHidden = onHidden
interstitialAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener())
if (interstitialAd?.isReady == true) {
LogEx.logDebug(TAG, "isReady=true")
interstitialAd?.showAd()
......
......@@ -32,7 +32,7 @@ object AdMaxOpenUtils {
}
override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed")
LogEx.logDebug(TAG, "onAdLoadFailed:"+p1.message.toString())
onHidden?.invoke()
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