横幅广告是占据应用部分布局的矩形广告。他们 当用户与应用互动时停留在屏幕上, 或在用户滚动屏幕时内嵌到屏幕的顶部或底部。横幅 广告可以在一段时间后自动刷新。查看横幅广告概览 。
本指南介绍了如何开始使用锚定广告 自适应横幅广告 该功能可针对每种设备优化广告尺寸 指定广告宽度
锚定自适应横幅广告是宽高比固定的广告,而非常规的 固定尺寸广告。宽高比类似于业界标准的 320x50。一次 您指定了可用的全宽,系统会为您返回 高度。无论从哪个请求发送, 广告,并且当广告展示时,周围的视图无需移动 刷新。
前提条件
- 完成入门指南。
始终使用测试广告进行测试
在构建和测试应用时,请务必使用测试广告, 实际投放的广告。否则,可能会导致您的账号被暂停。
要加载测试广告,最简便的方法就是使用我们的专用测试广告单元 ID Android 横幅广告:
/21775744923/example/adaptive-banner
该测试广告单元 ID 已经过专门配置,可为每个请求返回测试广告,而且您可以 在自己应用的编码、测试和调试过程中使用。只需确保您 请将其替换为您自己的广告单元 ID,然后再发布应用。
如需详细了解移动广告 SDK 的测试广告如何运作,请参阅测试 广告。
将 AdManagerAdView 添加到布局中
要展示横幅广告,首先要将 AdManagerAdView
放置
:
Java
// Create a new ad view.
adView = new AdManagerAdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
Kotlin
// Create a new ad view.
val adView = AdManagerAdView(this)
adView.adUnitId = AD_UNIT_ID
adView.setAdSize(adSize)
this.adView = adView
// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)
加载广告
AdManagerAdView 准备就绪之后,下一步是
加载广告。您可以使用 loadAd()
方法(在 AdManagerAdView
类中)。需要 AdManagerAdRequest
参数,其中包含运行时信息,如定位信息、
发出一个广告请求。
以下示例展示了如何加载广告:
Java
// Start loading the ad in the background.
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);
Kotlin
// Start loading the ad in the background.
val adRequest = AdManagerAdRequest.Builder().build()
adView.loadAd(adRequest)
如果广告加载失败,您不需要明确请求另一个广告,因为 但前提是您已将广告单元配置为刷新Google 移动广告 SDK 采用您在 Ad Manager 中指定的任何刷新率 网页界面如果您尚未启用刷新,则需要 请求。
大功告成!您的应用现在就可以展示横幅广告了。
广告事件
您可以监听广告生命周期内的许多事件,包括加载、 广告展示和点击以及广告打开和关闭事件。建议 在加载横幅广告之前设置回调。Java
adView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
adView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
其中每种可替换的方法
AdListener
对应于广告生命周期内的事件。
可替换的方法 | |
---|---|
onAdClicked() |
onAdClicked()
方法时,系统会调用该方法。
|
onAdClosed() |
onAdClosed()
方法。
目标网址应用可以使用此方法恢复暂停的活动,或
执行任何其他必要的操作,以做好互动准备。
|
onAdFailedToLoad() |
onAdFailedToLoad()
是唯一包含参数的方法。类型的错误参数
LoadAdError 描述了发生了什么错误。如需更多信息
有关调试广告加载错误,请参阅调试广告加载错误
文档。
|
onAdImpression() |
onAdImpression()
方法。
|
onAdLoaded() |
onAdLoaded()
方法。如果您想推迟
添加 AdManagerAdView
直到确定广告会加载为止
您可以在此处执行此操作。
|
onAdOpened() |
onAdOpened()
方法。
|
适用于视频广告的硬件加速功能
要想让视频广告在横幅广告视图中成功展示,硬件 加速必须 。
硬件加速默认处于启用状态,但有些应用可能会选择停用
。如果您的应用属于这种情况,我们建议您为
Activity
类使用广告。
启用硬件加速
如果您的应用在启用硬件加速时无法正常运行
也可以针对单个活动进行控制要启用或
停用硬件加速,则可以使用 android:hardwareAccelerated
属性
<application>
和
<activity>
AndroidManifest.xml
中的一些元素。以下示例将启用硬件
加速,但对一个 activity 停用加速:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
有关详情,请参阅硬件加速 指南,了解更多信息 有关用于控制硬件加速的选项的信息。请注意, 对于单个广告浏览,如果相应活动 已停用,因此 activity 本身必须启用硬件加速。
手动统计展示
手动展示次数统计仅适用于直销型和自家广告系列 包含直接在 Ad Manager 中投放的广告素材的广告系列。不应 用于补余广告或第三方广告联盟广告。有关详情,请参阅计数 展示次数和点击次数。
如果您有特殊的广告请求,可以手动向 Ad Manager 发送展示 ping
应记录展示的条件。为此,请启用
AdManagerAdRequest
(适用于加载广告之前的手动展示次数):
Java
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build();
Kotlin
val adRequest = AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build()
当您确定广告已成功返回并展示在屏幕上时 您可以手动记录展示次数:
Java
{ ad_view }.recordManualImpression();
Kotlin
AdManagerAdView.recordManualImpression()
应用事件
借助应用事件,您可以制作能够向应用代码发送消息的广告。应用 然后根据这些消息采取相应措施
您可以使用 AppEventListener
监听 Ad Manager 所特有的应用事件。
这些事件可能会发生在广告生命周期内的任何时间,甚至是在
调用 onAdLoaded()
。
Java
public interface AppEventListener {
void onAppEvent(String name, String info);
}
Kotlin
interface AppEventListener {
fun onAppEvent(name: String, info: String)
}
当发生应用事件时,系统会调用 void onAppEvent(String name, String info)
。此接口可由您的 activity 或任何其他应用实现
对象:
Java
import com.google.android.gms.ads.admanager.*;
public class BannerExample extends Activity implements AppEventListener {
}
Kotlin
import com.google.android.gms.ads.admanager.*
class BannerExample : Activity(), AppEventListener {
}
然后传递给 AdManagerAdView
:
Java
AdManagerAdView.setAppEventListener(this);
Kotlin
AdManagerAdView.appEventListener = this
以下示例展示了如何更改应用的背景颜色 具体取决于具有颜色名称的应用事件:
Java
@Override
public void onAppEvent(String name, String info) {
if ("color".equals(name)) {
if ("green".equals(info)) {
// Set background color to green.
} else if ("blue".equals(info)) {
// Set background color to blue.
} else {
// Set background color to black.
}
}
}
Kotlin
override fun onAppEvent(name: String?, info: String?) {
if (name == "color") {
when (info) {
"green" -> {
// Set background color to green.
}
"blue" -> {
// Set background color to blue.
}
else -> {
// Set background color to black.
}
}
}
}
另外,以下是向 监听器:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
有关应用事件的实现方式,请参阅 Ad Manager 应用事件示例 API 演示版应用。
其他资源
GitHub 上的示例
后续步骤
折叠式横幅广告
折叠式横幅广告是一种横幅广告,初始展示时采用较大的 叠加层,以及一个可将广告合拢为较小尺寸的按钮。考虑使用 进一步优化广告效果如需了解详情,请参阅折叠式横幅广告。
内嵌自适应横幅广告
与锚定自适应横幅广告相比,内嵌自适应横幅广告是一种更大、更高的横幅广告 横幅广告。它们的高度可以调整,可以达到设备屏幕的高度。 对于以下情况,我们建议采用内嵌自适应横幅广告(而非锚定自适应横幅广告) 在可滚动内容中投放横幅广告的应用。请参阅内联自适应 横幅 。