#IronSource Android游戏banner广告快速接入指南
给非Android开发人员的一个快速接入指南
最近IronSource开始支持Banner广告了,总结一下Android游戏接入IronSource Banner广告的一些要点:
官方文档
https://developers.ironsrc.com/ironsource-mobile/android/banner-integration-android
详细接入步骤
1. 初始化Banner广告
- 1). 创建banner的容器 FrameLayout
- 2). 创建banner view (设置尺寸)
- 3). 将banner view添加到容器里
- 4). 将banner容器添加到MainActivity
- 5). 设置banner回调方法
- 6). 加载banner广告
public static void initBanner(boolean showAfterLoad){ // _app = MainActivity if(_app == null){ Log.w(TAG, "initBanner: App not inited"); return; }// 1). 创建banner容器 FrameLayout bannerContainer = new FrameLayout(_app); FrameLayout.LayoutParams containerParams = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT ); containerParams.gravity = Gravity.BOTTOM; _bannerContainer = bannerContainer; // 2). 创建banner view IronSourceBannerLayout banner = IronSource.createBanner(_app, ISBannerSize.BANNER); _banner = banner; FrameLayout.LayoutParams bannerParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); // 3). 将banner view添加到容器里 bannerContainer.addView(banner, 0, bannerParams); // 4). 把bannerContainer添加到MainActivity里 _app.addContentView(bannerContainer, containerParams); // 5). 设置banner回调方法 banner.setBannerListener(new BannerListener() { @Override public void onBannerAdLoaded() { // Called after a banner ad has been successfully loaded Log.d(TAG, "onBannerAdLoaded: ===> Banner loaded"); } @Override public void onBannerAdLoadFailed(IronSourceError error) { Log.d(TAG, "onBannerAdLoadFailed: ===> Banner load failed: " + error.getErrorMessage()); // Called after a banner has attempted to load an ad but failed. _app.runOnUiThread(new Runnable() { @Override public void run() { _bannerContainer.removeAllViews(); // TODO: 也许可以尝试重新创建banner view并load } }); } @Override public void onBannerAdClicked() { // Called after a banner has been clicked. Log.d(TAG, "onBannerAdClicked: ===> Banner Clicked"); } @Override public void onBannerAdScreenPresented() { // Called when a banner is about to present a full screen content. Log.d(TAG, "onBannerAdScreenPresented: ===> Banner Showed"); } @Override public void onBannerAdScreenDismissed() { // Called after a full screen content has been dismissed Log.d(TAG, "onBannerAdScreenDismissed: ===> Banner Hided"); } @Override public void onBannerAdLeftApplication() { // Called when a user would be taken out of the application context. Log.d(TAG, "onBannerAdLeftApplication: "); } }); // 6). 加载banner广告 IronSource.loadBanner(_banner); // 7). 如果不需要马上显示,可以隐藏 if(!showAfterLoad){ hideBanner(); } }
2. 加载Banner
IronSource.loadBanner(_banner);
3. 销毁Banner
IronSource.destroyBanner(_banner);
如果销毁了的话,应该是要重新创建banner view的。
4. 显示Banner
public static void showBanner(){
if(_banner == null){
Log.w(TAG, "showBanner: Banner Not Inited");
return;
}
Log.d(TAG, "showBanner: ===> start loading banner");
_banner.setVisibility(View.VISIBLE);
}
5. 隐藏Banner
public static void hideBanner(){ if(_banner == null){ Log.w(TAG, "hideBanner: Banner Not Inited"); return; }Log.d(TAG, "hideBanner: ===> hide banner"); _banner.setVisibility(View.INVISIBLE); }