Commit c2ab1805 authored by wanglei's avatar wanglei

...

parent 9c58d64f
...@@ -8,11 +8,11 @@ import com.base.browserwhite.R ...@@ -8,11 +8,11 @@ import com.base.browserwhite.R
import com.base.browserwhite.ads.admob.AdmobInterstitialUtils import com.base.browserwhite.ads.admob.AdmobInterstitialUtils
import com.base.browserwhite.ads.admob.AdmobNativeUtils import com.base.browserwhite.ads.admob.AdmobNativeUtils
import com.base.browserwhite.ads.admob.AdmobOpenUtils import com.base.browserwhite.ads.admob.AdmobOpenUtils
import com.base.browserwhite.ads.max.AdMaxInit //import com.base.browserwhite.ads.max.AdMaxInit
import com.base.browserwhite.ads.max.AdMaxInit.initAdMax //import com.base.browserwhite.ads.max.AdMaxInit.initAdMax
import com.base.browserwhite.ads.max.AdMaxInterstitialUtils //import com.base.browserwhite.ads.max.AdMaxInterstitialUtils
import com.base.browserwhite.ads.max.AdMaxNativeUtils //import com.base.browserwhite.ads.max.AdMaxNativeUtils
import com.base.browserwhite.ads.max.AdMaxOpenUtils //import com.base.browserwhite.ads.max.AdMaxOpenUtils
import com.base.browserwhite.help.EventUtils import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.AppPreferences import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
...@@ -87,7 +87,7 @@ object AdmobMaxHelper { ...@@ -87,7 +87,7 @@ object AdmobMaxHelper {
} else { } else {
if (!isAdInit.get()) { if (!isAdInit.get()) {
LogEx.logDebug(TAG, "init sp AdMax") LogEx.logDebug(TAG, "init sp AdMax")
MyApplication.context.initAdMax() // MyApplication.context.initAdMax()
} }
} }
} }
...@@ -119,9 +119,9 @@ object AdmobMaxHelper { ...@@ -119,9 +119,9 @@ object AdmobMaxHelper {
onHidden?.invoke(it) onHidden?.invoke(it)
} }
} else { } else {
AdMaxInterstitialUtils.showInterstitialAd(activity) { // AdMaxInterstitialUtils.showInterstitialAd(activity) {
onHidden?.invoke(true) // onHidden?.invoke(true)
} // }
} }
} }
...@@ -137,9 +137,9 @@ object AdmobMaxHelper { ...@@ -137,9 +137,9 @@ object AdmobMaxHelper {
if (getSpAdmobTrueMaxFalse()) { if (getSpAdmobTrueMaxFalse()) {
AdmobOpenUtils.showAppOpenAd(activity, showBefore = showBeforeAction, onHidden = onHidden) AdmobOpenUtils.showAppOpenAd(activity, showBefore = showBeforeAction, onHidden = onHidden)
} else { } else {
AdMaxOpenUtils.showAppOpenAd(activity, loadCallBack = showBeforeAction) { // AdMaxOpenUtils.showAppOpenAd(activity, loadCallBack = showBeforeAction) {
onHidden?.invoke(true) // onHidden?.invoke(true)
} // }
} }
} }
...@@ -166,7 +166,7 @@ object AdmobMaxHelper { ...@@ -166,7 +166,7 @@ object AdmobMaxHelper {
// if (where == 2) { // if (where == 2) {
// layout = R.layout.layout_max_native_big_2 // layout = R.layout.layout_max_native_big_2
// } // }
AdMaxNativeUtils.showNativeAd(activity, parent, layout) // AdMaxNativeUtils.showNativeAd(activity, parent, layout)
} }
} }
...@@ -182,13 +182,13 @@ object AdmobMaxHelper { ...@@ -182,13 +182,13 @@ object AdmobMaxHelper {
} else { } else {
if (isAdInit.get()) { if (isAdInit.get()) {
// com.base.browserwhite.ads.max.AdMaxOpenUtils.loadAppOpenAd(activity) // com.base.browserwhite.ads.max.AdMaxOpenUtils.loadAppOpenAd(activity)
AdMaxInterstitialUtils.loadInterstitialAd(activity) // AdMaxInterstitialUtils.loadInterstitialAd(activity)
} else { } else {
AdMaxInit.maxInitAction = { // AdMaxInit.maxInitAction = {
Log.d(TAG, "max init suc") Log.d(TAG, "max init suc")
// com.base.browserwhite.ads.max.AdMaxOpenUtils.loadAppOpenAd(activity) // com.base.browserwhite.ads.max.AdMaxOpenUtils.loadAppOpenAd(activity)
// com.base.browserwhite.ads.max.AdMaxInterstitialUtils.loadInterstitialAd(activity) // com.base.browserwhite.ads.max.AdMaxInterstitialUtils.loadInterstitialAd(activity)
} // }
} }
} }
} }
......
package com.base.browserwhite.ads.max //package com.base.browserwhite.ads.max
//
import android.os.Bundle //import android.os.Bundle
import com.applovin.mediation.MaxAd //import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdRevenueListener //import com.applovin.mediation.MaxAdRevenueListener
import com.applovin.sdk.AppLovinSdk //import com.applovin.sdk.AppLovinSdk
import com.base.browserwhite.MyApplication //import com.base.browserwhite.MyApplication
import com.base.browserwhite.help.EventUtils //import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.LogEx //import com.base.browserwhite.utils.LogEx
import com.facebook.FacebookSdk //import com.facebook.FacebookSdk
import com.facebook.appevents.AppEventsConstants //import com.facebook.appevents.AppEventsConstants
import com.facebook.appevents.AppEventsLogger //import com.facebook.appevents.AppEventsLogger
import com.google.firebase.analytics.FirebaseAnalytics //import com.google.firebase.analytics.FirebaseAnalytics
import org.json.JSONObject //import org.json.JSONObject
//
object AdMaxEvent { //object AdMaxEvent {
fun pullAd(ad: MaxAd?, adUnit: String, error: String? = null, reqId: String? = null, code: Int? = null) { // fun pullAd(ad: MaxAd?, adUnit: String, error: String? = null, reqId: String? = null, code: Int? = null) {
val obj = JSONObject() // val obj = JSONObject()
obj.put("UnitId", ad?.adUnitId) // obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit) // obj.put("ad_unit", adUnit)
obj.put( // obj.put(
"creativeId", // "creativeId",
ad?.creativeId // ad?.creativeId
) // )
obj.put("req_id", reqId) // obj.put("req_id", reqId)
obj.put("status", if (ad == null) "0" else "1") // obj.put("status", if (ad == null) "0" else "1")
obj.put("networkname", ad?.networkName) // obj.put("networkname", ad?.networkName)
obj.put("placement", ad?.placement) // obj.put("placement", ad?.placement)
obj.put("networkplacement", ad?.networkPlacement) // obj.put("networkplacement", ad?.networkPlacement)
obj.put("latency", ad?.requestLatencyMillis) // obj.put("latency", ad?.requestLatencyMillis)
obj.put("valueMicros", ad?.revenue) // obj.put("valueMicros", ad?.revenue)
if (error == null) { // if (error == null) {
obj.put("status", "1") // obj.put("status", "1")
} else { // } else {
obj.put("errMsg", error) // obj.put("errMsg", error)
obj.put("status", "2") // obj.put("status", "2")
} // }
EventUtils.event("ad_pull", ext = obj) // EventUtils.event("ad_pull", ext = obj)
} // }
//
fun clickAd(ad: MaxAd?, adUnit: String) { // fun clickAd(ad: MaxAd?, adUnit: String) {
//
val obj = JSONObject() // val obj = JSONObject()
obj.put("UnitId", ad?.adUnitId) // obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit) // obj.put("ad_unit", adUnit)
obj.put( // obj.put(
"creativeId", // "creativeId",
ad?.creativeId // ad?.creativeId
) // )
obj.put("networkname", ad?.networkName) // obj.put("networkname", ad?.networkName)
obj.put("placement", ad?.placement) // obj.put("placement", ad?.placement)
obj.put("networkplacement", ad?.networkPlacement) // obj.put("networkplacement", ad?.networkPlacement)
obj.put("latency", ad?.requestLatencyMillis) // obj.put("latency", ad?.requestLatencyMillis)
obj.put("valueMicros", ad?.revenue) // obj.put("valueMicros", ad?.revenue)
if (!adUnit.equals("nativeAd")) { // if (!adUnit.equals("nativeAd")) {
EventUtils.event("ad_click", ext = obj) // EventUtils.event("ad_click", ext = obj)
} else { // } else {
EventUtils.event("big_imgad_click", ext = obj) // EventUtils.event("big_imgad_click", ext = obj)
} // }
//
} // }
//
fun showAd(ad: MaxAd?, adUnit: String, activity: String?) { // fun showAd(ad: MaxAd?, adUnit: String, activity: String?) {
val obj = JSONObject() // val obj = JSONObject()
obj.put("UnitId", ad?.adUnitId) // obj.put("UnitId", ad?.adUnitId)
obj.put("ad_unit", adUnit) // obj.put("ad_unit", adUnit)
obj.put( // obj.put(
"creativeId", // "creativeId",
ad?.creativeId // ad?.creativeId
) // )
obj.put("networkname", ad?.networkName) // obj.put("networkname", ad?.networkName)
obj.put("placement", ad?.placement) // obj.put("placement", ad?.placement)
obj.put("networkplacement", ad?.networkPlacement) // obj.put("networkplacement", ad?.networkPlacement)
obj.put("latency", ad?.requestLatencyMillis) // obj.put("latency", ad?.requestLatencyMillis)
obj.put("valueMicros", ad?.revenue) // obj.put("valueMicros", ad?.revenue)
obj.put("from", activity) // obj.put("from", activity)
obj.put("mediation", "applovin") // obj.put("mediation", "applovin")
LogEx.logDebug("glc", "from: $activity") // LogEx.logDebug("glc", "from: $activity")
if (adUnit != "nativeAd") { // if (adUnit != "nativeAd") {
EventUtils.event("ad_show", ext = obj) // EventUtils.event("ad_show", ext = obj)
} else { // } else {
EventUtils.event("big_img_show", ext = obj) // EventUtils.event("big_img_show", ext = obj)
} // }
//
} // }
//
private val taichiPref = FacebookSdk.getApplicationContext() // private val taichiPref = FacebookSdk.getApplicationContext()
.getSharedPreferences("TaichiTroasCache", 0) // .getSharedPreferences("TaichiTroasCache", 0)
private val taichiSharedPreferencesEditor = taichiPref.edit() // private val taichiSharedPreferencesEditor = taichiPref.edit()
//
class EventOnPaidEventListener : MaxAdRevenueListener { // class EventOnPaidEventListener : MaxAdRevenueListener {
override fun onAdRevenuePaid(ad: MaxAd) { // override fun onAdRevenuePaid(ad: MaxAd) {
val params = Bundle() // val params = Bundle()
val currentImpressionRevenue: Double = ad.revenue // In USD // val currentImpressionRevenue: Double = ad.revenue // In USD
val mFirebaseAnalytics = FirebaseAnalytics.getInstance(MyApplication.context) // val mFirebaseAnalytics = FirebaseAnalytics.getInstance(MyApplication.context)
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin") // params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin")
params.putString(FirebaseAnalytics.Param.AD_SOURCE, ad.networkName) // params.putString(FirebaseAnalytics.Param.AD_SOURCE, ad.networkName)
params.putString(FirebaseAnalytics.Param.AD_FORMAT, ad.format.getDisplayName()) // params.putString(FirebaseAnalytics.Param.AD_FORMAT, ad.format.getDisplayName())
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, ad.adUnitId) // params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, ad.adUnitId)
params.putDouble(FirebaseAnalytics.Param.VALUE, currentImpressionRevenue) // params.putDouble(FirebaseAnalytics.Param.VALUE, currentImpressionRevenue)
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD") // params.putString(FirebaseAnalytics.Param.CURRENCY, "USD")
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params) // mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params)
mFirebaseAnalytics.logEvent("Ad_Impression_Revenue", params) // mFirebaseAnalytics.logEvent("Ad_Impression_Revenue", params)
val previousTaichiTroasCache = taichiPref.getFloat("TaichiTroasCache", 0f) // val previousTaichiTroasCache = taichiPref.getFloat("TaichiTroasCache", 0f)
val currentTaichiTroasCache = previousTaichiTroasCache + currentImpressionRevenue // val currentTaichiTroasCache = previousTaichiTroasCache + currentImpressionRevenue
if (currentTaichiTroasCache >= 0.01) { // if (currentTaichiTroasCache >= 0.01) {
val roasbundle = Bundle() // val roasbundle = Bundle()
roasbundle.putDouble(FirebaseAnalytics.Param.VALUE, currentTaichiTroasCache) // roasbundle.putDouble(FirebaseAnalytics.Param.VALUE, currentTaichiTroasCache)
roasbundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD")///(Required)tROAS事件必须 // roasbundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD")///(Required)tROAS事件必须
mFirebaseAnalytics.logEvent("Total_Ads_Revenue_001", roasbundle) // 给Taichi用 // mFirebaseAnalytics.logEvent("Total_Ads_Revenue_001", roasbundle) // 给Taichi用
taichiSharedPreferencesEditor.putFloat("TaichiTroasCache", 0f)//重新清零,开始计算 // taichiSharedPreferencesEditor.putFloat("TaichiTroasCache", 0f)//重新清零,开始计算
//
val logger = AppEventsLogger.newLogger(MyApplication.context) // val logger = AppEventsLogger.newLogger(MyApplication.context)
val parameters = Bundle() // val parameters = Bundle()
parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD") // parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD")
logger.logEvent("ad_value", currentTaichiTroasCache, parameters) // logger.logEvent("ad_value", currentTaichiTroasCache, parameters)
} else { // } else {
taichiSharedPreferencesEditor.putFloat( // taichiSharedPreferencesEditor.putFloat(
"TaichiTroasCache", // "TaichiTroasCache",
currentTaichiTroasCache.toFloat() // currentTaichiTroasCache.toFloat()
) // )
taichiSharedPreferencesEditor.commit() // taichiSharedPreferencesEditor.commit()
} // }
val obj = JSONObject() // val obj = JSONObject()
val revenue = ad.revenue // val revenue = ad.revenue
val countryCode = // val countryCode =
AppLovinSdk.getInstance(MyApplication.context).configuration.countryCode // AppLovinSdk.getInstance(MyApplication.context).configuration.countryCode
val networkName = ad.networkName // val networkName = ad.networkName
val adUnitId = ad.adUnitId // val adUnitId = ad.adUnitId
val adFormat = ad.format // val adFormat = ad.format
val placement = ad.placement // val placement = ad.placement
val networkPlacement = ad.networkPlacement // val networkPlacement = ad.networkPlacement
obj.put("valueMicros", revenue) // obj.put("valueMicros", revenue)
obj.put("currencyCode", countryCode) // obj.put("currencyCode", countryCode)
obj.put("adUnitId", adUnitId) // obj.put("adUnitId", adUnitId)
obj.put("networkName", networkName) // obj.put("networkName", networkName)
obj.put("adFormat", adFormat) // obj.put("adFormat", adFormat)
obj.put("placement", placement) // obj.put("placement", placement)
obj.put("networkPlacement", networkPlacement) // obj.put("networkPlacement", networkPlacement)
EventUtils.event("ad_price", ext = obj) // EventUtils.event("ad_price", ext = obj)
} // }
//
} // }
} //}
\ No newline at end of file \ No newline at end of file
package com.base.browserwhite.ads.max //package com.base.browserwhite.ads.max
//
import android.content.Context //import android.content.Context
import com.applovin.sdk.AppLovinMediationProvider //import com.applovin.sdk.AppLovinMediationProvider
import com.applovin.sdk.AppLovinSdk //import com.applovin.sdk.AppLovinSdk
import com.applovin.sdk.AppLovinSdkInitializationConfiguration //import com.applovin.sdk.AppLovinSdkInitializationConfiguration
import com.base.browserwhite.ads.AdmobMaxHelper.isAdInit //import com.base.browserwhite.ads.AdmobMaxHelper.isAdInit
import com.base.browserwhite.help.EventUtils //import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.LogEx //import com.base.browserwhite.utils.LogEx
import java.util.concurrent.Executors //import java.util.concurrent.Executors
//
object AdMaxInit { //object AdMaxInit {
//
private const val TAG = "AdMaxInit" // private const val TAG = "AdMaxInit"
var maxInitAction: (() -> Unit)? = null // var maxInitAction: (() -> Unit)? = null
//
fun Context.initAdMax() { // fun Context.initAdMax() {
// If you want to test your own AppLovin SDK key, change the value here and update the package name in the build.gradle // // If you want to test your own AppLovin SDK key, change the value here and update the package name in the build.gradle
// val YOUR_SDK_KEY = "05TMDQ5tZabpXQ45_UTbmEGNUtVAzSTzT6KmWQc5_CuWdzccS4DCITZoL3yIWUG3bbq60QC_d4WF28tUC4gVTF" //// val YOUR_SDK_KEY = "05TMDQ5tZabpXQ45_UTbmEGNUtVAzSTzT6KmWQc5_CuWdzccS4DCITZoL3yIWUG3bbq60QC_d4WF28tUC4gVTF"
val YOUR_SDK_KEY = "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW" // val YOUR_SDK_KEY = "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
//
val executor = Executors.newSingleThreadExecutor(); // val executor = Executors.newSingleThreadExecutor();
executor.execute { // executor.execute {
//
val initConfigBuilder = AppLovinSdkInitializationConfiguration.builder(YOUR_SDK_KEY, this) // val initConfigBuilder = AppLovinSdkInitializationConfiguration.builder(YOUR_SDK_KEY, this)
initConfigBuilder.mediationProvider = AppLovinMediationProvider.MAX // initConfigBuilder.mediationProvider = AppLovinMediationProvider.MAX
//
// Enable test mode by default for the current device. Cannot be run on the main thread. // // Enable test mode by default for the current device. Cannot be run on the main thread.
// val currentGaid = AdvertisingIdClient.getAdvertisingIdInfo(this).id //// val currentGaid = AdvertisingIdClient.getAdvertisingIdInfo(this).id
// if (currentGaid != null) { //// if (currentGaid != null) {
// initConfigBuilder.testDeviceAdvertisingIds = Collections.singletonList(currentGaid) //// initConfigBuilder.testDeviceAdvertisingIds = Collections.singletonList(currentGaid)
//// }
//
//
// // Initialize the AppLovin SDK
// val sdk = AppLovinSdk.getInstance(this)
// sdk.initialize(initConfigBuilder.build()) {
// LogEx.logDebug(TAG, "max init")
// isAdInit.set(true)
// maxInitAction?.invoke()
// maxInitAction = null
// EventUtils.event("MaxInit", "MaxInit")
// } // }
//
// executor.shutdown()
// Initialize the AppLovin SDK // }
val sdk = AppLovinSdk.getInstance(this) // }
sdk.initialize(initConfigBuilder.build()) { //}
LogEx.logDebug(TAG, "max init") \ No newline at end of file
isAdInit.set(true)
maxInitAction?.invoke()
maxInitAction = null
EventUtils.event("MaxInit", "MaxInit")
}
executor.shutdown()
}
}
}
\ No newline at end of file
package com.base.browserwhite.ads.max //package com.base.browserwhite.ads.max
//
import android.app.Activity //import android.app.Activity
import android.app.Dialog //import android.app.Dialog
import com.applovin.mediation.MaxAd //import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener //import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError //import com.applovin.mediation.MaxError
import com.applovin.mediation.ads.MaxInterstitialAd //import com.applovin.mediation.ads.MaxInterstitialAd
import com.base.browserwhite.R //import com.base.browserwhite.R
import com.base.browserwhite.ads.AdDisplayUtils //import com.base.browserwhite.ads.AdDisplayUtils
import com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing //import com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing
import com.base.browserwhite.ads.AdmobMaxHelper.lastShowedOnHiddenTime //import com.base.browserwhite.ads.AdmobMaxHelper.lastShowedOnHiddenTime
import com.base.browserwhite.ads.CustomDialog //import com.base.browserwhite.ads.CustomDialog
import com.base.browserwhite.help.ConfigHelper //import com.base.browserwhite.help.ConfigHelper
import com.base.browserwhite.help.EventUtils //import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.LogEx //import com.base.browserwhite.utils.LogEx
import org.json.JSONObject //import org.json.JSONObject
import java.util.UUID //import java.util.UUID
//
object AdMaxInterstitialUtils { //object AdMaxInterstitialUtils {
//
private const val TAG = "AdMaxInterstitialUtils" // private const val TAG = "AdMaxInterstitialUtils"
private var interstitialAd: MaxInterstitialAd? = null // private var interstitialAd: MaxInterstitialAd? = null
private var interLoadTime = Long.MAX_VALUE // private var interLoadTime = Long.MAX_VALUE
private var onHidden: (() -> Unit)? = null // private var onHidden: (() -> Unit)? = null
private var loadingListener: (() -> Unit)? = null // private var loadingListener: (() -> Unit)? = null
private var activityString: String = "" // private var activityString: String = ""
//
private fun setListener(activity: Activity) { // private fun setListener(activity: Activity) {
activityString = activity::class.java.toString().split(".").last() // activityString = activity::class.java.toString().split(".").last()
if (interstitialAd == null) { // if (interstitialAd == null) {
//
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) {
LogEx.logDebug(TAG, "onAdLoaded") // LogEx.logDebug(TAG, "onAdLoaded")
//
loadingListener?.invoke() // loadingListener?.invoke()
loadingListener = null // loadingListener = null
//
interLoadTime = System.currentTimeMillis() // interLoadTime = System.currentTimeMillis()
val reqId = UUID.randomUUID().toString() // val reqId = UUID.randomUUID().toString()
AdMaxEvent.pullAd(p0, "interAd", reqId = reqId) // 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")
val reqId = UUID.randomUUID().toString() // val reqId = UUID.randomUUID().toString()
AdMaxEvent.pullAd(null, "interAd", reqId = reqId, error = p1.message, code = p1.code) // AdMaxEvent.pullAd(null, "interAd", reqId = reqId, error = p1.message, code = p1.code)
AdDisplayUtils.getInstance().incrementAdRequestFailCount() // AdDisplayUtils.getInstance().incrementAdRequestFailCount()
//
loadingListener?.invoke() // loadingListener?.invoke()
loadingListener = null // loadingListener = null
} // }
//
override fun onAdDisplayed(p0: MaxAd) { // override fun onAdDisplayed(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdDisplayed") // LogEx.logDebug(TAG, "onAdDisplayed")
AdDisplayUtils.getInstance().incrementAdDisplayCount() // AdDisplayUtils.getInstance().incrementAdDisplayCount()
AdMaxEvent.showAd(p0, "interAd", activityString) // AdMaxEvent.showAd(p0, "interAd", activityString)
//
isInterOpenShowing = true // isInterOpenShowing = true
} // }
//
override fun onAdHidden(p0: MaxAd) { // override fun onAdHidden(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdHidden") // LogEx.logDebug(TAG, "onAdHidden")
onHidden?.invoke() // onHidden?.invoke()
onHidden = null // onHidden = null
AdMaxOpenUtils.loadAppOpenAd(activity) // AdMaxOpenUtils.loadAppOpenAd(activity)
// loadInterstitialAd(activity) //// loadInterstitialAd(activity)
//
isInterOpenShowing = false // isInterOpenShowing = false
lastShowedOnHiddenTime = System.currentTimeMillis() // lastShowedOnHiddenTime = System.currentTimeMillis()
} // }
//
override fun onAdClicked(p0: MaxAd) { // override fun onAdClicked(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdClicked activity=$activityString") // LogEx.logDebug(TAG, "onAdClicked activity=$activityString")
AdDisplayUtils.getInstance().incrementAdClickCount() // AdDisplayUtils.getInstance().incrementAdClickCount()
AdMaxEvent.clickAd(p0, "interAd") // AdMaxEvent.clickAd(p0, "interAd")
} // }
//
//
override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) { // override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
LogEx.logDebug(TAG, "onAdDisplayFailed") // LogEx.logDebug(TAG, "onAdDisplayFailed")
onHidden?.invoke() // onHidden?.invoke()
onHidden = null // onHidden = null
val obj2 = JSONObject() // val obj2 = JSONObject()
obj2.put("code", p1.code) // obj2.put("code", p1.code)
obj2.put("reason", p1.message) // obj2.put("reason", p1.message)
obj2.put("ad_unit", "interAd") // obj2.put("ad_unit", "interAd")
EventUtils.event("ad_show_error", ext = obj2) // EventUtils.event("ad_show_error", ext = obj2)
//
isInterOpenShowing = false // isInterOpenShowing = false
} // }
}) // })
interstitialAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener()) // interstitialAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener())
} // }
} // }
//
fun showInterstitialAd(activity: Activity, onHidden: (() -> Unit)? = null) { // fun showInterstitialAd(activity: Activity, onHidden: (() -> Unit)? = null) {
setListener(activity) // setListener(activity)
//
if (activity.isFinishing || activity.isDestroyed) { // if (activity.isFinishing || activity.isDestroyed) {
return // return
} // }
//
if (isAdExpired()) { // if (isAdExpired()) {
val obj2 = JSONObject() // val obj2 = JSONObject()
obj2.put("ad_unit", "interAd") // obj2.put("ad_unit", "interAd")
EventUtils.event("ad_expire", ext = obj2) // EventUtils.event("ad_expire", ext = obj2)
onHidden?.invoke() // onHidden?.invoke()
loadInterstitialAd(activity) // loadInterstitialAd(activity)
return // return
} // }
//
//
if (!AdDisplayUtils.getInstance().shouldShowAd("interAd")) { // if (!AdDisplayUtils.getInstance().shouldShowAd("interAd")) {
onHidden?.invoke() // onHidden?.invoke()
return // return
} // }
//
LogEx.logDebug(TAG, "showInterstitialAd,展示插屏广告") // LogEx.logDebug(TAG, "showInterstitialAd,展示插屏广告")
//
val obj1 = JSONObject() // val obj1 = JSONObject()
obj1.put("ad_unit", "interAd") // obj1.put("ad_unit", "interAd")
EventUtils.event("ad_prepare_show", ext = obj1) // EventUtils.event("ad_prepare_show", ext = obj1)
isInterOpenShowing = false // isInterOpenShowing = false
//
if (interstitialAd?.isReady == true) { // if (interstitialAd?.isReady == true) {
LogEx.logDebug(TAG, "有缓存直接播放。") // LogEx.logDebug(TAG, "有缓存直接播放。")
AdMaxInterstitialUtils.onHidden = onHidden // AdMaxInterstitialUtils.onHidden = onHidden
interstitialAd?.showAd(activity) // interstitialAd?.showAd(activity)
} else { // } else {
LogEx.logDebug(TAG, "展示广告时,没有缓存,需要拉取。") // LogEx.logDebug(TAG, "展示广告时,没有缓存,需要拉取。")
val obj2 = JSONObject() // val obj2 = JSONObject()
obj2.put("reason", "no cache ad") // obj2.put("reason", "no cache ad")
obj2.put("ad_unit", "interAd") // obj2.put("ad_unit", "interAd")
EventUtils.event("ad_nocache_pull", ext = obj2) // EventUtils.event("ad_nocache_pull", ext = obj2)
val loaded = loadInterstitialAd(activity) // val loaded = loadInterstitialAd(activity)
if (loaded) { // if (loaded) {
LogEx.logDebug(TAG, "loaded=true") // LogEx.logDebug(TAG, "loaded=true")
val dialog = showAdDialogAndLoadInterstitial(activity) // val dialog = showAdDialogAndLoadInterstitial(activity)
loadingListener = { // loadingListener = {
dialog?.dismiss() // dialog?.dismiss()
if (interstitialAd?.isReady == true) { // if (interstitialAd?.isReady == true) {
AdMaxInterstitialUtils.onHidden = onHidden // AdMaxInterstitialUtils.onHidden = onHidden
interstitialAd?.showAd(activity) // interstitialAd?.showAd(activity)
} else { // } else {
onHidden?.invoke() // onHidden?.invoke()
} // }
} // }
} else { // } else {
LogEx.logDebug(TAG, "loaded=false") // LogEx.logDebug(TAG, "loaded=false")
onHidden?.invoke() // onHidden?.invoke()
} // }
} // }
//
} // }
//
private fun isAdExpired(): Boolean { // private fun isAdExpired(): Boolean {
return System.currentTimeMillis() - interLoadTime > 1000 * 60 * 60 // return System.currentTimeMillis() - interLoadTime > 1000 * 60 * 60
} // }
//
//
private fun showAdDialogAndLoadInterstitial( // private fun showAdDialogAndLoadInterstitial(
activity: Activity, // activity: Activity,
): Dialog? { // ): Dialog? {
var customDialog: Dialog? = null // var customDialog: Dialog? = null
if (!activity.isFinishing && !activity.isDestroyed) { // if (!activity.isFinishing && !activity.isDestroyed) {
customDialog = CustomDialog(activity, R.layout.dialog_ad_loading) // customDialog = CustomDialog(activity, R.layout.dialog_ad_loading)
// 设置对话框的样式和内容 // // 设置对话框的样式和内容
customDialog.show() // customDialog.show()
} // }
return customDialog // return customDialog
} // }
//
fun loadInterstitialAd(activity: Activity): Boolean { // fun loadInterstitialAd(activity: Activity): Boolean {
setListener(activity) // setListener(activity)
//
if (!AdDisplayUtils.getInstance().shouldShowAd("interAd")) { // if (!AdDisplayUtils.getInstance().shouldShowAd("interAd")) {
return false // return false
} // }
//
LogEx.logDebug(TAG, "loadInterstitialAd") // LogEx.logDebug(TAG, "loadInterstitialAd")
val reqId = UUID.randomUUID().toString() // val reqId = UUID.randomUUID().toString()
val obj = JSONObject() // val obj = JSONObject()
obj.put("req_id", reqId) // obj.put("req_id", reqId)
obj.put("ad_type", "interAd") // obj.put("ad_type", "interAd")
EventUtils.event("ad_pull_start", ext = obj) // EventUtils.event("ad_pull_start", ext = obj)
interstitialAd?.loadAd() // interstitialAd?.loadAd()
AdDisplayUtils.getInstance().incrementAdRequestCount() // AdDisplayUtils.getInstance().incrementAdRequestCount()
return true // return true
} // }
//
} //}
\ No newline at end of file \ No newline at end of file
package com.base.browserwhite.ads.max //package com.base.browserwhite.ads.max
//
import android.app.Activity //import android.app.Activity
import android.content.Context //import android.content.Context
import android.view.ViewGroup //import android.view.ViewGroup
import androidx.core.view.isVisible //import androidx.core.view.isVisible
import com.applovin.mediation.MaxAd //import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxError //import com.applovin.mediation.MaxError
import com.applovin.mediation.nativeAds.MaxNativeAdListener //import com.applovin.mediation.nativeAds.MaxNativeAdListener
import com.applovin.mediation.nativeAds.MaxNativeAdLoader //import com.applovin.mediation.nativeAds.MaxNativeAdLoader
import com.applovin.mediation.nativeAds.MaxNativeAdView //import com.applovin.mediation.nativeAds.MaxNativeAdView
import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder //import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
import com.base.browserwhite.MyApplication //import com.base.browserwhite.MyApplication
import com.base.browserwhite.R //import com.base.browserwhite.R
import com.base.browserwhite.ads.AdDisplayUtils //import com.base.browserwhite.ads.AdDisplayUtils
import com.base.browserwhite.help.ConfigHelper //import com.base.browserwhite.help.ConfigHelper
import com.base.browserwhite.help.EventUtils //import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.LogEx //import com.base.browserwhite.utils.LogEx
import org.json.JSONObject //import org.json.JSONObject
//
object AdMaxNativeUtils { //object AdMaxNativeUtils {
//
private val TAG = "AdMaxNativeUtils" // private val TAG = "AdMaxNativeUtils"
private var nativeAdLoader: MaxNativeAdLoader = MaxNativeAdLoader(ConfigHelper.nativeAdMaxId, MyApplication.context) // private var nativeAdLoader: MaxNativeAdLoader = MaxNativeAdLoader(ConfigHelper.nativeAdMaxId, MyApplication.context)
private var nativeAd: MaxAd? = null // private var nativeAd: MaxAd? = null
private var nativeLoadTime = Long.MAX_VALUE // private var nativeLoadTime = Long.MAX_VALUE
private var haveSetAdListener: Boolean = false // private var haveSetAdListener: Boolean = false
private var loadingListener: (() -> Unit)? = null // private var loadingListener: (() -> Unit)? = null
private var activityString: String = "" // private var activityString: String = ""
private fun setNativeAdListener() { // private fun setNativeAdListener() {
if (!haveSetAdListener) { // if (!haveSetAdListener) {
//加载展示监听 // //加载展示监听
nativeAdLoader.setNativeAdListener(object : MaxNativeAdListener() { // nativeAdLoader.setNativeAdListener(object : MaxNativeAdListener() {
override fun onNativeAdLoaded(nativeAdView: MaxNativeAdView?, ad: MaxAd) { // override fun onNativeAdLoaded(nativeAdView: MaxNativeAdView?, ad: MaxAd) {
LogEx.logDebug(TAG, "onNativeAdLoaded") // LogEx.logDebug(TAG, "onNativeAdLoaded")
// Cleanup any pre-existing native ad to prevent memory leaks. // // Cleanup any pre-existing native ad to prevent memory leaks.
if (nativeAd?.nativeAd?.isExpired == true) { // if (nativeAd?.nativeAd?.isExpired == true) {
nativeAdLoader.destroy(nativeAd) // nativeAdLoader.destroy(nativeAd)
} // }
//
// Save ad to be rendered later. // // Save ad to be rendered later.
nativeAd = ad // nativeAd = ad
nativeLoadTime = System.currentTimeMillis() // nativeLoadTime = System.currentTimeMillis()
loadingListener?.invoke() // loadingListener?.invoke()
loadingListener = null // loadingListener = null
} // }
//
override fun onNativeAdLoadFailed(p0: String, p1: MaxError) { // override fun onNativeAdLoadFailed(p0: String, p1: MaxError) {
super.onNativeAdLoadFailed(p0, p1) // super.onNativeAdLoadFailed(p0, p1)
loadingListener?.invoke() // loadingListener?.invoke()
loadingListener = null // loadingListener = null
LogEx.logDebug(TAG, "onNativeAdLoadFailed") // LogEx.logDebug(TAG, "onNativeAdLoadFailed")
LogEx.logDebug(TAG, "code=${p1.code}") // LogEx.logDebug(TAG, "code=${p1.code}")
LogEx.logDebug(TAG, "message=${p1.message}") // LogEx.logDebug(TAG, "message=${p1.message}")
// AdDisplayUtils.getInstance().incrementAdRequestFailCount() //// AdDisplayUtils.getInstance().incrementAdRequestFailCount()
val obj2 = JSONObject() // val obj2 = JSONObject()
obj2.put("reason", "no_ad") // obj2.put("reason", "no_ad")
obj2.put("ad_unit", "nativeAd") // obj2.put("ad_unit", "nativeAd")
EventUtils.event("ad_show_error", ext = obj2) // EventUtils.event("ad_show_error", ext = obj2)
} // }
//
override fun onNativeAdClicked(p0: MaxAd) { // override fun onNativeAdClicked(p0: MaxAd) {
super.onNativeAdClicked(p0) // super.onNativeAdClicked(p0)
LogEx.logDebug(TAG, "onNativeAdClicked") // LogEx.logDebug(TAG, "onNativeAdClicked")
// AdDisplayUtils.getInstance().incrementAdClickCount() //// AdDisplayUtils.getInstance().incrementAdClickCount()
nativeAd?.let { AdMaxEvent.clickAd(it, "nativeAd") } // nativeAd?.let { AdMaxEvent.clickAd(it, "nativeAd") }
} // }
//
override fun onNativeAdExpired(p0: MaxAd) { // override fun onNativeAdExpired(p0: MaxAd) {
super.onNativeAdExpired(p0) // super.onNativeAdExpired(p0)
} // }
}) // })
//
//
//广告价格监听 // //广告价格监听
nativeAdLoader.setRevenueListener { ad -> // nativeAdLoader.setRevenueListener { ad ->
//
} // }
//
//
haveSetAdListener = true // haveSetAdListener = true
//
//
} // }
} // }
//
private fun createNativeAdView(context: Context, layout: Int): MaxNativeAdView { // private fun createNativeAdView(context: Context, layout: Int): MaxNativeAdView {
//
// val binder: MaxNativeAdViewBinder = MaxNativeAdViewBinder.Builder(R.layout.layout_max_native_custom) //// val binder: MaxNativeAdViewBinder = MaxNativeAdViewBinder.Builder(R.layout.layout_max_native_custom)
// .setTitleTextViewId(R.id.title_text_view) //// .setTitleTextViewId(R.id.title_text_view)
// .setBodyTextViewId(R.id.body_text_view) //// .setBodyTextViewId(R.id.body_text_view)
// .setAdvertiserTextViewId(R.id.advertiser_text_view) //// .setAdvertiserTextViewId(R.id.advertiser_text_view)
// .setIconImageViewId(R.id.icon_image_view) //// .setIconImageViewId(R.id.icon_image_view)
// .setMediaContentViewGroupId(R.id.media_view_container) //// .setMediaContentViewGroupId(R.id.media_view_container)
// .setOptionsContentViewGroupId(R.id.options_view) //// .setOptionsContentViewGroupId(R.id.options_view)
// .setStarRatingContentViewGroupId(R.id.star_rating_view) //// .setStarRatingContentViewGroupId(R.id.star_rating_view)
// .setCallToActionButtonId(R.id.cta_button) //// .setCallToActionButtonId(R.id.cta_button)
//// .build()
//// return MaxNativeAdView(binder, context)
//
// val binder: MaxNativeAdViewBinder = MaxNativeAdViewBinder.Builder(layout)
// .setTitleTextViewId(R.id.ad_headline)
// .setBodyTextViewId(R.id.ad_body)
//// .setAdvertiserTextViewId(R.id.advertiser_text_view)
// .setIconImageViewId(R.id.ad_app_icon)
// .setMediaContentViewGroupId(R.id.ad_media)
//// .setOptionsContentViewGroupId(R.id.options_view)
//// .setStarRatingContentViewGroupId(R.id.star_rating_view)
// .setCallToActionButtonId(R.id.ad_call_to_action)
// .build() // .build()
// return MaxNativeAdView(binder, context) // return MaxNativeAdView(binder, context)
// }
val binder: MaxNativeAdViewBinder = MaxNativeAdViewBinder.Builder(layout) //
.setTitleTextViewId(R.id.ad_headline) // fun loadNativeAd() {
.setBodyTextViewId(R.id.ad_body) // setNativeAdListener()
// .setAdvertiserTextViewId(R.id.advertiser_text_view) // if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) {
.setIconImageViewId(R.id.ad_app_icon) // return
.setMediaContentViewGroupId(R.id.ad_media) // }
// .setOptionsContentViewGroupId(R.id.options_view) // nativeAdLoader.loadAd()
// .setStarRatingContentViewGroupId(R.id.star_rating_view) // }
.setCallToActionButtonId(R.id.ad_call_to_action) //
.build() //
return MaxNativeAdView(binder, context) // fun showNativeAd(activity: Activity, parent: ViewGroup, layout: Int) {
} // activityString = activity::class.java.toString().split(".").last()
// LogEx.logDebug(TAG, "activityString=$activityString")
fun loadNativeAd() { // setNativeAdListener()
setNativeAdListener() //
if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) { // if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) {
return // LogEx.logDebug(TAG, "!shouldShowAd")
} // return
nativeAdLoader.loadAd() // }
} //
// if (nativeAd?.nativeAd?.isExpired == true || nativeAd == null) {
// LogEx.logDebug(TAG, "nativeAd?.nativeAd?.isExpired == true")
fun showNativeAd(activity: Activity, parent: ViewGroup, layout: Int) { // nativeAdLoader.destroy(nativeAd)
activityString = activity::class.java.toString().split(".").last() // nativeAdLoader.loadAd()
LogEx.logDebug(TAG, "activityString=$activityString") // loadingListener = {
setNativeAdListener() // if (nativeAd != null) {
// showReadyNative(activity, parent, layout)
if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) { // }
LogEx.logDebug(TAG, "!shouldShowAd") // }
return // } else {
} // showReadyNative(activity, parent, layout)
// }
if (nativeAd?.nativeAd?.isExpired == true || nativeAd == null) { //
LogEx.logDebug(TAG, "nativeAd?.nativeAd?.isExpired == true") // }
nativeAdLoader.destroy(nativeAd) //
nativeAdLoader.loadAd() // private fun showReadyNative(activity: Activity, parent: ViewGroup, layout: Int) {
loadingListener = { // val adView = createNativeAdView(activity, layout)
if (nativeAd != null) { //
showReadyNative(activity, parent, layout) // LogEx.logDebug(TAG, "showReadNative adUnitId=${nativeAd?.adUnitId}")
} // parent.isVisible = true
} // parent.removeAllViews()
} else { // nativeAdLoader.render(adView, nativeAd)
showReadyNative(activity, parent, layout) // parent.addView(adView)
} // nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd", activityString) }
// LogEx.logDebug(TAG, "loadingListener finish")
} // }
//
private fun showReadyNative(activity: Activity, parent: ViewGroup, layout: Int) { //}
val adView = createNativeAdView(activity, layout) \ No newline at end of file
LogEx.logDebug(TAG, "showReadNative adUnitId=${nativeAd?.adUnitId}")
parent.isVisible = true
parent.removeAllViews()
nativeAdLoader.render(adView, nativeAd)
parent.addView(adView)
nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd", activityString) }
LogEx.logDebug(TAG, "loadingListener finish")
}
}
\ No newline at end of file
package com.base.browserwhite.ads.max //package com.base.browserwhite.ads.max
//
import android.app.Activity //import android.app.Activity
import com.applovin.mediation.MaxAd //import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener //import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError //import com.applovin.mediation.MaxError
import com.applovin.mediation.ads.MaxAppOpenAd //import com.applovin.mediation.ads.MaxAppOpenAd
import com.base.browserwhite.ads.AdDisplayUtils //import com.base.browserwhite.ads.AdDisplayUtils
import com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing //import com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing
import com.base.browserwhite.help.ConfigHelper //import com.base.browserwhite.help.ConfigHelper
import com.base.browserwhite.help.EventUtils //import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.utils.LogEx //import com.base.browserwhite.utils.LogEx
import org.json.JSONObject //import org.json.JSONObject
import java.util.UUID //import java.util.UUID
//
object AdMaxOpenUtils { //object AdMaxOpenUtils {
private const val TAG = "AdMaxOpenUtils" // private const val TAG = "AdMaxOpenUtils"
private var appOpenAd: MaxAppOpenAd? = null // private var appOpenAd: MaxAppOpenAd? = null
private var openLoadTime = Long.MAX_VALUE // private var openLoadTime = Long.MAX_VALUE
private var onHidden: (() -> Unit)? = null // private var onHidden: (() -> Unit)? = null
private var loadingListener: ((flag: Boolean) -> Unit)? = null // private var loadingListener: ((flag: Boolean) -> Unit)? = null
private var activityString = "" // private var activityString = ""
//
private fun setListener(activity: Activity) { // private fun setListener(activity: Activity) {
activityString = activity::class.java.toString().split(".").last() // activityString = activity::class.java.toString().split(".").last()
if (appOpenAd == null) { // if (appOpenAd == null) {
appOpenAd = MaxAppOpenAd(ConfigHelper.openAdMaxId, activity) // appOpenAd = MaxAppOpenAd(ConfigHelper.openAdMaxId, activity)
//
appOpenAd?.setListener(object : MaxAdListener { // appOpenAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) { // override fun onAdLoaded(p0: MaxAd) {
LogEx.logDebug(TAG, "广告拉取成功") // LogEx.logDebug(TAG, "广告拉取成功")
openLoadTime = System.currentTimeMillis() // openLoadTime = System.currentTimeMillis()
loadingListener?.invoke(true) // loadingListener?.invoke(true)
loadingListener = null // loadingListener = null
AdMaxEvent.pullAd(p0, "openAd") // AdMaxEvent.pullAd(p0, "openAd")
} // }
//
override fun onAdLoadFailed(p0: String, p1: MaxError) { // override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p0) // LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p0)
LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p1.message.toString()) // LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p1.message.toString())
LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p1.code) // LogEx.logDebug(TAG, "广告拉取失败了,onAdLoadFailed:" + p1.code)
loadingListener?.invoke(false) // loadingListener?.invoke(false)
loadingListener = null // loadingListener = null
AdDisplayUtils.getInstance().incrementAdRequestFailCount() // AdDisplayUtils.getInstance().incrementAdRequestFailCount()
val reqId = UUID.randomUUID().toString() // val reqId = UUID.randomUUID().toString()
AdMaxEvent.pullAd(null, "openAd", reqId = reqId, error = p1.message, code = p1.code) // AdMaxEvent.pullAd(null, "openAd", reqId = reqId, error = p1.message, code = p1.code)
} // }
//
override fun onAdDisplayed(p0: MaxAd) { // override fun onAdDisplayed(p0: MaxAd) {
AdDisplayUtils.getInstance().incrementAdDisplayCount() // AdDisplayUtils.getInstance().incrementAdDisplayCount()
AdMaxEvent.showAd(p0, "openAd", activityString) // AdMaxEvent.showAd(p0, "openAd", activityString)
//
isInterOpenShowing = true // isInterOpenShowing = true
} // }
//
override fun onAdHidden(p0: MaxAd) { // override fun onAdHidden(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdHidden") // LogEx.logDebug(TAG, "onAdHidden")
onHidden?.invoke() // onHidden?.invoke()
onHidden = null // onHidden = null
loadAppOpenAd(activity) // loadAppOpenAd(activity)
//
isInterOpenShowing = false // isInterOpenShowing = false
} // }
//
override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) { // override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
LogEx.logDebug(TAG, "onAdDisplayFailed") // LogEx.logDebug(TAG, "onAdDisplayFailed")
onHidden?.invoke() // onHidden?.invoke()
onHidden = null // onHidden = null
loadAppOpenAd(activity) // loadAppOpenAd(activity)
val obj = JSONObject() // val obj = JSONObject()
obj.put("code", p1.code) // obj.put("code", p1.code)
obj.put("reason", p1.message) // obj.put("reason", p1.message)
obj.put("ad_unit", "openAd") // obj.put("ad_unit", "openAd")
EventUtils.event("ad_show_error", ext = obj) // EventUtils.event("ad_show_error", ext = obj)
//
isInterOpenShowing = false // isInterOpenShowing = false
} // }
//
override fun onAdClicked(p0: MaxAd) { // override fun onAdClicked(p0: MaxAd) {
AdDisplayUtils.getInstance().incrementAdClickCount() // AdDisplayUtils.getInstance().incrementAdClickCount()
AdMaxEvent.clickAd(p0, "openAd") // AdMaxEvent.clickAd(p0, "openAd")
} // }
//
}) // })
//
appOpenAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener()) // appOpenAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener())
} // }
} // }
//
fun showAppOpenAd( // fun showAppOpenAd(
activity: Activity, // activity: Activity,
loadCallBack: ((loaded: Boolean) -> Unit)? = null, // loadCallBack: ((loaded: Boolean) -> Unit)? = null,
onHidden: (() -> Unit)? = null // onHidden: (() -> Unit)? = null
) { // ) {
//
setListener(activity) // setListener(activity)
//
if (activity.isFinishing || activity.isDestroyed) { // if (activity.isFinishing || activity.isDestroyed) {
return // return
} // }
//
if (!AdDisplayUtils.getInstance().shouldShowAd("openAd")) { // if (!AdDisplayUtils.getInstance().shouldShowAd("openAd")) {
LogEx.logDebug(TAG, "!shouldShowAd") // LogEx.logDebug(TAG, "!shouldShowAd")
onHidden?.invoke()
return
}
if (System.currentTimeMillis() - openLoadTime > 1000 * 60 * 60) {
LogEx.logDebug(TAG, "openLoadTime > ")
onHidden?.invoke()
val obj2 = JSONObject()
obj2.put("ad_unit", "openAd")
EventUtils.event("ad_expire", ext = obj2)
appOpenAd?.loadAd()
}
// if (!isAdInit.get()) {
// EventUtils.event("isAdInit", value = "showAppOpenAd isAdInit=${isAdInit.get()}")
// onHidden?.invoke() // onHidden?.invoke()
// return // return
// } // }
//
// if (System.currentTimeMillis() - openLoadTime > 1000 * 60 * 60) {
LogEx.logDebug(TAG, "showAppOpenAd") // LogEx.logDebug(TAG, "openLoadTime > ")
val obj1 = JSONObject() // onHidden?.invoke()
obj1.put("ad_unit", "openAd") // val obj2 = JSONObject()
EventUtils.event("ad_prepare_show", ext = obj1) // obj2.put("ad_unit", "openAd")
// EventUtils.event("ad_expire", ext = obj2)
isInterOpenShowing = false // appOpenAd?.loadAd()
// }
if (appOpenAd?.isReady == true) { //
LogEx.logDebug(TAG, "广告准备好了,展示广告") //// if (!isAdInit.get()) {
AdMaxOpenUtils.onHidden = onHidden //// EventUtils.event("isAdInit", value = "showAppOpenAd isAdInit=${isAdInit.get()}")
appOpenAd?.showAd() //// onHidden?.invoke()
} else { //// return
val obj = JSONObject() //// }
obj.put("reason", "no cache ad") //
obj.put("ad_unit", "openAd") //
EventUtils.event("ad_nocache_pull", ext = obj) // LogEx.logDebug(TAG, "showAppOpenAd")
LogEx.logDebug(TAG, "展示时候,发现广告需要拉取") // val obj1 = JSONObject()
val loaded = loadAppOpenAd(activity) // obj1.put("ad_unit", "openAd")
if (loaded) { // EventUtils.event("ad_prepare_show", ext = obj1)
loadingListener = { loadResult -> //
loadCallBack?.invoke(loadResult) // isInterOpenShowing = false
LogEx.logDebug(TAG, "loadingListener callback") //
if (appOpenAd?.isReady == true) { // if (appOpenAd?.isReady == true) {
AdMaxOpenUtils.onHidden = onHidden // LogEx.logDebug(TAG, "广告准备好了,展示广告")
appOpenAd?.showAd() // AdMaxOpenUtils.onHidden = onHidden
} else { // appOpenAd?.showAd()
onHidden?.invoke() // } else {
} // val obj = JSONObject()
} // obj.put("reason", "no cache ad")
} else { // obj.put("ad_unit", "openAd")
onHidden?.invoke() // EventUtils.event("ad_nocache_pull", ext = obj)
} // LogEx.logDebug(TAG, "展示时候,发现广告需要拉取")
// val loaded = loadAppOpenAd(activity)
} // if (loaded) {
} // loadingListener = { loadResult ->
// loadCallBack?.invoke(loadResult)
fun loadAppOpenAd(activity: Activity): Boolean { // LogEx.logDebug(TAG, "loadingListener callback")
setListener(activity) // if (appOpenAd?.isReady == true) {
// AdMaxOpenUtils.onHidden = onHidden
if (!AdDisplayUtils.getInstance().shouldShowAd("openAd")) { // appOpenAd?.showAd()
LogEx.logDebug(TAG, "!shouldShowAd") // } else {
return false // onHidden?.invoke()
} // }
// }
val reqId = UUID.randomUUID().toString() // } else {
val obj = JSONObject() // onHidden?.invoke()
obj.put("req_id", reqId) // }
obj.put("ad_type", "openAd") //
EventUtils.event("ad_pull_start", ext = obj) // }
appOpenAd?.loadAd() // }
AdDisplayUtils.getInstance().incrementAdRequestCount() //
return true // fun loadAppOpenAd(activity: Activity): Boolean {
// setListener(activity)
} //
// if (!AdDisplayUtils.getInstance().shouldShowAd("openAd")) {
// LogEx.logDebug(TAG, "!shouldShowAd")
// return false
} // }
//
// val reqId = UUID.randomUUID().toString()
// val obj = JSONObject()
// obj.put("req_id", reqId)
// obj.put("ad_type", "openAd")
// EventUtils.event("ad_pull_start", ext = obj)
// appOpenAd?.loadAd()
// AdDisplayUtils.getInstance().incrementAdRequestCount()
// return true
//
// }
//
//
//
//}
//
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