cocos2d-x在android下添加插屏广告

来源:互联网 发布:c语言函数格式 编辑:程序博客网 时间:2024/06/11 13:55

最近完成了自己的一个小项目,理所当然地准备在应用里加些广告……不幸的是,我想要加的有着良好用户体验的插屏广告在cocos2d-x开发的android游戏下支持并不是很好,支持好的填充率估计又跟不上。多盟的插屏在android下可以强行加入,但试过是没法正常点击的。然后是艾德思奇,他的示例里没正常展示出插屏广告,但我在芒果聚合里可以看到正常显示一个广告的框架,admob不太适用于国内,有米和易传媒的插屏广告可以正常添加,但填充率大多时候很低,其它还有权限要得太高的就没试了,所以,如果打算在android下使用插屏广告的话首推的只有安沃了,他的Demo和多盟的一样运行很正常,算是我见过Demo里最好的两家了,至于哪个更适合赚钱,这个就仁者见仁,智者见智了,我只是不想让应用空着上路……

这里还要说下,在android下如果想在聚合里使用插屏广告基本是不可能的,因为添加插屏广告时有的是在sdk里全都写好了,只需要你调用代码,有的是需要你修改显示广告的视图或者context,所以直接使用聚合是没办法完全正确处理的,ios当然例外……下面说下如何在应用里添加安沃的插屏广告:

1.加sdk,这个估计都会,其实直接把包copy进libs目录就行

2.在cocos2d-x的activity里添加代码:

这里首先得添加广告监听接口:

public  class appActivity extends Cocos2dxActivity implements FullScreenAdListener{}

然后声明需要用到的广告视图:

private static AdDisplayer displayer;

接着在onCreate里初始化并添加广告的类型设置,以及广告请求:

//请在manifest里面设置当前activity属性     android:configChanges="keyboard|keyboardHidden|orientation|screenSize"// // 全屏广告实例displayer = AdDisplayer.getInstance(appActivity.this);// 初始化全屏广告参数displayer.initParems("5201f33630c542a0b851cb9325d744e2",true, appActivity.this);// 设置全屏格式/*  * 可选参数有:AdDisplayer.ADWO_FS_INTERCEPT 插屏全屏 *         AdDisplayer.ADWO_FS_ENTRY *         AdDisplayer.ADWO_FS_TRANSPOSITION *///displayer.setDesireAdForm(AdDisplayer.ADWO_FS_INTERCEPT);displayer.setDesireAdForm(AdDisplayer.ADWO_FS_INTERCEPT);// 设置请求广告类型 可选。displayer.setDesireAdType(AdDisplayer.ADWO_FS_TYPE_ALL);// 开始请求全屏广告displayer.requestFullScreenAd();

上面第一条注释也已经说明了,必须在要展示广告的activity里加上
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

否则是没法将广告按照全屏进行展示的,至于广告的类型就自己参考说明进行设置好了,注意在正式发布时可别在初始化时的第二个参数使用true,那是测试广告模式。

接着是一些回调方法:

@Overrideprotected void onStart() {super.onStart();}@Overridepublic void onReceiveAd() {Log.e(LOG_TAG, "onReceiveAd");// 接收到全屏广告。加载全屏广告并展示displayer.preLoadFullScreenAd();}@Overridepublic void onLoadAdComplete() {Log.e(LOG_TAG, "onLoadAdComplete");// 成功完成下载后,展示广告//layout = (RelativeLayout) findViewById(R.id.layout);}@Overridepublic void onFailedToReceiveAd(ErrorCode errorCode) {Log.e(LOG_TAG, "onFailedToReceiveAd");if (errorCode.getErrorCode() == 36) {// 下载广告资源失败,此次广告无法显示Log.e(LOG_TAG, "onFailedToReceiveAd downloading resources failed.");}}@Overridepublic void onAdDismiss() {//TODO 广告关闭回调接口Log.e(LOG_TAG, "onAdDismiss");}@Overrideprotected void onDestroy() {super.onDestroy();Log.e(LOG_TAG, "onDestroy");// 请在这里释放全屏广告资源if (displayer != null) {displayer.dismissDisplayer();displayer = null;}}

最后是用jin来调用显示广告的代码,这样会比较灵活:

public static void showMyAD(){displayer.displayFullScreenAd(mGLSurfaceView);}

上面 我把广告显示到了cocos2d-x的视图里,所以得在com.cocos2dx.lib里的cocos2dxActivity.java里修改下声明:

protected static Cocos2dxGLSurfaceView mGLSurfaceView;

最后在mainfest.xml里加上显示点击广告的activity,并且设置好权限即可完成插屏广告的添加,最后祝愿开发者们多赚money。


原创粉丝点击