supersdk

文档中心

文档中心

下载文档

广告变现模块


一、接入前准备

1. 下载资源,SuperSDK 4.0+ 广告变现模块(Java 版)

2. 导入资源,将 module-adrealize-release.jar 导入到游戏工程的 libs 目录下(与 supersdk.jar 同目录)。

3. 第三方参数申请,请确认要接入的第三方广告变现渠道。

4. 接入对应 SuperSDK 广告变现接口。

二、国内

说明:国内广告变现目前只有穿山甲,游戏研发只需要按照以下文档接入。

1. 显示广告接口

接口描述:弹出广告视频,在初始化完成后调用。

接口调用:

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,游戏研发只需要按照以下文档接入。

1. 预加载广告接口

接口描述:预加载广告视频,在初始化完成后调用。

接口调用:

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":"预加载视频广告已加载"
}

2. 显示广告接口

接口描述:弹出广告视频,在初始化完成后调用。

注意:该接口不强制依赖预加载,可直接调用。

接口调用:

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 预加载视频广告成功