我已阅读https://developers.google.com/admob/android/quick-start?hl=en-US#import_the_mobile_ads_sdk
我需要使用代码A初始化MobileAds才能显示AdMob广告。
我有一些需要显示AD的活动,我是否需要在所有活动中添加代码A?
此外,为什么即使我删除
也能正确显示AdMob广告MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
代码A
import com.google.android.gms.ads.MobileAds;
class MainActivity : AppCompatActivity() {
...
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, "YOUR_ADMOB_APP_ID")
}
...
}
答案 0 :(得分:9)
来自MobileAds.initialize()
的{{3}}:
应该尽早调用此方法,并且每次只调用一次 应用程序启动。
执行此操作的正确方法是在onCreate()
类的Application
方法中调用它。
如果你没有Application
课程,只需创建一个,如下所示:
class YourApp: Application() {
override fun onCreate() {
super.onCreate()
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
}
}
您必须在 AndroidManifest.xml 中引用此类,方法是设置android:name
标记的application
属性:
<application
android:name=".YourApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<!-- ... -->
</application>
关于你的问题:
来自Mobile Ads SDK团队的 Veer Arjun Busani 的为什么即使我删除
也能正确显示AdMob广告MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
docs:
移动广告SDK需要几毫秒来初始化自己和我们 现在已经提供了这种方法,甚至可以在你打电话之前调用它 第一个广告。一旦完成,就不会有任何增加的加载时间 第一次请求。如果你不打电话,那么你的第一个 AdRequest首先需要几毫秒的时间 初始化自己。
所以基本上如果你不打电话给MobileAds.initialize()
,那么第一个AdRequest
会隐式调用它。
答案 1 :(得分:1)
MobileAds.initialize(this, "YOUR-APP-ID")
已弃用。
请改用以下代码。
import android.app.Application
import com.google.android.gms.ads.MobileAds
class MyApp: Application() {
override fun onCreate() {
MobileAds.initialize(applicationContext)
super.onCreate()
}
}
答案 2 :(得分:0)
在Aplication上下文中初始化MobileAds会导致InMobi中介适配器出现错误
"Adapter Initialization status: Not Ready"
已通过AdMob测试套件进行了测试。
解决方案是在“活动”上下文中初始化MobileAd。