1. 下载资源,SuperSDK 4.0+ 广告变现模块(Java 版)。
2. 导入资源,将 module-adrealize-release.jar 导入到游戏工程的 libs 目录下(与 supersdk.jar 同目录)。
3. 第三方参数申请,请确认要接入的第三方广告变现渠道。
4. 接入对应 SuperSDK 广告变现接口。
说明:国内广告变现目前只有穿山甲,游戏研发只需要按照以下文档接入。
接口描述:弹出广告视频,在初始化完成后调用。
接口调用:
Map<String, String> map = new HashMap<String, String>();
map.put("code_id","901121593"); // 平台创建的代码位 ID 以 9 开头 9 位数字
map.put("reward_name","金币"); // 媒体平台创建代码位时配置的名称
map.put("reward_amount","3"); // 媒体平台创建代码位时配置的数值
map.put("tag_id","tag123"); // tag_id
map.put("media_extra",""); // 用户透传信息(选填)仅支持单个 json 对象格式,不可以嵌套 json 对象
map.put("orientation","1"); // 期望视频的播放方向 与创建代码位勾选的方向保持一致 (必填) HORIZONTAL:2、VERTICAL:1
SuperSDK.invoke("ad_realize", "showAdRealize", map);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if("ad_realize".equals(moduleName)) {
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
说明:海外广告变现目前支持 AdMob、TradPlus,游戏研发只需要按照以下文档接入。
接口描述:预加载广告视频,在初始化完成后调用。
接口调用:
Map<String, String> map = new HashMap<String, String>();
map.put("platformType","TradPlus"); // 平台类型(必填),目前支持:TradPlus、AdMob
map.put("adUnitId","5605E59FC6D0074211DC650C862F9313"); // 广告单元 ID(必填)
map.put("opgameId","2113"); // 混服组 ID,如不能直接获取,默认使用 server_id 前 4 位(必填)
map.put("sceneId","373D9D74A274F3"); // 广告场景 ID(选填),没有则默认传空值
map.put("clientIp","110.10.12.113"); // 客户端 IP(选填),没有则默认传空值
SuperSDK.invoke("ad_realize", "preLoadAd", map);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if("ad_realize".equals(moduleName) && "preLoadAd".equals(funcName)) {
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
JSONObject data = json.getJSONObject("data");
// 广告平台类型(TradPlus 或 AdMob)
String platformType = data.getString("platformType");
// 系统(Android 或 iOS)
String os = data.getString("os");
// 预加载广告完成
if(code == 1009) {
String msg = json.getString("msg");
Log.d("supersdk", platformType + " 广告变现,玩家在 " + os + " 预加载视频广告已完成");
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
日志打印:
moduleName:ad_realize
funcName:preLoadAd
result:
{
"code":1009,
"data":{
"platformType":"TradPlus", // 平台类型(TradPlus 或 AdMob)(必定返回)
"os":"Android", // 系统(Android 或 iOS)(必定返回)
"adEcpm":"0", // Ecpm(获得广告奖励返回)
"adUnitId":"5605E59FC6D0074211DC650C862F9313", // 广告单元 ID(获得广告奖励、预加载广告视频成功返回)
"adSourceId":"", // 三方广告位 ID(获得广告奖励返回)
"adSourceName":"", // 三方广告网络名称(获得广告奖励返回)
"adLoadTime":"", // 加载时长(毫秒)(获得广告奖励返回)
"adResponseId":"", // 一次广告请求唯一标识(获得广告奖励返回)
"adCurrencyCode":"USD", // 货币单位(获得广告奖励返回)
"adCountryCode":"", // 国家码(获得广告奖励返回)
"adSceneId":"", // 广告场景 ID(获得广告奖励返回)
"adRewardName":"", // 后台配置的奖励项目(获得广告奖励返回)
"adRewardNumber":"" // 后台配置的奖励数量(获得广告奖励返回)
},
"msg":"预加载视频广告已加载"
}
接口描述:弹出广告视频,在初始化完成后调用。
注意:该接口不强制依赖预加载,可直接调用。
接口调用:
Map<String, String> map = new HashMap<String, String>();
map.put("platformType","TradPlus"); // 平台类型(必填),目前支持:TradPlus、AdMob
map.put("adUnitId","5605E59FC6D0074211DC650C862F9313"); // 广告单元 ID(必填)
map.put("opgameId","2113"); // 混服组 ID,如不能直接获取,默认使用 server_id 前 4 位(必填)
map.put("sceneId","373D9D74A274F3"); // 广告场景 ID(选填),没有则默认传空值
map.put("clientIp","110.10.12.113"); // 客户端 IP(选填),没有则默认传空值
SuperSDK.invoke("ad_realize", "showAdRealize", map);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
if("ad_realize".equals(moduleName) && "showAdRealize".equals(funcName)) {
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
JSONObject data = json.getJSONObject("data");
// 广告平台类型(TradPlus 或 AdMob)
String platformType = data.getString("platformType");
// 系统(Android 或 iOS)
String os = data.getString("os");
// 获得广告奖励
if(code == 1006) {
String msg = json.getString("msg");
Log.d("supersdk", platformType + " 广告变现,玩家在 " + os + " 获得广告奖励");
}else{
String msg = json.getString("msg");
Log.d("supersdk", platformType + " 广告变现,玩家在 " + os + " 上观看进度: " + msg);
}
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
日志打印:
moduleName:ad_realize
funcName:showAdRealize
result:
{
"code":1006,
"data":{
"platformType":"TradPlus", // 平台类型(TradPlus 或 AdMob)(必定返回)
"os":"Android", // 系统(Android 或 iOS)(必定返回)
"adEcpm":"0.01", // Ecpm(获得广告奖励返回)
"adUnitId":"5605E59FC6D0074211DC650C862F9313", // 广告单元 ID(获得广告奖励、预加载广告视频成功返回)
"adSourceId":"959fe8b4696d175f", // 三方广告位 ID(获得广告奖励返回)
"adSourceName":"applovin", // 三方广告网络名称(获得广告奖励返回)
"adLoadTime":854, // 加载时长(毫秒)(获得广告奖励返回)
"adResponseId":"a6da2fc6-1c31-4742-8c9a-757650e17aac", // 一次广告请求唯一标识(获得广告奖励返回)
"adCurrencyCode":"USD", // 货币单位(获得广告奖励返回)
"adCountryCode":"CN", // 国家码(获得广告奖励返回)
"adSceneId":"", // 广告场景 ID(获得广告奖励返回)
"adRewardName":"", // 后台配置的奖励项目(获得广告奖励返回)
"adRewardNumber":0 // 后台配置的奖励数量(获得广告奖励返回)
},
"msg":"视频播放完成,获得广告奖励"
}
常量字符串 | Code码 | 描述 |
---|---|---|
SUCCESS | 1000 | 成功 |
AD_SHOW | 1001 | 视频广告展示 |
AD_VIDEO_BAR_CLICK | 1002 | 广告的下载 bar 点击 |
AD_CLOSE | 1003 | 视频广告关闭 |
AD_VIDEO_COMPLETE | 1004 | 视频播放完成 |
AD_VIDEO_ERROR | 1005 | 视频广告播放错误 |
AD_REWARD_VERIFY | 1006 | 视频播放完成后,奖励验证回调 |
AD_SKIP_VIDEO | 1007 | 视频广告跳过 |
AD_VIDEO_START | 1008 | 视频播放开始 |
AD_PRE_LOAD_SUCCESS | 1009 | 预加载视频广告成功 |