广告聚合SDK-Unity(C#)
1 文档修订记录
文档版本 | 文档更新日期 | 文档更新内容 |
---|---|---|
3.3.36 | 2022.01.05 | 初版 |
2 接入准备
推荐C# 以上版本,如果游戏是4及以下版本,可能会无法支持新特性
推荐Unity2018及以上版本
本SDK目前仅支持Android,且需要Android Target 22及以上;iOS接入不会有效果
2.1 添加文件
- 将文件
FYBase.unitypackage
与FYADMediation.unitypackage
先后导入到您的Unity工程的Assets
文件夹下 - 导入方式:打开UNITY工程,菜单栏Assets=>Import Package=>Custom Package... ,之后选择文件导入工程
2.2 配置DLL文件平台属性
UNITY项目中,选择对应Dll文件,在Inspector面板=>Select platforms for plugin 勾选对应平台
如果已经配置,请忽略此步骤
- Assets\Plugins\FYBase\FYBase.dll勾选"Any Platform",并勾选"iOS"和“Android”以排除这2平台
- Assets\Plugins\FYBase\Android\FYBase.dll选择平台为"Android",注意"Any Platform"不要打钩
- Assets\Plugins\FYBase\iOS\FYBase.dll选择平台为"iOS",注意"Any Platform"不要打钩
- Assets\Plugins\FYADMediation\FYADMediation.dll选择平台为"Any Platform"
2.3 添加SDK配置
1.打开"星云平台->对接中心->SDK对接->SDK 列表->基础接入参数",找到 App ID、App Key、Company ID
2.在UNITY打开星云配置界面
3.将 App ID、App Key 、Company ID 填入对应输入框,选择游戏屏幕朝向,点击确定
,完成配置
2.4 配置游戏内展示位ID
-
游戏内展示位ID,用于标识和区分游戏中不同的广告展示位
-
对接前需要在星云后台先配置好游戏内展示位ID,对接时要传递给SDK接口,请前往星云后台进行配置:对接中心->广告位管理->游戏内展示位管理
2.5 开启调试模式
1.将配置界面中的Debug
勾选并点击确定
,即可开启「调试模式」;取消勾选并点击确定
,即关闭「调试模式」。
2.开启「调试模式」会显示客户端的悬浮球,点击进入调试工具可以查看接口/回调的调用信息,具体调试方法可查看文档。
2.6 引入命名空间
游戏代码中引入以下命名空间,开始接入。
using FYADMediation;
3 游戏交互示范
3.1 初始化
- 在启动游戏后,调用
DoInit
接口 - 初始化成功回调中,调用
LoadReward
,进行广告预加载
3.2 激励视频广告对接方式一
- 点击游戏中的获取奖励按钮,先调用
IsRewardLoad
,判断广告加载成功,再调用ShowReward
- 如果
IsRewardLoad
返回加载失败,游戏做一个类似"广告未加载"的提示,然后调用LoadReward
再重新加载一次广告 - 当观看广告完成后,收到"下发奖励"回调,再发放奖励给玩家
3.3 激励视频广告对接方式二
- 进入游戏某页面时,先调用
IsRewardLoad
,判断广告加载成功,再显示奖励按钮 - 如果
IsRewardLoad
返回加载失败,请调用LoadReward
再重新加载一次广告 - 观看广告完成后,收到"下发奖励"回调,再发放奖励给玩家
4 客户端接口与回调
接口接入的要诀?
- 必接接口一定要接入,选接接口根据需要接入
- 必传参数一定要传,能传的参数尽量都传
接口的回调何时注册?
- 第一种方式:在初始化回调成功后注册其余的回调
- 第二种方式:在每次调用对应接口前都预先注册对应的回调
- 综合使用:先使用第一种方式,之后如需改变再重新注册
4.1客户端回调
1.初始化回调FYAMInitCallback
- 使用方式:
FYADMediationBridge.Instance.FYAMInitCallback = new FYAMInitCallback((info) =>
{
//TODO: 初始化成功,可预加载广告
//例如: FYADMediationBridge.Instance.LoadReward(placementId);
}, (info) =>
{
//TODO: 初始化失败
//info.message 失败原因
});
2.激励视频广告回调FYAMRewardCallback
- 使用方式:
FYADMediationBridge.Instance.FYAMRewardCallback = new FYAMRewardCallback(info =>
{
//TODO: 下发奖励
//info.placementId 获取游戏内展示位ID,用来对该展示位下发奖励
}, info =>
{
//TODO: 展示成功
}, info =>
{
//TODO: 展示失败
//info.message 失败原因
}, info =>
{
//TODO: 广告点击
}, info =>
{
//TODO: 广告关闭
}, info =>
{
//TODO: 加载失败
//info.message 失败原因
// *禁止在此处调用加载广告接口,以防止游戏卡顿
}, info =>
{
//TODO: 加载成功
});
4.2 初始化(必接)
1.方法
void DoInit(string gameVersion)
2.说明
- 游戏需要在刚启动游戏的时候调用
3.调用
FYADMediationBridge.Instance.DoInit(gameVersion);
4.参数
参数名 | 类型 | 说明 | 是否必传 |
---|---|---|---|
gameVersion | string | 游戏版本号 | 是 |
5.回调
- 初始化回调
FYAMInitCallback
4.3 加载激励视频广告(必接)
1.方法
void LoadReward(string placementId)
2.说明
- 用来预加载激励视频广告,为后续成功展示广告做准备
- 调用时机:在展示广告之前的某个时机提前调用此接口
3.调用
FYADMediationBridge.Instance.LoadReward(placementId);
4.参数
参数名 | 类型 | 说明 | 是否必传 |
---|---|---|---|
placementId | string | 游戏内展示位ID | 是 |
5.回调
- 激励视频广告回调
FYAMRewardCallback
4.4 展示激励视频广告(必接)
1.方法
void ShowReward(string placementId)
2.说明
- 用来拉起激励视频广告
- 在调用此接口之前,需确保对应游戏内展示位ID的广告已加载
3.调用
FYADMediationBridge.Instance.ShowReward(placementId);
4.参数
参数名 | 类型 | 说明 | 是否必传 |
---|---|---|---|
placementId | string | 游戏内展示位ID | 是 |
5.回调
- 激励视频广告回调
FYAMRewardCallback
4.5 激励视频广告是否已加载(必接)
1.方法
bool IsRewardLoad(string placementId)
2.说明
- 用来判断激励视频广告是否已加载
- 在调用
ShowReward
之前,需先调用此接口判断广告是否加载成功 - 此接口返回加载失败状态时,需重新调用一次
LoadReward
3.调用
bool isLoaded = FYADMediationBridge.Instance.IsRewardLoad(placementId);
/*例如:
if (isLoaded)
{
// 加载成功,展示广告
FYADMediationBridge.Instance.ShowReward(placementId);
}
else {
// 加载失败,再次加载广告
FYADMediationBridge.Instance.LoadReward(placementId);
}*/
4.参数
参数名 | 类型 | 说明 | 是否必传 |
---|---|---|---|
placementId | string | 游戏内展示位ID | 是 |
5.回调
- 暂无
4 原生端对接
4.1 iOS
4.1.1 导出Xcode工程
- 该SDK暂时不支持iOS,调用对应接口不会起作用
4.2 Andorid
4.2.1 导出Android工程
- 方式一:使用UNITY打包Android APK调试
- 方式二:将UNITY项目导出为Android Studio工程,然后就可以在Android Studio开发工具上调试了
5 F&Q
5.1 导出Android Studio项目报错
该情况有可能是因为UNITY配置界面未配置完成,请查看该文档的添加SDK配置
部分,重新操作一次