Плохая частота показов Interstitial ads

У меня в приложении после Splash показывается интер(Interstitial ads), делаю следующим образом на SplashActivity я его загружаю а после перехода на MainActivity показываю, делаю все вот так:

SplashActivity

class ActivitySplash : AppCompatActivity(), Ads.AdsCallback {
    private val DELAY = 8000L
    private var isAdsOpen = false
    private lateinit var sBinding: ActivitySplashBinding

    private val liveData = MutableLiveData<Boolean>()

    override fun adsLoaded() {
        super.adsLoaded()
        isAdsOpen = true
        liveData.postValue(true)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sBinding = ActivitySplashBinding.inflate(layoutInflater)
        val view = sBinding.root
        setContentView(view)

        Ads.preload(this, BuildConfig.ADS_INTERSTITIAL)
        Ads.setAdsCallBack(this)

        setLiveData()

        liveData.observe(this, {
            if (it) {
                val intent = Intent(this, MainActivity::class.java)
                startActivity(intent)
                finish()
            }
        })

    }

    private fun setLiveData() {
        Handler(Looper.getMainLooper()).postDelayed({
            if (!isAdsOpen) {
                    liveData.postValue(true)
            }
        }, DELAY)
    }

}

MainActivity В onCreate()

Ads.showInter(this, null)

Ads

object Ads {
private const val ALLOWABLE_AMOUNT_REQUEST = 2

    private var requestInterAdCount = 0
    private var mInterstitialAd: InterstitialAd? = null
    private var mAdIsLoading: Boolean = false

    private fun loadAd(context: Context, adsId: String) {
        val adRequest = AdRequest.Builder().build()
        InterstitialAd.load(context, adsId, adRequest, object : InterstitialAdLoadCallback() {
            override fun onAdFailedToLoad(onAdFailedToLoad: LoadAdError) {
                mInterstitialAd = null
                if (requestInterAdCount < ALLOWABLE_AMOUNT_REQUEST) {
                    requestInterAdCount += 1
                    loadAd(context, adsId)
                }
            }

            override fun onAdLoaded(interstitialAd: InterstitialAd) {
                mInterstitialAd = interstitialAd
                adsCallback?.adsLoaded()
                mAdIsLoading = true

                mInterstitialAd?.fullScreenContentCallback = object : FullScreenContentCallback() {
                    override fun onAdDismissedFullScreenContent() {
                        mInterstitialAd = null
                        mAdIsLoading = false
                    }

                    override fun onAdFailedToShowFullScreenContent(onAdFailedToShowFullScreenContent: AdError?) {
                        mInterstitialAd = null
                        mAdIsLoading = false
                    }

                    override fun onAdShowedFullScreenContent() {
                        mAdIsLoading = false

                    }
                }

            }
        })

    }

    fun preload(context: Context, adsId: String) {
        adsCallback = null
        loadAd(context, adsId)

    }

    interface AdsCallback {
        fun adsLoaded() {}
    }

    private var adsCallback: AdsCallback? = null

    fun setAdsCallBack(adsCallback: AdsCallback) {
        this.adsCallback = adsCallback
    }

    fun showInter(activity: Activity?, adsSplashCallback: AdsCallback?) {
        this.adsCallback = adsCallback
        if (mAdIsLoading && mInterstitialAd != null) {
            mInterstitialAd?.show(activity!!)
        }

    }
}

Проблема в частоте показа, она почти в два раза меньше, чем в других местах приложения, хотя код я использую тот же, такое ощущение что в половине случаев либо не загружает, либо не показывает рекламу но не могу понять почему так происходит. Подскажите пожалуйста, в чем может быть дело, и как поправить?


Ответы (0 шт):