a. 第三方参数申请,请确认要接入的第三方广告变现渠道。
b. 接入对应 SuperSDK 广告变现接口。
注意:若游戏母包已经接入广告变现,需要将广告变现依赖的三方库从 Xcode 工程中移除后,再接入。
a. 下载资源,SuperSDK 4.0+ 广告变现模块(Java 版)。
b. 导入资源,将 module-adrealize-release.jar 导入到游戏工程的 libs 目录下(与 supersdk.jar 同目录)。
c. 第三方参数申请,请确认要接入的第三方广告变现渠道。
d. 接入对应 SuperSDK 广告变现接口。
注意一:iOS 国内广告变现暂不支持。
注意二:Android 国内广告变现目前只有穿山甲,游戏研发只需要按照以下文档接入。
接口描述:弹出广告视频,在初始化完成后调用。
注意:此接口仅支持 Android。
接口调用:
Dictionary<string, object> configDic = new Dictionary<string, object>();
configDic.Add("code_id","901121593"); // 平台创建的代码位 ID 以 9 开头 9 位数字
configDic.Add("reward_name","金币"); // 媒体平台创建代码位时配置的名称
configDic.Add("reward_amount","3"); // 媒体平台创建代码位时配置的数值
configDic.Add("tag_id","tag123"); // tag_id
configDic.Add("media_extra",""); // 用户透传信息(选填)仅支持单个 json 对象格式,不可以嵌套 json 对象
configDic.Add("orientation","1"); // 期望视频的播放方向 与创建代码位勾选的方向保持一致 (必填)HORIZONTAL:2、VERTICAL:1
SuperSDK.getInstance().Invoke("ad_realize", "showAdRealize", configDic));
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
if (moduleName.Equals("ad_realize")) {
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
}
}
注意一:iOS 海外广告变现目前支持 AdMob,游戏研发只需要按照以下文档接入。
注意二:Android 海外广告变现目前支持 AdMob、TradPlus,游戏研发只需要按照以下文档接入。
接口描述:显示 GDPR 欧盟协议弹窗。
注意一:此接口仅支持 iOS。
注意二:GDPR 是欧盟地区的政策需要,在弹出广告前,需要经过用户的授权同意,此接口为必须要接入。
注意三:在登录成功,进入游戏主界面后调用。
接口调用:
SuperSDK.getInstance().Invoke("ad_realize", "openGDPR", null));
接口描述:预加载广告视频,在初始化完成后调用。
接口调用:
Dictionary<string, object> configDic = new Dictionary<string, object>();
configDic.Add("platformType","TradPlus"); // 平台类型(必填),目前支持:TradPlus、AdMob
configDic.Add("adUnitId","5605E59FC6D0074211DC650C862F9313"); // 广告单元 ID(必填)
configDic.Add("opgameId","2113"); // 混服组 ID,如不能直接获取,默认使用 server_id 前 4 位(必填)
configDic.Add("sceneId","373D9D74A274F3"); // 广告场景 ID(选填),没有则默认传空值
configDic.Add("clientIp","110.10.12.113"); // 客户端 IP(选填),没有则默认传空值
SuperSDK.getInstance().Invoke("ad_realize", "preLoadAd", configDic));
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("ad_realize"))
{
if (funcName.Equals("preLoadAd"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
if (code == 1009) {
// string msg = JsonMapper.ToJson(resultData["data"]);
// JsonData mData = JsonMapper.ToObject(msg);
// string platformType = mData["platformType"].ToString();
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
}
}
}
}
日志打印:
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":"预加载视频广告已加载"
}
接口描述:弹出广告视频,在初始化完成后调用。
注意:该接口不强制依赖预加载,可直接调用。
接口调用:
Dictionary<string, object> configDic = new Dictionary<string, object>();
configDic.Add("platformType","TradPlus"); // 平台类型(必填),目前支持:TradPlus、AdMob
configDic.Add("adUnitId","5605E59FC6D0074211DC650C862F9313"); // 广告单元 ID(必填)
configDic.Add("opgameId","2113"); // 混服组 ID,如不能直接获取,默认使用 server_id 前 4 位(必填)
configDic.Add("sceneId","373D9D74A274F3"); // 广告场景 ID(选填),没有则默认传空值
configDic.Add("clientIp","110.10.12.113"); // 客户端 IP(选填),没有则默认传空值
SuperSDK.getInstance().Invoke("ad_realize", "showAdRealize", configDic));
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("ad_realize"))
{
if (funcName.Equals("showAdRealize"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
if (code == 1006) {
// string msg = JsonMapper.ToJson(resultData["data"]);
// JsonData mData = JsonMapper.ToObject(msg);
// string platformType = mData["platformType"].ToString();
// 判断这是广告变现模块("ad_realize")内的方法
// Code 码以及返回内容 请看附录
}
}
}
}
日志打印:
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 | 预加载视频广告成功 |