Плохая частота показов 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!!)
}
}
}
Проблема в частоте показа, она почти в два раза меньше, чем в других местах приложения, хотя код я использую тот же, такое ощущение что в половине случаев либо не загружает, либо не показывает рекламу но не могу понять почему так происходит. Подскажите пожалуйста, в чем может быть дело, и как поправить?