pangle回调返回 revence

This commit is contained in:
renhaoting 2025-12-18 15:33:46 +08:00
parent cef3efaa4e
commit afa8b2405c
2 changed files with 22 additions and 7 deletions

View File

@ -300,6 +300,11 @@ object AdShowExt {
val winner = RewardedBiddingManager.bidding(activity) val winner = RewardedBiddingManager.bidding(activity)
AdLogger.d("激励视频广告竞价结果: $winner") AdLogger.d("激励视频广告竞价结果: $winner")
//----------------------------------------------------
return when (winner) { return when (winner) {
BiddingWinner.ADMOB -> { BiddingWinner.ADMOB -> {
AdLogger.d("使用 AdMob 展示激励视频广告") AdLogger.d("使用 AdMob 展示激励视频广告")
@ -318,10 +323,9 @@ object AdShowExt {
PangleRewardedAdController.getInstance().showAd( PangleRewardedAdController.getInstance().showAd(
activity, activity,
BuildConfig.PANGLE_REWARDED_ID, BuildConfig.PANGLE_REWARDED_ID,
{ pagRewardItem -> { pagRewardItem, commonRewardedData ->
val rewardedData = CommonRewardedData(pagRewardItem.rewardAmount.toFloat()) rewardCallback?.invoke(commonRewardedData)
rewardCallback?.invoke(rewardedData) AdLogger.e("Pangle激励视频奖励回调, 奖励值:${commonRewardedData.rewardNum}")
AdLogger.e("Pangle激励视频奖励回调, 奖励值:${pagRewardItem.rewardAmount}")
} }
) )
} }

View File

@ -27,6 +27,7 @@ import com.remax.bill.ads.util.PositionGet
import com.remax.bill.ui.dialog.ADLoadingDialog import com.remax.bill.ui.dialog.ADLoadingDialog
import com.remax.base.ext.KvIntDelegate import com.remax.base.ext.KvIntDelegate
import com.remax.base.report.DataReportManager import com.remax.base.report.DataReportManager
import com.remax.bill.ads.ext.CommonRewardedData
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
@ -101,7 +102,7 @@ class PangleRewardedAdController private constructor() {
suspend fun showAd( suspend fun showAd(
activity: Activity, activity: Activity,
adUnitId: String? = null, adUnitId: String? = null,
onRewardEarned: ((PAGRewardItem) -> Unit)? = null onRewardEarned: ((PAGRewardItem, CommonRewardedData) -> Unit)? = null
): AdResult<Unit> { ): AdResult<Unit> {
val finalAdUnitId = adUnitId ?: BuildConfig.PANGLE_REWARDED_ID val finalAdUnitId = adUnitId ?: BuildConfig.PANGLE_REWARDED_ID
@ -248,7 +249,7 @@ class PangleRewardedAdController private constructor() {
activity: Activity, activity: Activity,
rewardedAd: PAGRewardedAd, rewardedAd: PAGRewardedAd,
adUnitId: String, adUnitId: String,
onRewardEarned: ((PAGRewardItem) -> Unit)? onRewardEarned: ((PAGRewardItem, CommonRewardedData) -> Unit)?
): AdResult<Unit> { ): AdResult<Unit> {
val applicationContext = activity.applicationContext val applicationContext = activity.applicationContext
return suspendCancellableCoroutine { continuation -> return suspendCancellableCoroutine { continuation ->
@ -367,7 +368,17 @@ class PangleRewardedAdController private constructor() {
"ad_source" to (currentAdSource ?: "Pangle") "ad_source" to (currentAdSource ?: "Pangle")
) )
) )
onRewardEarned?.invoke(rewardItem)
val pagRevenueInfo: PAGRevenueInfo? = rewardedAd.pagRevenueInfo
val ecpmInfo: PAGAdEcpmInfo? = pagRevenueInfo?.showEcpm
// Pangle 的 revenue 本身就是美元,直接使用
val revenueUsd = ecpmInfo?.revenue?.toDoubleOrNull() ?: 0.0
onRewardEarned?.invoke(rewardItem, CommonRewardedData(revenueUsd.toFloat()))
}
override fun onAdReturnRevenue(pagAdEcpmInfo: PAGAdEcpmInfo?) {
super.onAdReturnRevenue(pagAdEcpmInfo)
//onRewardEarned?.invoke()
} }
override fun onUserEarnedRewardFail(model: PAGErrorModel) { override fun onUserEarnedRewardFail(model: PAGErrorModel) {