supersdk

文档中心

文档中心

下载文档

广告模块


一、接入前准备

1. 下载资源,SuperSDK 广告模块(Android For Java版)

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

3. 调用广告接口,可根据以下国内和海外分别接入。

二、国内广告

说明:国内广告目前支持 YAD、今日头条、广点通、UC、快手,游戏研发只需要按照以下文档接入。

注意:国内广告因为需要满足隐私合规,游戏需要在初始化成功且用户以同意用户隐私的情况下才能开始调用广告事件。

1. 打开事件(必接)

说明:初始化成功且用户以同意用户隐私的情况下后调用。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_open"); // 广告事件 ID,必传
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写				
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

2. 登录事件(必接)

说明:在登录成功后调用,如果角色信息、服务器信息没有值,可以传默认值。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_login"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "1"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写			
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

3. 创建角色事件(必接)

说明:在创角成功后调用。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_createrole"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写		
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

4. 升级事件(必接)

说明:在每次玩家等级升级成功后调用。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_levelup"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填	
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写	
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

5. 退出事件(必接)

说明:在玩家退出游戏时调用,即关闭游戏。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_exit"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填	
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写	
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

6. 注册事件(必接)

说明:在注册账号时调用,如果无法知道注册账号时间,则在创角成功后调用(需要在调用创建角色事件之前调用)。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_register"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填	
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

7. 支付事件(必接)

说明:游戏服务端通知前端发货时调用(实际到账时调用)。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "ad_pay"); // 广告事件 ID,必传
map.put("osdk_user_id", "0060015_guest111111"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id,String 型
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称,String 型
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写
// 支付额外参数
map.put("orderId", "订单号") // 游戏订单号,String 型,必传
map.put("amount", "金额") // 支付金额(需要是整数,比如:6、12),String 型,必传
map.put("productId", "道具id") // 道具 id,String 型,必传
map.put("productName", "道具名称") // 道具名称,String 型,必传
map.put("way", "1") // 渠道号,float 型,选传
map.put("currency", "RMB") // 货币类型,String 型,选传
map.put("type", "1") // 支付类型,int 型,选传
map.put("discount", "0.1") // 支付折扣,float 型,选传
SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, 	BCoreConst.advert.FUNC_TRACK, map);

8. 扩展事件(选接)

说明:需要调用其他广告事件时调用(投放有特殊要求时才接入,无特殊要求时无需接入)。

Map<String, String>  map = new HashMap<String, String>();
map.put(BCoreConst.advert.KEY_EVENT_ID, "事件id"); // 广告事件 ID,必传
map.put("osdk_user_id", "uid"); // 玩家 uid,String 型
map.put("serverId", "12345678"); // 服务器 id,String 型
map.put("level", "10"); // 角色等级,int 型的 String 字符串
map.put("roleId", "1999"); // 角色 id
map.put("roleType", "-1"); // 角色类型 id,默认填-1,int 型的 String 字符串
map.put("roleCareer", "-1"); // 角色职业 id,默认填-1,int 型的 String 字符串
map.put("roleName", "角色名称"); // 角色名称
map.put("extendKey", "extendValue"); // 自定义参数 key,value,可不填
map.put("event_value", "event_value"); // 扩展参数 key,value,根据投放需求填写
map.put("event_name", "ad_firstpay"); // 根据扩展参数名修改 value:例:"ad_firstpay"

//头条 SDK 自定义事件参数(以下参数只有需要接入头条自定义事件的游戏才需要添加,根据头条自定义事件文档要求添加相应的 key,value)
map.put("is_achieve", "0"); // 是否完成,1 次回传即代表 1 次行为完成,int 型的 String 字符串
map.put("num", "0"); // 规则判断,1 次行为所对应的 id/level 等拓展信息,int 型的 String 字符串

SuperSDK.invoke(BCoreConst.advert.MODULE_NAME, BCoreConst.advert.FUNC_TRACK, map);

9. YZDeeplink(选接)

说明:此事件只需监听 SuperSDK 回调,非主动调用接口,游戏研发需要根据协议约定处理回调中的 data 数据,回调事件的参考数据如下:

moduleName : advert
funcName : yzDeepLink
result : {
    "msg":"deeplink callback",
    "data":{
                "code":"l39rduyh"
           },
    "code":1
}

三、海外广告

说明:海外广告目前支持 Firebase、Facebook、Appsflyer 和 adjust。

注意:海外广告最终接入事件以投放文档为准。

附录

常量字符串 实际字符串 描述
BCoreConst.advert.MODULE_NAME advert 模块名称
BCoreConst.advert.FUNC_TRACK track 广告激活方法
BCoreConst.advert.KEY_EVENT_ID event_id 事件 ID