开始之前
在开始集成横幅广告之前,您需要完成以下步骤:
- 在 OpenMediation 开发者前台页面,创建开发者账号,添加应用,然后申请并配置一个‘Banner Ad’类型的广告位,操作手册在 这里。
- 在 Android SDK 下载与集成 指导下,将 OpenMediation SDK添加到您的开发项目并完成了SDK初始化操作
- 如果需要聚合第三方平台,您需要在完成本节的广告集成之后,参考 添加聚合网络 进行操作
横幅广告
横幅广告(Banner)提供一个长方形的横幅广告,一般在应用指定的区域提供展现。
横幅广告格式:
SDK会触发一系列事件通知应用程序Banner广告的初始化、加载、展示等结果。使用Banner广告的过程,需要创建BannerAd对象、实现并设置监听事件的Listener,然后调用loadAd方法加载并展示广告。Banner广告没有 show 方法, 需要在广告加载成功后马上展示广告。
下面的代码示例展示了如何使用BannerAd 对象和实现BannerAdListener 接口来监听广告事件。Banner广告所有的事件类型都能在下面代码中找到。
import com.openmediation.sdk.banner.AdSize;
import com.openmediation.sdk.banner.BannerAd;
import com.openmediation.sdk.banner.BannerAdListener;
...
BannerAd bannerAd = new BannerAd(placementId, new BannerAdListener() {
/**
* Invoked when Banner Ad are available.
*/
@Override
public void onBannerAdLoaded(String placementId, View view) {
// bannerAd is load success
}
/**
* Invoked when the end user clicked on the Banner Ad
*/
@Override
public void onBannerAdClicked(String placementId) {
// bannerAd clicked
}
/**
* Invoked when the call to load a Banner Ad has failed
* String error contains the reason for the failure.
*/
@Override
public void onBannerAdLoadFailed(String placementId, Error error) {
// bannerAd fail
}
});
// default size
bannerAd.setAdSize(AdSize.BANNER);
有关我们支持的标准横幅尺寸的详细信息,请参见下表:
AdSize | Description | Dimensions in dp (WxH) |
---|---|---|
AdSize.BANNER | Standard Banner | 320 x 50 |
AdSize.MEDIUM_RECTANGLE | Medium Rectangular Banner | 300 x 250 |
AdSize.LEADERBOARD | LeaderBoard Banner | 728 x 90 |
AdSize.SMART | Smart Banner (Adjusted for both mobile and tablet) |
If (screen height ≤ 720) 320 x 50 If (screen height > 720) 728 x 90 |
您需要在展示广告前调用 loadAd 方法来请求和缓存广告。我们建议您务必在广告展示前提前一定时间进行调用,以免影响广告体验。
bannerAd.loadAd();
注意:
- loadAd 方法可以同时被多次调用,但是我们不建议这么做。因为短时间的连续调用不会增加广告填充率,如果已经有正在进行中的加载,新的请求不会被处理。
- 警告: 在onAdFailed回调事件中进行广告加载操作是非常危险的,如果您一定要在此处进行加载,请务必设置一个时间间隔限制,避免程序因为无网络等原因造成连续的失败而进入死循环。
- 请不要在应用程序中定时请求Banner广告,OpenMediation SDK会自动对Banner广告进行定时刷新。
第二步中Banner广告加载成功后,应用程序将会收到onAdReady事件表明广告缓存成功。一旦收到onAdReady事件,您可以进行广告展示,请参考以下代码示例。
private RelativeLayout adParent;
...
adParent = this.findViewById(R.id.banner_ad_container);
...
@Override
public void onBannerAdLoaded(String placementId, View view) {
// bannerAd is loaded successfully
if (null != view.getParent()) {
((ViewGroup) view.getParent()).removeView(view);
}
adParent.removeAllViews();
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
adParent.addView(view, layoutParams);
}
■ R.id.banner_ad_container 代码:
<RelativeLayout
android:id="@+id/banner_ad_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</RelativeLayout>
我们建议您在Activity被销毁之前调用destroy方法来释放BannerAd对象。
@Override
public void onDestroy() {
if (bannerAd != null) {
bannerAd.destroy();
}
super.onDestroy();
}
您可以在下面找到支持的Network,以及每个Network Banner Size的尺寸:
Platforms | BANNER | MEDIUM_RECTANGLE | LEADERBOARD | SMART |
---|---|---|---|---|
AdMob | Banner | Medium Rectangle | Leaderboard | Smart |
Banner | Medium Rectangle | Leaderboard | Banner / Leaderboard | |
UnityAds | Banner | Leaderboard | Banner / Leaderboard | |
Vungle | Banner | Leaderboard | Banner / Leaderboard | |
AppLovin | Banner | Leaderboard | Banner / Leaderboard | |
IronSource | Banner | Medium Rectangle | Leaderboard | Smart |
评论
文章评论已关闭。