From 3745010e387074adb09d42fc7d205cc1f5084d70 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Wed, 21 Jan 2026 18:10:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=9F=8B=E7=82=B9=E3=80=91=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6=E5=92=8C=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E6=94=B6=E7=9B=8A=E4=B8=8A=E6=8A=A5=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E4=B8=AD=20position=20=E5=B1=9E=E6=80=A7=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gamedog/vididin/VidiConst.kt | 1 + .../gamedog/vididin/VidiStatisticHelper.kt | 2 +- .../features/watchad/WatchAdActivity.kt | 8 +++-- .../vididin/main/fragments/HomeFragment.kt | 2 +- .../remax/bill/ads/RewardedAdController.kt | 30 ++++++++++--------- .../ads/bidding/RewardedBiddingManager.kt | 10 ++++--- .../java/com/remax/bill/ads/ext/AdShowExt.kt | 10 ++++--- .../ads/pangle/PangleRewardedAdController.kt | 28 +++++++++-------- .../ads/topon/TopOnRewardedAdController.kt | 27 +++++++++-------- 9 files changed, 67 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/VidiConst.kt b/app/src/main/java/com/gamedog/vididin/VidiConst.kt index 3151321..4b0fb52 100644 --- a/app/src/main/java/com/gamedog/vididin/VidiConst.kt +++ b/app/src/main/java/com/gamedog/vididin/VidiConst.kt @@ -37,6 +37,7 @@ object VidiConst { const val WATCH_AD_FOR_DAILY_SIGN_SINGLE = 8 const val WATCH_AD_FOR_DAILY_SIGN_DOUBLE = 9 const val WATCH_AD_FOR_DAILY_SIGN_COMPLEMENT = 10 + const val WATCH_AD_FOR_DAILY_EARN_GOLD_POPMENU = 11 diff --git a/app/src/main/java/com/gamedog/vididin/VidiStatisticHelper.kt b/app/src/main/java/com/gamedog/vididin/VidiStatisticHelper.kt index b5c75fc..2597d24 100644 --- a/app/src/main/java/com/gamedog/vididin/VidiStatisticHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/VidiStatisticHelper.kt @@ -9,7 +9,7 @@ object VidiStatisticHelper { return "RV_VideoStream" } - VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD -> { + VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD_POPMENU -> { return "RV_Home_Menu" } diff --git a/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt b/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt index b04c427..80c71fa 100644 --- a/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt @@ -13,6 +13,7 @@ import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VidiConst +import com.gamedog.vididin.VidiStatisticHelper import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.WatchAdNotifyBean import com.gamedog.vididin.main.interfaces.OnTabStyleListener @@ -117,7 +118,7 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity(), OnTabStyl notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_DAILY_WATCH_AD } - VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD -> { + VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD_POPMENU, VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD -> { shouldNotifyOneAdWatched = true notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD } @@ -192,11 +193,12 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity(), OnTabStyl if (!mIsLoadSuccess) { handleLoadFailed() } - }, 3000) + }, 30000) try { - when(AdShowExt.showRewardedVideoAd(this@WatchAdActivity, { rewardedData -> + when(AdShowExt.showRewardedVideoAd(this@WatchAdActivity, + VidiStatisticHelper.getShowFromStr(mWatchType), { rewardedData -> mRewardedDollarNum = rewardedData.rewardNum }, { notifyAdWatchFinish() diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt index 746b033..6ab74e1 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt @@ -93,7 +93,7 @@ class HomeFragment : AppViewsFragment(), OnSwit StatisticUtil.reportEvents(StatisticUtil.KEY_Chest_Claim_Click) }, PopMenuView.MenuItem(R.mipmap.home_menu_2,R.mipmap.icon_gold_ss_new, 0) { - WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD, WatchAdDialog.FROM_HOME_MENU,null).show() + WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD_POPMENU, WatchAdDialog.FROM_HOME_MENU,null).show() }, PopMenuView.MenuItem(R.mipmap.home_menu_3,0, 0) { Router.Game.startActivity(requireActivity()) diff --git a/bill/src/main/java/com/remax/bill/ads/RewardedAdController.kt b/bill/src/main/java/com/remax/bill/ads/RewardedAdController.kt index 8fcf242..5bc791e 100644 --- a/bill/src/main/java/com/remax/bill/ads/RewardedAdController.kt +++ b/bill/src/main/java/com/remax/bill/ads/RewardedAdController.kt @@ -117,7 +117,7 @@ class RewardedAdController private constructor() { /** * 预加载广告 */ - suspend fun preloadAd(context: Context, adUnitId: String? = null): AdResult { + suspend fun preloadAd(context: Context, adUnitId: String? = null, positionStr: String): AdResult { if(!GlobalAdSwitchInterceptor.isGlobalAdEnabled()){ return AdResult.Failure( AdException( @@ -126,7 +126,7 @@ class RewardedAdController private constructor() { )) } val finalAdUnitId = adUnitId ?: BuildConfig.ADMOB_REWARDED_ID - return loadAdToCache(context, finalAdUnitId) + return loadAdToCache(context, finalAdUnitId, positionStr) } /** @@ -134,6 +134,7 @@ class RewardedAdController private constructor() { */ suspend fun showAd( activity: Activity, + positionStr: String, adUnitId: String? = null, onRewardEarned: ((RewardItem, CommonRewardedData) -> Unit)? = null, closeCallback: () -> Unit, @@ -149,7 +150,7 @@ class RewardedAdController private constructor() { eventName = "ad_position", params = mapOf( "ad_unit_name" to finalAdUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowTriggerCount ) ) @@ -165,7 +166,7 @@ class RewardedAdController private constructor() { // eventName = "ad_show_fail", // params = mapOf( // "ad_unit_name" to finalAdUnitId, -// "position" to PositionGet.get(), +// "position" to positionStr, // "number" to totalShowFailCount, // "reason" to interceptResult.error.message // ) @@ -185,7 +186,7 @@ class RewardedAdController private constructor() { // 激励广告阻塞loading ADLoadingDialog.show(activity) AdLogger.d("Admob缓存为空,立即加载激励广告,广告位ID: %s", finalAdUnitId) - loadAdToCache(activity, finalAdUnitId) + loadAdToCache(activity, finalAdUnitId, positionStr) cachedAd = getCachedAd(finalAdUnitId) } @@ -195,7 +196,7 @@ class RewardedAdController private constructor() { AdLogger.d("Admob使用缓存中的激励广告,广告位ID: %s", finalAdUnitId) // 3. 显示广告 - val result = showAdInternal(activity, cachedAd.ad, finalAdUnitId, onRewardEarned, closeCallback) + val result = showAdInternal(activity, positionStr,cachedAd.ad, finalAdUnitId, onRewardEarned, closeCallback) result } else { @@ -212,7 +213,7 @@ class RewardedAdController private constructor() { /** * 基础广告加载方法(可复用) */ - private suspend fun loadAd(context: Context, adUnitId: String): RewardedAd? { + private suspend fun loadAd(context: Context, adUnitId: String, positionStr: String): RewardedAd? { // 累积加载次数统计 totalLoadCount++ AdLogger.d("Admob激励广告累积加载次数: $totalLoadCount") @@ -258,7 +259,7 @@ class RewardedAdController private constructor() { eventName = "ad_impression", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowCount, "ad_source" to (rewardedAd.responseInfo?.loadedAdapterResponseInfo?.adSourceName.orEmpty()), "value" to (currentAdValue?.let { it.valueMicros / 1_000_000.0 } @@ -305,7 +306,7 @@ class RewardedAdController private constructor() { /** * 加载广告到缓存 */ - suspend fun loadAdToCache(context: Context, adUnitId: String): AdResult { + suspend fun loadAdToCache(context: Context, adUnitId: String, positionStr: String): AdResult { return try { // 检查缓存是否已满 @@ -316,7 +317,7 @@ class RewardedAdController private constructor() { } // 加载广告 - val rewardedAd = loadAd(context, adUnitId) + val rewardedAd = loadAd(context, adUnitId, positionStr) if (rewardedAd != null) { synchronized(adCachePool) { adCachePool.add(CachedRewardedAd(rewardedAd, adUnitId)) @@ -379,6 +380,7 @@ class RewardedAdController private constructor() { */ private suspend fun showAdInternal( activity: Activity, + positionStr: String, rewardedAd: RewardedAd, adUnitId: String, onRewardEarned: ((RewardItem, CommonRewardedData) -> Unit)?, @@ -399,7 +401,7 @@ class RewardedAdController private constructor() { eventName = "ad_close", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalCloseCount, "ad_source" to (rewardedAd.responseInfo?.loadedAdapterResponseInfo?.adSourceName.orEmpty()), "value" to (currentAdValue?.let { it.valueMicros / 1_000_000.0 } @@ -428,7 +430,7 @@ class RewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "ad_source" to (rewardedAd.responseInfo?.loadedAdapterResponseInfo?.adSourceName.orEmpty()), "reason" to adError.message @@ -460,7 +462,7 @@ class RewardedAdController private constructor() { eventName = "ad_click", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalClickCount, "ad_source" to (rewardedAd.responseInfo?.loadedAdapterResponseInfo?.adSourceName.orEmpty()), "value" to (currentAdValue?.let { it.valueMicros / 1_000_000.0 } @@ -500,7 +502,7 @@ class RewardedAdController private constructor() { eventName = "ad_reward_earned", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalRewardEarnedCount, "reward_type" to rewardItem.type, "reward_amount" to rewardItem.amount, diff --git a/bill/src/main/java/com/remax/bill/ads/bidding/RewardedBiddingManager.kt b/bill/src/main/java/com/remax/bill/ads/bidding/RewardedBiddingManager.kt index b365ae6..7449d81 100644 --- a/bill/src/main/java/com/remax/bill/ads/bidding/RewardedBiddingManager.kt +++ b/bill/src/main/java/com/remax/bill/ads/bidding/RewardedBiddingManager.kt @@ -20,6 +20,7 @@ object RewardedBiddingManager { suspend fun bidding( context: Context, + positionStr: String, admobAdUnitId: String = BuildConfig.ADMOB_REWARDED_ID, pangleAdUnitId: String = BuildConfig.PANGLE_REWARDED_ID, toponPlacementId: String = BuildConfig.TOPON_REWARDED_ID, @@ -34,17 +35,18 @@ object RewardedBiddingManager { AdSourceController.AdSource.TOPON -> BiddingWinner.TOPON AdSourceController.AdSource.BIDDING -> { // 不会执行到这里,但为了完整性保留 - performBidding(context, admobAdUnitId, pangleAdUnitId, toponPlacementId) + performBidding(context, positionStr, admobAdUnitId, pangleAdUnitId, toponPlacementId) } } } // 使用竞价逻辑 - return performBidding(context, admobAdUnitId, pangleAdUnitId, toponPlacementId) + return performBidding(context, positionStr, admobAdUnitId, pangleAdUnitId, toponPlacementId) } private suspend fun performBidding( context: Context, + positionStr: String, admobAdUnitId: String, pangleAdUnitId: String, toponPlacementId: String, @@ -58,7 +60,7 @@ object RewardedBiddingManager { coroutineScope { val admobDeferred = async { runCatching { - admobController.loadAdToCache(context, admobAdUnitId) + admobController.loadAdToCache(context, admobAdUnitId, positionStr) }.getOrNull() } val pangleDeferred = async { @@ -68,7 +70,7 @@ object RewardedBiddingManager { } val toponDeferred = async { runCatching { - toponController.preloadAd(context, toponPlacementId) + toponController.preloadAd(context, positionStr, toponPlacementId) }.getOrNull() } // 等待所有加载完成 diff --git a/bill/src/main/java/com/remax/bill/ads/ext/AdShowExt.kt b/bill/src/main/java/com/remax/bill/ads/ext/AdShowExt.kt index d7f1eba..f3cbf61 100644 --- a/bill/src/main/java/com/remax/bill/ads/ext/AdShowExt.kt +++ b/bill/src/main/java/com/remax/bill/ads/ext/AdShowExt.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Context import android.view.View import android.view.ViewGroup +import com.iab.omid.library.bigosg.adsession.media.Position import com.remax.bill.BuildConfig import com.remax.bill.ads.AdResult import com.remax.bill.ads.AppOpenAdController @@ -294,12 +295,13 @@ object AdShowExt { */ suspend fun showRewardedVideoAd( activity: Activity, + positionStr: String, rewardCallback: ((CommonRewardedData) -> Unit)? = null, closeCallback: ()->Unit, readyCallback:() -> Unit, ): AdResult { AdLogger.d("激励视频广告竞价开始") - val winner = RewardedBiddingManager.bidding(activity) + val winner = RewardedBiddingManager.bidding(activity, positionStr) AdLogger.d("激励视频广告竞价结果: $winner") @@ -308,7 +310,7 @@ object AdShowExt { BiddingWinner.ADMOB -> { AdLogger.d("使用 AdMob 展示激励视频广告") RewardedAdController.getInstance().showAd( - activity, + activity, positionStr, BuildConfig.ADMOB_REWARDED_ID, { rewardItem, commonRewardedData -> rewardCallback?.invoke(commonRewardedData) @@ -319,7 +321,7 @@ object AdShowExt { BiddingWinner.PANGLE -> { AdLogger.d("使用 Pangle 展示激励视频广告") PangleRewardedAdController.getInstance().showAd( - activity, + activity, positionStr, BuildConfig.PANGLE_REWARDED_ID, { pagRewardItem, commonRewardedData -> rewardCallback?.invoke(commonRewardedData) @@ -330,7 +332,7 @@ object AdShowExt { BiddingWinner.TOPON -> { AdLogger.d("使用 TopOn 展示激励视频广告") TopOnRewardedAdController.getInstance().showAd( - activity, + activity, positionStr, BuildConfig.TOPON_REWARDED_ID, { _, _, revenueValue -> val rewardedData = CommonRewardedData(revenueValue.toDouble()) diff --git a/bill/src/main/java/com/remax/bill/ads/pangle/PangleRewardedAdController.kt b/bill/src/main/java/com/remax/bill/ads/pangle/PangleRewardedAdController.kt index ae0c16f..f70df26 100644 --- a/bill/src/main/java/com/remax/bill/ads/pangle/PangleRewardedAdController.kt +++ b/bill/src/main/java/com/remax/bill/ads/pangle/PangleRewardedAdController.kt @@ -100,6 +100,7 @@ class PangleRewardedAdController private constructor() { suspend fun showAd( activity: Activity, + positionStr: String, adUnitId: String? = null, onRewardEarned: ((PAGRewardItem, CommonRewardedData) -> Unit)? = null, closeCallback: () -> Unit, readyCallback:() -> Unit, @@ -112,7 +113,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_position", params = mapOf( "ad_unit_name" to finalAdUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowTriggerCount ) ) @@ -124,7 +125,7 @@ class PangleRewardedAdController private constructor() { // eventName = "ad_show_fail", // params = mapOf( // "ad_unit_name" to finalAdUnitId, -// "position" to PositionGet.get(), +// "position" to positionStr, // "number" to totalShowFailCount, // "reason" to interceptResult.error.message // ) @@ -150,7 +151,7 @@ class PangleRewardedAdController private constructor() { currentRewardedAd = null currentAdUnitId = null readyCallback.invoke() - showAdInternal(activity, ad, finalAdUnitId, onRewardEarned, closeCallback) + showAdInternal(activity, positionStr,ad, finalAdUnitId, onRewardEarned, closeCallback) } else { ADLoadingDialog.hide() totalShowFailCount++ @@ -158,7 +159,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to finalAdUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "reason" to "load_failed" ) @@ -172,7 +173,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to finalAdUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "reason" to e.message.orEmpty() ) @@ -248,6 +249,7 @@ class PangleRewardedAdController private constructor() { private suspend fun showAdInternal( activity: Activity, + positionStr: String, rewardedAd: PAGRewardedAd, adUnitId: String, onRewardEarned: ((PAGRewardItem, CommonRewardedData) -> Unit)?, @@ -282,7 +284,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_impression", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowCount, "ad_source" to (currentAdSource ?: "Pangle"), "value" to impressionValue, @@ -320,7 +322,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_click", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalClickCount, "ad_source" to (currentAdSource ?: "Pangle"), "value" to (rewardedAd.pagRevenueInfo?.showEcpm?.revenue?.toDoubleOrNull() ?: 0.0), @@ -334,6 +336,7 @@ class PangleRewardedAdController private constructor() { isShowing = false closeEvent( adUnitId = adUnitId, + positionStr, adSource = currentAdSource, valueUsd = currentRevenueUsd, currencyCode = currentCurrency, @@ -365,7 +368,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_reward_earned", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalRewardEarnedCount, "reward_name" to rewardItem.rewardName, "reward_amount" to rewardItem.rewardAmount, @@ -401,7 +404,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "reason" to model.errorMessage.orEmpty(), "ad_source" to (currentAdSource ?: "Pangle") @@ -419,7 +422,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "reason" to "rewarded_not_ready", "ad_source" to (currentAdSource ?: "Pangle") @@ -439,7 +442,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "reason" to e.message.orEmpty(), "ad_source" to (currentAdSource ?: "Pangle") @@ -464,6 +467,7 @@ class PangleRewardedAdController private constructor() { private fun closeEvent( adUnitId: String, + positionStr: String, adSource: String? = "Pangle", valueUsd: Double? = null, currencyCode: String? = null, @@ -474,7 +478,7 @@ class PangleRewardedAdController private constructor() { eventName = "ad_close", params = mapOf( "ad_unit_name" to adUnitId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalCloseCount, "ad_source" to (adSource ?: "Pangle"), "value" to (valueUsd ?: 0.0), diff --git a/bill/src/main/java/com/remax/bill/ads/topon/TopOnRewardedAdController.kt b/bill/src/main/java/com/remax/bill/ads/topon/TopOnRewardedAdController.kt index d6568e0..6ab625f 100644 --- a/bill/src/main/java/com/remax/bill/ads/topon/TopOnRewardedAdController.kt +++ b/bill/src/main/java/com/remax/bill/ads/topon/TopOnRewardedAdController.kt @@ -93,7 +93,7 @@ class TopOnRewardedAdController private constructor() { /** * 预加载广告 */ - suspend fun preloadAd(context: Context, placementId: String? = null): AdResult { + suspend fun preloadAd(context: Context, positionStr: String, placementId: String? = null): AdResult { if (!GlobalAdSwitchInterceptor.isGlobalAdEnabled()) { return AdResult.Failure( AdException( @@ -117,7 +117,7 @@ class TopOnRewardedAdController private constructor() { return AdResult.Success(Unit) } - return if (loadAd(context, finalPlacementId) != null) { + return if (loadAd(context, positionStr, finalPlacementId) != null) { AdResult.Success(Unit) } else { AdResult.Failure(createAdException("广告加载失败")) @@ -129,6 +129,7 @@ class TopOnRewardedAdController private constructor() { */ suspend fun showAd( activity: Activity, + positionStr: String, placementId: String? = null, onRewardEarned: ((String, Int, Double) -> Unit)? = null, closeCallback: ()->Unit, readyCallback:() -> Unit, @@ -145,7 +146,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_position", params = mapOf( "ad_unit_name" to finalPlacementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowTriggerCount ) ) @@ -159,7 +160,7 @@ class TopOnRewardedAdController private constructor() { // eventName = "ad_show_fail", // params = mapOf( // "ad_unit_name" to finalPlacementId, - // "position" to PositionGet.get(), + // "position" to positionStr, // "number" to totalShowFailCount, // "reason" to interceptResult.error.message // ) @@ -176,7 +177,7 @@ class TopOnRewardedAdController private constructor() { if (entry == null) { ADLoadingDialog.show(activity) - loadAd(activity, finalPlacementId) + loadAd(activity, positionStr, finalPlacementId) entry = synchronized(adCache) { adCache[finalPlacementId]?.takeUnless { it.isExpired() } } @@ -202,7 +203,7 @@ class TopOnRewardedAdController private constructor() { /** * 加载广告 */ - private suspend fun loadAd(context: Context, placementId: String): TopOnRewardedAdEntry? { + private suspend fun loadAd(context: Context, positionStr: String, placementId: String): TopOnRewardedAdEntry? { totalLoadCount++ AdLogger.d("TopOn激励广告开始加载,广告位ID: %s,当前累计加载次数: %d", placementId, totalLoadCount) @@ -219,6 +220,7 @@ class TopOnRewardedAdController private constructor() { val applicationContext = context.applicationContext val rewardedVideoAd = TURewardVideoAd(applicationContext, placementId) val listener = TopOnRewardedVideoListener( + positionStr = positionStr, placementId = placementId, startLoadTime = System.currentTimeMillis(), rewardedVideoAd = rewardedVideoAd, @@ -286,6 +288,7 @@ class TopOnRewardedAdController private constructor() { * TopOn 激励视频广告监听器 */ private inner class TopOnRewardedVideoListener( + private val positionStr: String, private val placementId: String, private val startLoadTime: Long, private val rewardedVideoAd: TURewardVideoAd, @@ -443,7 +446,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_show_fail", params = mapOf( "ad_unit_name" to placementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowFailCount, "ad_source" to (adInfo?.networkName ?: ""), "reason" to (adError.desc ?: adError.getFullErrorInfo()) @@ -467,7 +470,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_close", params = mapOf( "ad_unit_name" to placementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalCloseCount, "ad_source" to (adInfo.networkName ?: ""), "value" to (adInfo.publisherRevenue ?: 0.0), @@ -484,7 +487,7 @@ class TopOnRewardedAdController private constructor() { CoroutineScope(SupervisorJob() + Dispatchers.IO).launch { try { AdLogger.d("TopOn激励广告关闭,开始重新预缓存,广告位ID: %s", placementId) - preloadAd(applicationContext, placementId) + preloadAd(applicationContext, positionStr, placementId) } catch (e: Exception) { AdLogger.e("TopOn激励广告重新预缓存失败", e) } @@ -507,7 +510,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_click", params = mapOf( "ad_unit_name" to placementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalClickCount, "ad_source" to (adInfo.networkName ?: ""), "value" to (adInfo.publisherRevenue ?: 0.0), @@ -530,7 +533,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_reward_earned", params = mapOf( "ad_unit_name" to placementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalRewardEarnedCount, "reward_type" to rewardType, "reward_amount" to rewardAmount, @@ -555,7 +558,7 @@ class TopOnRewardedAdController private constructor() { eventName = "ad_impression", params = mapOf( "ad_unit_name" to placementId, - "position" to PositionGet.get(), + "position" to positionStr, "number" to totalShowCount, "ad_source" to (adInfo.networkName ?: ""), "value" to (adInfo.publisherRevenue ?: 0.0),