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政策,可能会致使您的账户被暂停。如需详细了解测试广告的使用方法,请参阅咱们的广告定位指南。
七:结果
具体是怎么展现插页式广告时该应用的,我就不截图给你们看了。你们不妨本身按照上面的步骤就能够作出来要看到的外观。app