Commit bf1c775b authored by wanglei's avatar wanglei

[商业化]上报链

parent b3860549
...@@ -26,25 +26,25 @@ abstract class AdEvent { ...@@ -26,25 +26,25 @@ abstract class AdEvent {
var adUnit: String = "" var adUnit: String = ""
var from: String = "" var from: String = ""
val reqId = UUID.randomUUID().toString() var reqId = UUID.randomUUID().toString()
var isUnLimit: Boolean = false var isUnLimit: Boolean = false
fun adPrepareShow() { fun adPrepareShow() {
val obj1 = JSONObject() val obj1 = JSONObject()
obj1.put("ad_unit", adUnit) obj1.put("ad_unit", adUnit)
obj1.put("req_id", reqId)
obj1.put("from", from) obj1.put("from", from)
obj1.put("req_id", reqId)
EventUtils.event("ad_prepare_show", ext = obj1) EventUtils.event("ad_prepare_show", ext = obj1)
LogEx.logDebug(TAG, "ad_prepare_show_$adUnit $obj1") LogEx.logDebug(TAG, "ad_prepare_show_$adUnit $obj1")
} }
fun adPulStart() { fun adPulStart() {
val obj = JSONObject() val obj = JSONObject()
obj.put("req_id", reqId)
obj.put("ad_unit", adUnit) obj.put("ad_unit", adUnit)
obj.put("ad_type", adUnit)
obj.put("from", from) obj.put("from", from)
obj.put("req_id", reqId)
obj.put("ad_type", adUnit)
EventUtils.event("ad_pull_start", ext = obj) EventUtils.event("ad_pull_start", ext = obj)
LogEx.logDebug(TAG, "ad_pull_start_$adUnit $obj") LogEx.logDebug(TAG, "ad_pull_start_$adUnit $obj")
} }
......
...@@ -182,13 +182,13 @@ object AdsMgr { ...@@ -182,13 +182,13 @@ object AdsMgr {
val from = activity::class.java.simpleName val from = activity::class.java.simpleName
if (adsConfigBean.adSwitch) { if (adsConfigBean.adSwitch) {
val admobEvent = AdmobEvent("openAd", from) val admobEvent = AdmobEvent("openAd", from).apply { this.isUnLimit = isUnLimit }
if (isAdmobInit) { if (isAdmobInit) {
adOpenMgr.show(activity, isUnLimit, admobEvent, showCallBack) adOpenMgr.show(activity, admobEvent, showCallBack)
} else { } else {
admobInitCallBack = { admobInitCallBack = {
} }
adOpenMgr.show(activity, isUnLimit, admobEvent, showCallBack) adOpenMgr.show(activity, admobEvent, showCallBack)
} }
} else { } else {
if (isMaxInit) { if (isMaxInit) {
...@@ -229,7 +229,7 @@ object AdsMgr { ...@@ -229,7 +229,7 @@ object AdsMgr {
LogEx.logDebug("showAd", "adSwitch=${adsConfigBean.adSwitch}") LogEx.logDebug("showAd", "adSwitch=${adsConfigBean.adSwitch}")
val from = activity::class.java.simpleName val from = activity::class.java.simpleName
if (adsConfigBean.adSwitch) { if (adsConfigBean.adSwitch) {
adInterMgr.show(activity, isUnLimit, AdmobEvent("interAd", from), showCallBack) adInterMgr.show(activity, AdmobEvent("interAd", from).apply { this.isUnLimit = isUnLimit }, showCallBack)
} else { } else {
maxInsertMgr.show(activity, isUnLimit, AdMaxEvent("interAd", from), showCallBack) maxInsertMgr.show(activity, isUnLimit, AdMaxEvent("interAd", from), showCallBack)
} }
......
...@@ -3,6 +3,7 @@ package com.base.appzxhy.business.ads ...@@ -3,6 +3,7 @@ package com.base.appzxhy.business.ads
abstract class AdsShowCallBack { abstract class AdsShowCallBack {
var adShowed: Boolean = false var adShowed: Boolean = false
var nextCalled: Boolean = false
open fun show() { open fun show() {
adShowed = true adShowed = true
...@@ -10,18 +11,27 @@ abstract class AdsShowCallBack { ...@@ -10,18 +11,27 @@ abstract class AdsShowCallBack {
open fun failed(where: Int = 0) { open fun failed(where: Int = 0) {
adShowed = false adShowed = false
if (!nextCalled) {
nextCalled = true
next() next()
} }
}
open fun adFailed(where: Int = 0) { open fun adFailed(where: Int = 0) {
adShowed = false adShowed = false
if (!nextCalled) {
nextCalled = true
next() next()
} }
}
open fun close(where: Int = 0) { open fun close(where: Int = 0) {
adShowed = false adShowed = false
if (!nextCalled) {
nextCalled = true
next() next()
} }
}
abstract fun next() abstract fun next()
......
...@@ -146,10 +146,10 @@ object LimitUtils { ...@@ -146,10 +146,10 @@ object LimitUtils {
/** /**
* 开屏和插页广告的显示间隔限制 * 开屏和插页广告的显示间隔限制
*/ */
fun isIntervalLimited(adEvent: AdEvent): Boolean { fun isIntervalLimited(adEvent: AdEvent?): Boolean {
val flag = ((System.currentTimeMillis() - openInterLastShowTime) / 1000).toInt() < (AdConfigBean.adsConfigBean.timeInterval) val flag = ((System.currentTimeMillis() - openInterLastShowTime) / 1000).toInt() < (AdConfigBean.adsConfigBean.timeInterval)
if (flag) { if (flag) {
adEvent.adShowError("ad in timeInterval") adEvent?.adShowError("ad in timeInterval")
} }
return flag return flag
} }
......
...@@ -36,20 +36,17 @@ class AdInterMgr { ...@@ -36,20 +36,17 @@ class AdInterMgr {
fun show( fun show(
activity: Activity, activity: Activity,
isUnLimit: Boolean,
adEvent: AdEvent, adEvent: AdEvent,
showCallBack: AdsShowCallBack? = null showCallBack: AdsShowCallBack? = null
) { ) {
if (activity.isFinishing || activity.isDestroyed) { if (activity.isFinishing || activity.isDestroyed) {
showCallBack?.failed(0)
adState.onAdDisplayFailed()
return return
} }
val nowAdEvent = adState.currentAdEvent ?: adEvent val nowAdEvent = adEvent
nowAdEvent.from = adEvent.from //currentAdEvent!=null 有缓存广告,关联reqId
nowAdEvent.isUnLimit = isUnLimit adState.currentAdEvent?.let { nowAdEvent.reqId = it.reqId }
if (!nowAdEvent.isUnLimit) { if (!nowAdEvent.isUnLimit) {
if (!LimitUtils.isAdShow(AdsType.INSERT, nowAdEvent)) { if (!LimitUtils.isAdShow(AdsType.INSERT, nowAdEvent)) {
...@@ -73,13 +70,14 @@ class AdInterMgr { ...@@ -73,13 +70,14 @@ class AdInterMgr {
adState.adDialog?.dismiss() adState.adDialog?.dismiss()
} }
nowAdEvent.adPrepareShow() nowAdEvent.adPrepareShow()
LogEx.logDebug(adEvent.TAG, "needLoad=$needLoad") LogEx.logDebug(adEvent.TAG, "needLoad=$needLoad")
if (needLoad) { if (needLoad) {
if (!adState.loadingAd) { if (!adState.loadingAd) {
LogEx.logDebug(adEvent.TAG, "inter adState !loadingAd") LogEx.logDebug(adEvent.TAG, "inter adState !loadingAd")
loadAd(activity, adEvent) { loadAd(activity, nowAdEvent) {
showReadyAd() showReadyAd()
} }
} else { } else {
...@@ -99,10 +97,14 @@ class AdInterMgr { ...@@ -99,10 +97,14 @@ class AdInterMgr {
private fun showReadyAd() { private fun showReadyAd() {
val ac = adState.activityRef?.get() val ac = adState.activityRef?.get()
LogEx.logDebug("AdmobEvent", "inter showReadyAd ac=$ac currentAd=${adState.currentAd}")
if (ac == null || ac.isFinishing || ac.isDestroyed) { if (ac == null || ac.isFinishing || ac.isDestroyed) {
LogEx.logDebug(TAG, "showReadyAd ac=null isFinishing isDestroyed") LogEx.logDebug(TAG, "showReadyAd ac=null isFinishing isDestroyed")
showCallBack?.failed()
adState.onAdDisplayFailed()
return return
} }
adState.currentAd?.run { adState.currentAd?.run {
val adEvent = (adState.currentAdEvent as AdmobEvent?) val adEvent = (adState.currentAdEvent as AdmobEvent?)
...@@ -149,11 +151,11 @@ class AdInterMgr { ...@@ -149,11 +151,11 @@ class AdInterMgr {
} }
val activity = adState.activityRef?.get() val activity = adState.activityRef?.get()
activity?.let { activity?.let {
if (AdConfigBean.adsConfigBean.showCountdown){ if (AdConfigBean.adsConfigBean.showCountdown) {
createUICountdownTimer(adState.adDialog) { createUICountdownTimer(adState.adDialog) {
show(it) show(it)
} }
}else{ } else {
show(it) show(it)
} }
} }
...@@ -182,7 +184,6 @@ class AdInterMgr { ...@@ -182,7 +184,6 @@ class AdInterMgr {
} }
adState.loadingAd = true adState.loadingAd = true
adState.currentAdEvent = adEvent
adEvent.adPulStart() adEvent.adPulStart()
InterstitialAd.load( InterstitialAd.load(
...@@ -202,9 +203,13 @@ class AdInterMgr { ...@@ -202,9 +203,13 @@ class AdInterMgr {
override fun onAdFailedToLoad(loadAdError: LoadAdError) { override fun onAdFailedToLoad(loadAdError: LoadAdError) {
adState.onAdLoadFailed() adState.onAdLoadFailed()
(adEvent as AdmobEvent).pullAd(loadAdError.responseInfo, loadAdError) if (loadCallBack != null) {
adState.onAdDisplayFailed()
}
showCallBack?.adFailed() showCallBack?.adFailed()
showCallBack = null showCallBack = null
(adEvent as AdmobEvent).pullAd(loadAdError.responseInfo, loadAdError)
} }
} }
) )
......
...@@ -32,7 +32,6 @@ class AdOpenMgr { ...@@ -32,7 +32,6 @@ class AdOpenMgr {
fun show( fun show(
activity: Activity, activity: Activity,
isUnLimit: Boolean,
adEvent: AdEvent, adEvent: AdEvent,
showCallBack: AdsShowCallBack? showCallBack: AdsShowCallBack?
) { ) {
...@@ -40,9 +39,8 @@ class AdOpenMgr { ...@@ -40,9 +39,8 @@ class AdOpenMgr {
return return
} }
val nowAdEvent = adState.currentAdEvent ?: adEvent val nowAdEvent = adEvent
nowAdEvent.from = adEvent.from adState.currentAdEvent?.let { nowAdEvent.reqId = it.reqId }
nowAdEvent.isUnLimit = isUnLimit
if (!nowAdEvent.isUnLimit) { if (!nowAdEvent.isUnLimit) {
if (!LimitUtils.isAdShow(AdsType.OPEN, nowAdEvent)) { if (!LimitUtils.isAdShow(AdsType.OPEN, nowAdEvent)) {
...@@ -161,7 +159,6 @@ class AdOpenMgr { ...@@ -161,7 +159,6 @@ class AdOpenMgr {
} }
adState.loadingAd = true adState.loadingAd = true
adState.currentAdEvent = adEvent
adEvent.adPulStart() adEvent.adPulStart()
AppOpenAd.load( AppOpenAd.load(
......
...@@ -51,6 +51,8 @@ class AdmobEvent : AdEvent { ...@@ -51,6 +51,8 @@ class AdmobEvent : AdEvent {
) = scope.launch { ) = scope.launch {
var key = "ad_pull" var key = "ad_pull"
val obj = JSONObject() val obj = JSONObject()
obj.put("ad_unit", adUnit)
obj.put("from", from)
obj.put("req_id", reqId) obj.put("req_id", reqId)
if (responseInfo != null) { if (responseInfo != null) {
val response = responseInfo.adapterResponses.getOrNull(0) val response = responseInfo.adapterResponses.getOrNull(0)
...@@ -67,8 +69,6 @@ class AdmobEvent : AdEvent { ...@@ -67,8 +69,6 @@ class AdmobEvent : AdEvent {
obj.put("session_id", responseInfo.responseId) obj.put("session_id", responseInfo.responseId)
} }
obj.put("networkname", responseInfo?.mediationAdapterClassName) obj.put("networkname", responseInfo?.mediationAdapterClassName)
obj.put("ad_unit", adUnit)
obj.put("from", from)
if (error == null) { if (error == null) {
obj.put("status", "1") obj.put("status", "1")
} else { } else {
...@@ -107,9 +107,10 @@ class AdmobEvent : AdEvent { ...@@ -107,9 +107,10 @@ class AdmobEvent : AdEvent {
fun showAd(responseInfo: ResponseInfo?, activity: Activity? = null) = scope.launch { fun showAd(responseInfo: ResponseInfo?, activity: Activity? = null) = scope.launch {
val response = responseInfo?.adapterResponses?.getOrNull(0) val response = responseInfo?.adapterResponses?.getOrNull(0)
val obj = JSONObject() val obj = JSONObject()
obj.put("ad_unit", adUnit)
obj.put("from", activity?.javaClass?.simpleName)
obj.put("req_id", reqId) obj.put("req_id", reqId)
obj.put("source", response?.adSourceName) obj.put("source", response?.adSourceName)
obj.put("ad_unit", adUnit)
obj.put("networkname", responseInfo?.mediationAdapterClassName) obj.put("networkname", responseInfo?.mediationAdapterClassName)
val credentials = mapOf( val credentials = mapOf(
"placementid" to response?.credentials?.get("placementid"), "placementid" to response?.credentials?.get("placementid"),
...@@ -118,7 +119,6 @@ class AdmobEvent : AdEvent { ...@@ -118,7 +119,6 @@ class AdmobEvent : AdEvent {
) )
obj.put("credentials", credentials.toString()) obj.put("credentials", credentials.toString())
obj.put("session_id", responseInfo?.responseId) obj.put("session_id", responseInfo?.responseId)
obj.put("from", activity?.javaClass?.simpleName)
if (adUnit != "nativeAd") { if (adUnit != "nativeAd") {
EventUtils.event("ad_show", ext = obj) EventUtils.event("ad_show", ext = obj)
} else { } else {
......
...@@ -200,6 +200,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -200,6 +200,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
if (this.adShowed) { if (this.adShowed) {
action.invoke() action.invoke()
} else { } else {
LogEx.logDebug("AdmobEvent", "inter open show inter")
AdsMgr.showInsert(this@SplashActivity, showCallBack = object : AdsShowCallBack() { AdsMgr.showInsert(this@SplashActivity, showCallBack = object : AdsShowCallBack() {
override fun next() { override fun next() {
action.invoke() action.invoke()
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:layout_marginBottom="67dp" android:layout_marginBottom="@dimen/dp_38"
android:text="@string/screenshots_totally" android:text="@string/screenshots_totally"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="16sp" android:textSize="16sp"
......
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