Android 为什么我的Admob奖励视频广告一次又一次加载失败?
我只想用测试id显示有奖励的视频广告,但加载时一次又一次失败。有人可以告诉我我做错了什么。 这是我的主要活动KotlinAndroid 为什么我的Admob奖励视频广告一次又一次加载失败?,android,android-studio,kotlin,admob,ads,Android,Android Studio,Kotlin,Admob,Ads,我只想用测试id显示有奖励的视频广告,但加载时一次又一次失败。有人可以告诉我我做错了什么。 这是我的主要活动Kotlin import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.MobileAds
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.reward.RewardItem
import com.google.android.gms.ads.reward.RewardedVideoAd
import com.google.android.gms.ads.reward.RewardedVideoAdListener
class MainActivity : AppCompatActivity (), RewardedVideoAdListener {
override fun onRewardedVideoAdClosed() {
loadRewardedVideoAd()
}
override fun onRewardedVideoAdLeftApplication() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onRewardedVideoAdLoaded() {
mRewardedVideoAd.show()
}
override fun onRewardedVideoAdOpened() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onRewardedVideoCompleted() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onRewarded(p0: RewardItem?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onRewardedVideoStarted() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onRewardedVideoAdFailedToLoad(p0: Int) {
Toast.makeText(this,"Failed!",Toast.LENGTH_LONG).show()
}
private lateinit var mRewardedVideoAd: RewardedVideoAd
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
// Use an activity context to get the rewarded video instance.
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this)
mRewardedVideoAd.rewardedVideoAdListener = this
loadRewardedVideoAd()
}
private fun loadRewardedVideoAd() {
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
AdRequest.Builder().build())
}
}
下面是我在android清单中编写的代码
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
}
这是我在build.gradle(模块:app)中写的一行
以下是一些常见的原因以及解决方法:
尝试在此处放置您自己的应用程序id,而不是教程中的应用程序id
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
您可以在创建广告单元至少等待24小时后创建的AdMob帐户中找到您的应用程序id。因为有时admob会花时间为新创建的广告单元提供广告。他使用测试id,所以不应该花24小时。对我来说,它立即起作用。我使用了横幅广告和间隙广告,效果很好,但当我尝试使用奖励视频广告时,每次都无法加载。我也使用了测试id,但仍然没有加载。对于视频广告,您必须从admob Dashboard将应用程序连接到firebase是否必须将应用程序连接到firebase才能获得奖励广告?。。因为在AdMob的奖励广告页面上,他们从来没有提到任何与firebase有关的事情?在我的测试广告(甚至奖励视频)中,如果没有firebase,效果很好??谢谢你的回答,但我已经尝试过了,但它仍然没有加载。因此,如果你进行调试,你就永远无法在RewardedVideoAdLoaded()上找到代码
?
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
implementation 'com.google.android.gms:play-services-ads:15.0.1'
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")