📅  最后修改于: 2021-01-05 08:47:11             🧑  作者: Mango
在本教程中,我们在Android应用程序中实施Google AdMob标语广告。要将Google AdMob放置在Android应用程序中,我们需要创建Google广告单元ID。有关创建Google AdMod帐户和生成广告单元ID的完整参考,请参见Android Google AdMob 。
横幅广告是在活动布局中占据一小部分的矩形文字或图像广告。要在Android应用程序中实现Google AdMob,请选择Google AdMob广告活动,然后将广告格式类型选择为横幅。此活动将添加默认的必需库依赖项,“广告视图”显示,Internet许可以及其他必需的代码。
我们还可以将Google AdMob广告放置在其他活动(例如空白活动)上。
在build.gradle文件中添加Google广告依赖项“ com.google.android.gms:play-services-ads:17.0.0”:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.android.gms:play-services-ads:17.0.0'
testImplementation 'junit:junit:4.12'
}
在我们要在其中展示广告的布局上添加Google Ads视图。在这里,我们已经添加了activity_main.xml文件。
要显示横幅广告,我们需要将com.google.android.gms.ads.AdView元素添加到我们的XML布局中。横幅广告与屏幕底部对齐。
将创建的广告单元ID添加到字符串.xml文件中。
Kotlin Banner Ads
Banner Ad Sample
ca-app-pub-3940256099942544/6300978111
在MainActivity.kt类中添加以下代码。要在用户界面上加载广告,请创建AdRequest实例,然后通过调用AdView.loadAd(AdRequest)在AdView中加载广告。
覆盖AdView监听器onAdFailedToLoad(),onAdLoaded(),onAdOpened(),onAdClicked(),onAdClosed()等。
package example.javatpoint.com.kotlinbannerads
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
class MainActivity : AppCompatActivity() {
lateinit var adView : AdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Load an ad into the AdMob banner view.
adView = findViewById(R.id.adView) as AdView
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
adView.adListener = object : AdListener(){
override fun onAdFailedToLoad(p0: Int) {
super.onAdFailedToLoad(p0)
val toastMessage: String = "ad fail to load"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdLoaded() {
super.onAdLoaded()
val toastMessage: String = "ad loaded"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdOpened() {
super.onAdOpened()
val toastMessage: String = "ad is open"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdClicked() {
super.onAdClicked()
val toastMessage: String = "ad is clicked"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdClosed() {
super.onAdClosed()
val toastMessage: String = "ad is closed"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdImpression() {
super.onAdImpression()
val toastMessage: String = "ad impression"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
override fun onAdLeftApplication() {
super.onAdLeftApplication()
val toastMessage: String = "ad left application"
Toast.makeText(applicationContext, toastMessage.toString(), Toast.LENGTH_LONG).show()
}
}
}
override fun onPause() {
if (adView!=null) {
adView.pause();
}
super.onPause()
}
override fun onResume() {
super.onResume()
if (adView != null) {
adView.resume();
}
}
override fun onDestroy() {
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
}
注意:如果您遇到异常java.lang.RuntimeException:无法获取提供程序com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException:然后添加
在AndroidManifest文件中。
在AndroidManifest.xml文件中添加以下代码
输出: