COCOS2D-X - Mintegral

Cocos2d-x Bridge 开发文档

1 概述

本文档描述了Cocos2d-x开发者如何集成Mintegral Cocos2d-x Bridge产品。
Cocos2d-x Bridge 将提供了4种广告形式,包括:RewardVideo(激励性视频)、InterstitialVideo(插页视频)、Interstitial(插屏)、InterActive(交互式广告)。

1.1 提供文件(点击下载)

/MintegralClasses/所有文件/
/mtgad/所有文件/

1.2 集成注意

建立好Cocos2d-x工程后,把上面提供的Bridege文件夹拷贝到你的项目中指定位置,编译Android和iOS项目,就可以了。

/你的项目/Classes/MintegralClasses/
/你的项目/proj.android-studio/app/src/org/cocos2dx/mtgad/

2 集成准备

2.1 申请账号

开发者从Mintegral运营人员处获取账号、密码后,登录M系统后台

2.2 App Key

开发者每个账号都有对应的AppKey,请求广告时需要用到该参数,它可以从M系统后台获取。
登录M系统后台,在AD Unit -> App界面,可以查看到该账号的AppKey,如图所示:

2.3 App Id

开发者每创建一个应用后,系统会自动生成AppId,可在AD Unit -> App界面查看到已创建的应用以及对应的AppId,如图所示:

2.4 Unit Id

开发者每创建一个广告位后,系统会自动生成UnitId,可在AD Unit -> AD Unit界面查看到已创建的广告位以及对应的UnitId,如图所示:

3 Cocos2d-x Bridge 开发环境的配置

3.1 开发需求

cocos2d-x-3.16
AppKeyAndroid Studio
Xcode

3.2 配置

1、配置NDK:Android 原生的SDK
下载地址:https://developer.android.com/ndk/downloads/index.html
建议配置地址:/Users/你的电脑/Library/Android/sdk/ndk-bundle/android-ndk-r14b/

2、配置ANDROID_SDK_ROOT:标准的Android SDK
下载地址:无,直接在用户的资源库中查找
地址:/Users/你的电脑/Library/Android/sdk/

3、配置ANT_ROOT:多渠道发行打包工具
下载地址:http://ant.apache.org/bindownload.cgi
建议配置地址: /Users/你的电脑/Library/Android/sdk/apache-ant-1.10.1/bin/

4 配置开发环境

4.1 iOS

A、添加mtgsdk的framework到项目工程Add Files to …,按着 iOS开发者文档 添加系统库的framework;

B、在工程的Build Settings中,找到Other Linker Flags,增加一个flag:-ObjC,注意大小写。

C、就是添加两个Frameworks:GameController.framework和MediaPlayer.framework。达到连接器的工作原理

4.2 Android

A、添加MTGSDK到项目工程,按着 Android开发者文档 把jar包和res文件添加到Android工程;

B、修改 你的项目/proj.android-studio/app/jni/Android.mk 文件,添加Classes文件夹需要的工程文件;

C、然后修改AndroidManifest文件,把各种权限添加上;

打开 AndroidManifest.xml,配置以下内容:

必要权限

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

非必要权限

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

5 欧盟GDPR版本须知

从2018年5月25日开始,欧盟的“通用数据保护条例”(GDPR)将生效。 开发者需要更新Mintergal SDK并按以下方法集成,否则会影响广告正常投放。同时,我们更新了Mintegral隐私政策

注意
1、Android仅针对SDK v_8.11.0版本及以上版本,对应plugin版本为V_1.3.0。
2、iOS仅针对SDK v_3.8.0 版本及以上版本,对应plugin版本为V_1.3.0。
3、如果不上报用户信息,将会影响广告投放,可能会引起没有广告返回的情况,请知悉。
4、对于欧盟用户,开发者集成时,建议在征得用户同意之前,先不要初始化SDK,以免引起不必要的麻烦。

Mintegral GDPR版本新增接口说明
1、设置是否获取用户信息的开关,1为允许,0为拒绝。

MTGCommonBridge::setConsentStatusInfoType("1");

2、获取用户设置的开关状态。

MTGCommonBridge::getConsentStatusInfoType();

6 激励性视频广告接入

6.1 接入流程

1、确保完成Mintegral Cocos2d-x Bridge 初始化

2、请在AndroidManifest.xml文件声明激励性视频的Activity

<application android:enabled="true">
 <activity
            android:name="com.mintegral.msdk.reward.player.MTGRewardVideoActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
</application>

3、设置奖励信息,点击设置Virtual Reward,添加激励信息后,会自动生成RewardId
![](./rewardSetting.png =350×560)

4、创建广告位时设置回调方式,视频播放完成后会给予开发者回调
![](./rewardUnit.png =350×560)

服务器回调方式:

声明callbakUrl,只需要开发者修改域名部分

例如:http(s)://www.sampleurl.com/mintegral?user_id={user_id}&trans_id={trans_id}&reward_amout={reward_amount}&reward_name={reward_name}&sign={sign}&unit_id={unit_id}

客户端回调方式:
设置setRewardVideoListener监听,视频播放完成后会回调此方法,请您读取其中event.level中的JSON字符串解析奖励信息。

    void onRewardVideoCallBack(string code,string level){
    {
     printf("RewardName: %s\n", code.c_str());
     printf("RewardAmout: %s\n", level.c_str());
    }

5、初始化RewardVideo广告

导入

#include "MintegralClasses/RewardVideo/MTGAdRewardVideoBridge.h"

初始化

MTGAdRewardVideoBridge::initMintegralSDK("92762", "936dcbdd57fe235fd7cf61c2e93da3c4");

6、设置侦听回调

void onRewardVideoCallBack(string code,string level){
    printf("code: %s\n", code.c_str());
    printf("level: %s\n", level.c_str());
}

MTGAdRewardVideoBridge::addCallbackRewardVideoAd(onRewardVideoCallBack);

7、调用loadRewardVideo方法

MTGAdRewardVideoBridge::loadRewardVideoAd("21310");   

8、在播放之前,判断视频是否ready,如果true,则调用show方法

isReady = MTGAdRewardVideoBridge::isReadyRewardVideoAd("21310");
if(isReady){
    MTGAdRewardVideoBridge::showRewardVideoAd("21310","8794","123");
}

9、RewardVideo广告形式相关方法的介绍

initMintegralSDK(string appid,string AppKey)

用于初始化MTGSDK

参数名 参数信息
appid 应用的ID
AppKey 应用的KEY

addCallbackRewardVideoAd(RewardVideoResultEvent callback)

设置消息回调方法

参数名 参数信息
callback 消息回调方法

监听与视频广告有关的状态

参数名 参数信息
onLoadSuccessRewardVideo 广告数据加载成功
onLoadFailRewardVideo 广告数据加载失败
onShowFailRewardVideo 广告播放失败
onAdShowRewardVideo 广告正在播放
onAdCloseRewardVideo 广告播放完毕获取奖励信息
onAdClickedRewardVideo 广告安装界面点击

loadRewardVideoAd(string unitid)

用于加载激励性视频广告

参数名 参数信息
unitId M系统创建的广告位ID

showRewardVideoAd(string unitid,string rewardid,string userid)

用于预播放激励性视频

参数名 参数信息
unitId M系统创建的广告位ID
rewardId 激励ID,对应M系统后台配置的奖励信息
userId 用户ID,根据用户信息返回奖励

isReadyRewardVideoAd(string unitid)

视频是否准备好播放

参数名 参数信息
unitId M系统创建的广告位ID

cleanVideoCacheRewardVideoAd()

清除视频缓存

参数名 参数信息

7 插屏视频广告接入

7.1 接入流程

1、在后台设置视频可提前关闭。
2、在客户端集成的引用类有一些变化,展示广告的时候不需要传入奖励ID和用户ID。

1、初始化Interstitial Video广告

导入

#include "MintegralClasses/InterstitialVideo/MTGAdInterstitialVideoBridge.h"

初始化

MTGAdInterstitialVideoBridge::initMintegralSDK("92762", "936dcbdd57fe235fd7cf61c2e93da3c4");

2、设置侦听回调

void onInterstitialVideoCallBack(string code,string level){
    printf("code: %s\n", code.c_str());
    printf("level: %s\n", level.c_str());
}

MTGAdInterstitialVideoBridge::addCallbackInterstitialVideoAd(onInterstitialVideoCallBack);

3、调用loadInterstitialVideo方法

MTGAdInterstitialVideoBridge::loadInterstitialVideoAd("21310");   

4、在播放之前,判断视频是否ready,如果true,则调用show方法

isReady = MTGAdInterstitialVideoBridge::isReadyInterstitialVideoAd("21310");
if(isReady){
    MTGAdInterstitialVideoBridge::showInterstitialVideoAd("21310");
}

5、InterstitialVideo广告形式相关方法的介绍

initMintegralSDK(string appid,string AppKey)

用于初始化MTGSDK

参数名 参数信息
appid 应用的ID
AppKey 应用的KEY

addCallbackInterstitialVideoAd(InterstitialVideoResultEvent callback)

设置消息回调方法

参数名 参数信息
callback 消息回调方法

监听与视频广告有关的状态

参数名 参数信息
onLoadSuccessInterstitialVideo 广告数据加载成功
onLoadFailInterstitialVideo 广告数据加载失败
onShowFailInterstitialVideo 广告播放失败
onAdShowInterstitialVideo 广告正在播放
onAdCloseInterstitialVideo 广告播放完毕
onAdClickedInterstitialVideo 广告安装界面点击

loadInterstitialVideoAd(string unitid)

用于加载插屏视频广告

参数名 参数信息
unitId M系统创建的广告位ID

showInterstitialVideoAd(string unitid)

用于预播放插屏视频

参数名 参数信息
unitId M系统创建的广告位ID

isReadyInterstitialVideoAd(string unitid)

视频是否准备好播放

参数名 参数信息
unitId M系统创建的广告位ID

cleanVideoCacheInterstitialVideoAd()

清除视频缓存

参数名 参数信息

8 插屏广告接入

8.1 接入流程

1、初始化Interstitial广告

导入

#include "MintegralClasses/Interstitial/MTGAdInterstitialBridge.h"

初始化

MTGAdInterstitialBridge::initMintegralSDK("92763","936dcbdd57fe235fd7cf61c2e93da3c4");

2、设置侦听回调

void onInterstitialCallBack(string code,string level){
    printf("code: %s\n", code.c_str());
    printf("level: %s\n", level.c_str());
}

MTGAdInterstitialBridge::addCallbackInterstitialAd(onInterstitialCallBack);

3、调用loadInterstitial方法

MTGAdInterstitialBridge::loadInterstitialAd("21321");

4、调用showInterstitial方法

MTGAdInterstitialBridge::showInterstitialAd();

5、Interstitial广告形式相关方法的介绍

initMintegralSDK(string appid,string AppKey)

用于初始化MTGSDK

参数名 参数信息
appid 应用的ID
AppKey 应用的KEY

addCallbackInterstitialAd(InterstitialResultEvent callback)

设置消息回调方法

参数名 参数信息
callback 消息回调方法

监听与视频广告有关的状态

参数名 参数信息
onLoadSuccessInterstitial 广告数据加载成功
onLoadFailInterstitial 广告数据加载失败
onShowFailInterstitial 广告播放失败
onAdShowInterstitial 广告正在播放
onAdCloseInterstitial 广告播放完毕
onAdClickedInterstitial 广告安装界面点击

loadInterstitialAd(string unitid)

用于加载插屏视频广告

参数名 参数信息
unitId M系统创建的广告位ID

showInterstitialAd(string unitid)

用于预播放插屏视频

参数名 参数信息
unitId M系统创建的广告位ID

9 交互式广告接入

9.1 接入流程

1、初始化Interactive广告

导入

#include "MintegralClasses/InterActive/MTGAdInterActiveBridge.h"

初始化

MTGAdInterActiveBridge::initMintegralSDK("92763","936dcbdd57fe235fd7cf61c2e93da3c4");

2、设置侦听回调

void onInterActiveCallBack(string code,string level){
    printf("code: %s\n", code.c_str());
    printf("level: %s\n", level.c_str());
}

MTGAdInterActiveBridge::addCallbackInterActiveAd(onInterActiveCallBack);

3、调用loadInteractive方法

MTGAdInterActiveBridge::loadInterActiveAd("48127");

4、调用showInteractive方法

MTGAdInterActiveBridge::showInterActiveAd();

5、InterActive广告形式相关方法的介绍

initMintegralSDK(string appid,string AppKey)

用于初始化MTGSDK

参数名 参数信息
appid 应用的ID
AppKey 应用的KEY

addCallbackInterActiveAd(InterActiveResultEvent callback)

设置消息回调方法

参数名 参数信息
callback 消息回调方法

监听与视频广告有关的状态

参数名 参数信息
onLoadSuccessInterActive 广告数据加载成功
onLoadFailInterActive 广告数据加载失败
onShowFailInterActive 广告播放失败
onAdShowInterActive 广告正在播放
onAdCloseInterActive 广告播放完毕
onAdClickedInterActive 广告安装界面点击
onMaterialLoadSuccessInterActive 广告物料加载成功
onPlayCompleteInterActive 广告播放是否完成,1为完成,0为未完成

loadInterActiveAd(string unitid)

用于加载交互式广告

参数名 参数信息
unitId M系统创建的广告位ID

showInterActiveAd()

用于播放交互式广告


10 ChangeLog

版本号 changeLog 发布时间
1.6.1 基于Android9.9.0 ,iOS5.0.0版本SDK,新增2个InterActive广告事件回调:onMaterialLoadSuccessInterActive 素材加载成功;onPlayCompleteInterActive 试玩完成,参数:“0”试玩中断,“1”试玩完成。 2019.03.22
1.6.0 基于Android9.0.0,iOS3.4.0版本SDK,增加InterActive广告形式,增加新的GDPR设置获取方法。 2018.09.16
1.5.0 基于Android8.12.1 ,iOS4.0.0版本SDK,更换InterstitialVideo内部逻辑;替换Mintegral包名结构。 2018.7.24
1.4.0 基于Android8.11.2 SDK,iOS3.8.0版本SDK,支持GDPR功能。 2018.05.22
1.3.0 实现插屏(Interstitial)广告平台的接入功能。 2018.02.28
1.0.2 实现插屏视频(InterstitialVideo)广告平台的接入功能。 2018.01.10
1.0.1 实现激励性视频(RewardVideo)广告平台的接入功能。 2017.12.28
回到顶部