展会信息港展会大全

cocos2dx Android接入芒果插屏广告,cocos2dxandroid
来源:互联网   发布日期:2015-09-28 15:09:27   浏览:2578次  

导读: cocos2dx Android接入芒果插屏广告,cocos2dxandroid 爬过了各种各样的坑,我们终于有一个像样的小游戏了!那么,接下来的工作就是接入广告,上线盈利 芒...

cocos2dx Android接入芒果插屏广告,cocos2dxandroid

爬过了各种各样的坑,我们终于有一个像样的小游戏了!那么,接下来的工作就是接入广告,上线盈利大笑

芒果是一个聚合广告平台,可以接入芒果后展示多盟、百度、AdMob等灰常多家的广告,非常方便。

1.广告平台配置

1.1注册芒果账号:http://www.adsmogo.com/

进入芒果后选择 App管理 -> 添加App,填好各种信息后点击下方的 ‘添加App’ 按钮,这里过程很简单,我就不截图啦。

点击App列表就可以看到我们刚刚添加的App了,点击App名称可以进入App的配置。这里我们先暂停一下,既然芒果是个聚合的广告平台,展示的是别的平台的广告,那么我们这里就需要在其他平台同样申请一个App,这里我们选择多盟,这个平台随意啦,大家根据自己的需要选择,也可以选择多个。

1.2注册多盟:http://www.domob.cn/

进入多盟开发者后台,点击 我的应用 -> 添加应用,然后填写应用信息。

添加广告位,这里注意一下一个应用是可以有多个广告位的~ 广告位类型选择普通插屏广告位。

成功后我们就可以得到publisher ID和广告位ID了。到这里多盟平台就配置完了。

1.3填写publisherID和广告位ID

返回芒果,到App配置的页面,选择全屏/插屏,然后点击多盟,填写publisher ID和广告位ID。

\

保存后在优先级上打个勾,到这里芒果平台的配置也搞定了~ 记下芒果的应用ID,我们在接入广告的时候需要用到。

2.导入SDK

先创建一个cocos2dx项目,确保可以编译到安卓上,怎么做就不用我介绍了吧(*^__^*)

下载芒果cocos2dx版本的sdk和多盟的sdk,找到我们需要的jar包。

打开eclipse,导入项目,我这里是AndroidTest,在libs目录上右键(如果没有libs就新建一个),选择import -> General -> File System,然后点击next

\

找到芒果和多盟的sdk,导入。

\

选中libs文件夹中的两个jar,右键 -> Build Path -> Add to Build Path。

\

3.添加用户权限

3.1打开AndroidManifest.xml,在<application>标签后面加入下面的代码:

<!-- 添加用户权限 -->

<!-- 连接网络权限INTERNET ,用亍请求广告(必须),mogo会使用该权限 -->

<uses-permission android:name="android.permission.INTERNET" />

<!-- 读取手机基本信息权限READ_PHONE_STATE,用亍精确统计用户的机型等信息(必须),mogo 会使用该权限 -->

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<!-- 读取网络信息权限ACCESS_NETWORK_STATE,用亍识别gprs网络的接入点的情况(必须), mogo会使用该权限 -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- 获取用户地理信息权限,用亍帮劣精 确统计 开发 者的程 序发布 乀后的 用户分 布情况 ,mogo会 使用该权限-->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

<!-- 读写sd 卡的权限,用亍缓存广告所用到的图片 ,节 省流量 ,并可 获得更 好的用 户体验 ,mogo会使用该权限-->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<!-- 获得当前wifi的状态,微于广告平台需要 此权限 ,mogo会 使用该 权限 -->

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<!-- 按效果付费功能需要的权限,mogo会使用该 权限 -->

<uses-permission android:name="android.permission.GET_TASKS"/>

<!--多盟所需权限,无此权限多盟将无法 展示广 告 -->

<uses-permission android:name="android.permission.VIBRATE" />

如下图所示:

\3.2 声明Mogo的Activity,在<application>标签里插入以下代码:

<!-- 声明Mogo的Activity -->

<activity

android:name="com.adsmogo.adview.AdsMogoWebView"

android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" />

<activity android:name="com.adsmogo.mriad.view.AdsMogoActionHandler"

android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" >

</activity>

<!-- 注册Service,自主广告不交换广告的应用下载功能所需 -->

<service android:name="com.adsmogo.controller.service.UpdateService" android:exported="true" android:process=":remote" />

<!-- 注册Service,安装应用所用 -->

<service android:name="com.adsmogo.controller.service.CountService" android:exported="true" android:process=":remote" /> 如下图所示:

\

4. 植入广告

4.1 在Cocos2dxActivity的onCreate函数中加入以下代码:

<span style="white-space:pre"> </span>AdsMogoInterstitialManager.setDefaultInitManualRefresh(false);

//设置AppKey

AdsMogoInterstitialManager.setDefaultInitAppKey("mogoID");

//设置当前Activity对象

AdsMogoInterstitialManager.setInitActivity(Cocos2dxActivity.this);

//初始化(必须先设置默认的AppKey和Activity对象才能通过此方法初始化SDK)

AdsMogoInterstitialManager.shareInstance().initDefaultInterstitial();

handler = new Handler() {

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

switch (msg.what) {

case 3:

/**

*进入展示时机

*当应用需要展示全屏广告调用interstitialShow(boolean isWait);

*通知SDK进入展示时机,SDK会竭尽全力展示出广告,当然由于网络等问题不能立即展示

*广告的,您可以通过参数isWait来控制授权SDK在获得到广告后立即展示广告。

*/

AdsMogoInterstitialManager.shareInstance()

.defaultInterstitial().interstitialShow(true);

break;

case 5:

/**

*退出展示时机

*如果您之前进入了展示时机,并且isWait参数设置为YES,那么在需要取消等待广告展示的

*时候调用方法interstitialCancel();来通知SDK

*/

AdsMogoInterstitialManager.shareInstance()

.defaultInterstitial().interstitialCancel();

break;

default:

break;

}

}

}; 将其中的mogoID替换成在芒果平台上申请到的应用ID。

4.2 在Cocos2dxActivity中加入下面三个函数:

<span style="white-space:pre"> </span>//退出展示时机

public static void closeInterstitial(){

Message msg = handler.obtainMessage();

msg.what = 5;

handler.sendMessage(msg);

}

//向handler发送要展示全插屏的消息

public static void showInterstitialStatic(){

Log.e("MogoCocos2dx Demo", "showInterstitialStatic");

Message msg = handler.obtainMessage();

msg.what = 3; handler.sendMessage(msg);

}

@Override

protected void onDestroy() {

super.onDestroy();

AdsMogoLayout.clear();

if (adView != null) {

adView.clearThread();

}

Log.e("AdsMogo", "onDestroy");

System.exit(0);

}

4.3 新建C++文件

在classes目录下新建MOGOAd.h和MOGOAd.cpp。

MOGOAd.h的内容是:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

#include <jni.h>

#include "platform/android/jni/JniHelper.h"

#include <android/log.h>

#endif

#include "cocos2d.h"

using namespace cocos2d;

class MOGOAd

{

public:

static void showInterstitial();

static void closeInterstitial();

};

MOGOAd.cpp的内容是:

#include "MOGOAd.h"

void MOGOAd::showInterstitial()

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

JniMethodInfo showInterstitial;

bool isHave = JniHelper::getStaticMethodInfo(showInterstitial,"org/cocos2dx/cpp/Cocos2dxActivity","showInterstitialStatic","()V");

if (!isHave) {

CCLog("jni:hideBannerStatic false");

}else{

CCLog("jni:hideBannerStatic true");

showInterstitial.env->CallStaticVoidMethod(showInterstitial.classID, showInterstitial.methodID);

}

#endif

}

void MOGOAd::closeInterstitial()

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

JniMethodInfo closeInterstitial;

bool isHave = JniHelper::getStaticMethodInfo(closeInterstitial,"org/cocos2dx/cpp/Cocos2dxActivity","closeInterstitial","()V");

if (!isHave) {

CCLog("jni:hideBannerStatic false");

}else{

CCLog("jni:hideBannerStatic true");

closeInterstitial.env->CallStaticVoidMethod(closeInterstitial.classID, closeInterstitial.methodID);

}

#endif

}

4.4 将HelloWorldScene.cpp中的点击按钮方法改为:

void HelloWorld::menuCloseCallback(Ref* pSender)

{

MOGOAd::showInterstitial();

}

OK,功德圆满,在Android.mk里加入MOGOAd.cpp,编译,运行。

\

成功!接下来提交审核,等待通过就可以了~

http://www.bkjia.com/Androidjc/923620.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/923620.htmlTechArticlecocos2dx Android接入芒果插屏广告,cocos2dxandroid 爬过了各种各样的坑,我们终于有一个像样的小游戏了!那么,接下来的工作就是接入广告,...

赞助本站

人工智能实验室

相关热词: android开发 应用开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港