📺 广告功能
🎯 游戏操作
📱 环境检测
正在检测环境...
正在加载SDK...
🎮 广告测试
激励广告测试:
插页广告测试:
注意:插页广告只在App环境(WebView)中生效
🔧 接入代码示例
基础接入代码:
<script src="https://sdk.broadsolutionsgroup.com/BsSDK.js"></script>
<script>
// 等待SDK加载完成
window.addEventListener('load', function() {
// 播放激励广告
function showRewardAd() {
BsSDK.AdsMgr.showVideo(
function() {
console.log('激励广告播放成功,发放奖励');
// 在这里发放游戏奖励
},
function() {
console.log('激励广告播放失败或用户取消');
// 处理失败情况
}
);
}
// 播放插页广告(仅在App环境生效)
function showInterAd() {
BsSDK.AdsMgr.showInter(
function() {
console.log('插页广告播放成功');
},
function() {
console.log('插页广告播放失败');
}
);
}
// 绑定按钮事件
document.getElementById('rewardBtn').onclick = showRewardAd;
document.getElementById('interBtn').onclick = showInterAd;
});
</script>
📋 接入要求
激励广告触发要求:
- ✅ 激励广告按钮必须有明显的广告标志(如 📺 图标)
- ✅ 按钮文字应明确说明是观看广告获得奖励
- ✅ 用户必须明确知道点击后会播放广告
- ✅ 奖励内容必须明确告知用户
插页广告触发要求:
- ✅ 只能在用户成功通关后的结算界面触发
- ✅ 非通关游戏只能在游戏结束时播放
- ❌ 不能在游戏进行中打断用户体验
- ❌ 不能在用户操作过程中强制播放
📋 外层页面代码
这是外层页面,包含iframe和消息转发代码:
<!-- 外层页面 -->
<script>
// 消息转发代码 - 必须添加
window.addEventListener("message", (event) => {
var iframe = document.getElementById("game-iframe");
if(iframe && event) {
iframe.contentWindow.postMessage(event.data, '*');
}
});
</script>
<iframe id="game-iframe" src="game.html"></iframe>
🎮 游戏iframe
下面的iframe中加载了包含BsSDK的游戏页面:
🔧 测试功能
点击下面的按钮测试消息传递:
等待消息...
⚡ 快速接入
正在加载SDK...
等待操作...
📋 接入代码:
<script src="https://sdk.broadsolutionsgroup.com/BsSDK.js"></script>
<script>
// 激励广告
BsSDK.AdsMgr.showVideo(
function() { console.log('成功'); },
function() { console.log('失败'); }
);
// 插页广告
BsSDK.AdsMgr.showInter(
function() { console.log('成功'); },
function() { console.log('失败'); }
);
</script>
📋 测试说明
测试目标:验证用户中途关闭激励广告时不会获得奖励
测试步骤:
- 点击"播放激励广告"按钮
- 在广告播放过程中点击关闭按钮(X)
- 观察是否触发成功回调(应该不会)
- 观察是否触发失败回调(应该会)
预期结果:中途关闭广告应该触发失败回调,不应该获得奖励
正在加载SDK...
🎮 激励广告测试
点击按钮后,在广告播放过程中尝试关闭广告,观察回调结果
✅ 修复内容
问题:用户中途关闭激励广告时,错误地同时触发了失败回调和成功回调
修复:只有在用户真正获得奖励时才触发成功回调,中途关闭只触发失败回调
代码位置:WebRewardAds.ts 中的 rewardedSlotClosed 事件处理