# 广告

# 激励视频广告

# 功能介绍

  • 接入简单,广告展示位置灵活控制
  • 支持激励视频广告,收入回报丰厚
  • 通过监听用户关闭广告来发放奖励

激励视频广告组件是由客户端原生的图片、文本、视频控件组成的,层级最高,会覆盖在上屏 Canvas 上。 开发者可以调用 ks.createRewardedVideoAd 创建激励视频广告组件。该方法返回的是一个全局单例。

let video1 = ks.createRewardedVideoAd({ adUnitId: 'xxxx' })
let video2 = ks.createRewardedVideoAd({ adUnitId: 'xxxx' })
console.log(video1 === video2)
// true

激励视频广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。

let rewardedVideoAd = ks.createRewardedVideoAd({ adUnitId: 'xxxx' })

# 显示/隐藏

激励视频广告组件默认是隐藏的,需要调用 RewardedVideoAd.show() 进行显示。
只有在用户点击激励视频广告组件上的 关闭广告 按钮时,广告才会关闭。开发者不可控制激励视频广告组件的隐藏。

rewardedVideoAd.show()
.then(() => console.log('激励视频 广告显示'))

如果显示失败,通过 RewardedVideoAd.onError() 注册的回调函数会执行,回调函数的参数是一个包含错误信息的对象。

rewardedVideoAd.onError(err => {
  console.log(err)
})

RewardedVideoAd.show() 返回的 Promise 也会是一个 rejected Promise。

rewardedVideoAd.show()
.catch(err => console.log(err))

# 监听用户关闭广告

只有在用户点击激励视频广告组件上的 关闭广告 按钮时,广告才会关闭。这个事件可以通过 RewardedVideoAd.onClose() 监听。开发者需要根据 res.isEnded 判断是否视频是否播放结束、可以向用户下发奖励。

rewardedVideoAd.onClose(res => {
    // 用户点击了【关闭广告】按钮
    if (res && res.isEnded || res === undefined) {
      // 正常播放结束,可以下发游戏奖励
    }
    else {
        // 播放中途退出,不下发游戏奖励
    }
})

# 相关API

接口 功能说明
ks.createRewardedVideoAd 获取全局激励视频广告组件
RewardedVideoAd 激励视频广告组件
RewardedVideoAd.destroy 销毁激励视频广告实例
RewardedVideoAd.offClose 取消监听激励视频广告关闭事件
RewardedVideoAd.offError 取消监听激励视频错误事件
RewardedVideoAd.onClose 监听激励视频广告关闭事件
RewardedVideoAd.onError 监听激励视频错误事件
RewardedVideoAd.show 显示激励视频广告

# 插屏广告

注意事项:iOS 端暂不支持插屏广告,开发者需要做好适配

# 功能介绍

  • 接入简单,广告展示位置灵活控制

插屏广告组件是由客户端原生的图片、文本、视频控件组成的,层级最高,会覆盖在上屏 Canvas 上。 开发者可以调用 ks.createInterstitialAd 创建插屏广告组件。该方法会新创建一个插屏广告实例。

let interstitial1 = ks.createInterstitialAd({ adUnitId: 'xxxx' })
let interstitial2 = ks.createInterstitialAd({ adUnitId: 'xxxx' })
console.log(interstitial1 === interstitial2)
// false

插屏广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。

let InterstitialAd = ks.createInterstitialAd({ adUnitId: 'xxxx' })

# 显示/隐藏

插屏广告组件默认是隐藏的,需要调用 InterstitialAd.show() 进行显示。
只有在用户点击插屏广告组件上的 关闭广告 按钮时,广告才会关闭。开发者不可控制插屏广告组件的隐藏。

InterstitialAd.show()
.then(() => console.log('插屏 广告显示'))

如果显示失败,通过 InterstitialAd.onError() 注册的回调函数会执行,回调函数的参数是一个包含错误信息的对象。

InterstitialAd.onError(err => {
  console.log(err)
})

InterstitialAd.show() 返回的 Promise 也会是一个 rejected Promise。

InterstitialAd.show()
.catch(err => console.log(err))

# 监听用户关闭广告

只有在用户点击插屏广告组件上的 关闭广告 按钮时,广告才会关闭。这个事件可以通过 InterstitialAd.onClose() 监听。

InterstitialAd.onClose(res => {
    // 用户点击了【关闭广告】按钮
})

# 相关API

接口 功能说明
ks.createInterstitialAd 获取插屏广告组件
InterstitialAd 插屏广告组件
InterstitialAd.destroy 销毁插屏广告实例
InterstitialAd.offClose 取消监听插屏广告关闭事件
InterstitialAd.offError 取消监听插屏错误事件
InterstitialAd.onClose 监听插屏广告关闭事件
InterstitialAd.onError 监听插屏错误事件
InterstitialAd.show 显示插屏广告

# 广告频控

为了避免游戏频繁弹出广告降低用户游戏体验,平台新增了广告频控策略,触发频控规则无法播放广告,具体规则如下所示:

  • 游戏冷启动30s内不允许播放插屏广告,尝试播放会失败
  • 尝试播放插屏广告时,会检查之前60s内用户是否在播放过任意类型广告(包含插屏、激励视频,不区分游戏),如果有则播放插屏广告会失败
  • 激励视频广告没有设置播放时间间隔