Поэтому у меня возникли проблемы с клиентским приложением, так как промежуточная реклама не показывается в приложении для новых телефонов (например, Pixel 3 с Android 10 или Razr с Android 9), а показывается на старых телефонах (например, Pixel 2).(Android 9) или Samsung 7 (Android 6).
Интересная часть: если я остановлю функцию.и пошагово для всего процесса, он работает просто отлично, и появляется объявление.
Следуйте коду моего приложения hello world:
private val mInterstitialAdUnitId: String by lazy {
"ca-app-pub-3940256099942544/1033173712"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mInterstitialAd = InterstitialAd(this)
loadInterstitialAd(mInterstitialAdUnitId)
button.setOnClickListener {
if (mInterstitialAd.isLoaded) {
mInterstitialAd.show()
} else {
Log.d("jb:", "The interstitial ad wasn't loaded yet.")
}
}
}
private fun loadInterstitialAd(interstitialAdUnitId: String) {
mInterstitialAd.adUnitId = interstitialAdUnitId
mInterstitialAd.adListener = object : AdListener() {
override fun onAdFailedToLoad(p0: Int) {
super.onAdFailedToLoad(p0)
var errorString = "Unknown"
when (p0) {
PublisherAdRequest.ERROR_CODE_NO_FILL -> {
errorString = "ERROR_CODE_NO_FILL"
}
PublisherAdRequest.ERROR_CODE_INTERNAL_ERROR -> {
errorString = "ERROR_CODE_INTERNAL_ERROR"
}
PublisherAdRequest.ERROR_CODE_INVALID_REQUEST -> {
errorString = "ERROR_CODE_INVALID_REQUEST"
}
PublisherAdRequest.ERROR_CODE_NETWORK_ERROR -> {
errorString = "ERROR_CODE_NETWORK_ERROR"
}
}
Log.d("jb:", "OLI failed to load: $errorString")
}
override fun onAdLoaded() {
super.onAdLoaded()
Log.d("jb:", "The interstitial onAdLoaded")
}
}
mInterstitialAd.loadAd(AdRequest.Builder().addTestDevice("XXXXXXXX").build())
}