KeyMob手机广告分为插页式广告与横幅广告,插页式广告是全屏广告,展示时会覆盖其宿主应用的界面。这些广告通常在应用流程的正常转换点展示, 例如,活动之间或游戏关卡之间的暂停时段。应用展示插页式广告时,用户可以选择点按广告,访问其目标网站,也可以将其关闭,返回应用。凭借直接的号召性用 语和较大的尺寸,插页式移动广告的效果十分突出。
由于插页式广告尺寸较大,因此与传统横幅广告相比,它们平均所需的带宽更多。为了满足这一要求,应用必须异步加载插页式广告(在广告展示前加载)。这可以确保广告在应该展示的时间展示。
本指南说明了如何使用KeyMob移动广告SDK在Android应用中集成插页式广告,并介绍了一个简单的活动类,该类会使用SDK方法预加载并展示测试插页式广告。
一:前提条件
本指南中的示例代码来自一个已加入了KeyMob移动广告SDK 的项目。为了在您的应用中使用SDK,您需要在Android Studio中执行以下操作:
1:下载 Google Repository
2:配置 Gradle
3:修改清单
或在 Eclipse 中执行以下操作:
1:下载 Google Play 服务
2:加入和引用 Google Play 服务库项目
3:修改清单
二:将插页式广告添加至活动
最好提前加载插页式广告,并使其稍后在应用流程的自然暂停点展示。例如,假设一个简单的游戏运行一会后即会结束,然后向用户显示重新开始的按钮。以下代码段说明了如何在用户开始新游戏之前预加载并展示插页式广告:
public class MainActivity extends ActionBarActivity {
InterstitialAd mInterstitialAd;
Button mNewGameButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNewGameButton=(Button)findViewById(R.id.newgame_button);
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
requestNewInterstitial();
mNewGameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
beginPlayingGame();
}
}
});
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
beginPlayingGame();
}
});
beginPlayingGame();
}
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("YOUR_DEVICE_HASH").build();
mInterstitialAd.loadAd(adRequest);
}
private void beginPlayingGame() {
// Play for a while, then display the New Game Button
}
}
该代码段不是为了介绍新的成员变量mInterstitial,而是为了让您了解活动中代码发生变化的四个位置。我们来分别看一下这些位置。
三:将 InterstitialAd 对象实例化
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
requestNewInterstitial();
在 此处构建了成员变量mInterstitialAd,并为其提供了广告单元 ID。虽然横幅广告通常是在 XML 布局文件中定义的,但插页式广告却不是在这类文件中定义的。它们是在应用的Java代码中创建并配置的。在活动有效期内,一个 InterstitialAd对象就可用于请求并展示多个插页式广告,因此您只需构建该对象一次。
注意:我们在上文使用的广告单元 ID 会返回测试广告。您可以在www.keymob.com为自己的应用创建广告单元。注意,虽然在此示例中我们已将广告单元 ID 硬编码到活动类中,但 ID 值还可以存储在字符串资源文件中。
四:展示插页式广告
mNewGameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
beginPlayingGame();
}
}
});
此处的新代码会检查插页式广告是否已加载,如果已加载,则会展示该广告。如果没有可展示的广告,则应用会直接进入下一关游戏。
五:创建 AdListener
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
beginPlayingGame();
}
});
我们在此处设置了一个包含onAdClosed事件(在插页式广告关闭时调用)处理程序的AdListener。上述代码会调用requestNewInterstitial方法,以开始下载新广告,并开始新游戏。
六:requestNewInterstitial
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("YOUR_DEVICE_HASH").build();
mInterstitialAd.loadAd(adRequest);
}
此处使用AdRequest.Builder对象创建了一个简单的请求,并且稍后将该请求传递给了InterstitialAd对象的loadAd方法,从而开始请求流程。
注意请求创建过程中addTestDevice方法的使用。在开发和测试应用时确保随时请求测试广告十分重要。使用已发布的广告进行测试违反AdMob政策,可能会导致您的帐户被暂停。如需详细了解测试广告的使用方法,请参阅我们的广告定位指南。
七:结果
具体是怎么展示插页式广告时该应用的,我就不截图给大家看了。大家不妨自己按照上面的步骤就可以做出来要看到的外观。
来源:oschina
链接:https://my.oschina.net/u/2505907/blog/536552