插屏广告

插屏广告组件是由客户端原生的图片、文本、视频控件组成的,层级最高,会覆盖在普通组件上。

开发者可以调用 wx.createInterstitialAd 创建插屏广告组件。每调用一次该方法,返回的都是一个全新实例,该实例仅对当前页面有效,不允许跨页面使用。

广告创建

插屏广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。开发者可以在小程序页面的 onLoad 事件回调中创建广告实例,并在该页面的生命周期内重复调用该广告实例。

  1. let interstitialAd = null
  2. Page({
  3. onLoad() {
  4. if(wx.createInterstitialAd){
  5. interstitialAd = wx.createInterstitialAd({ adUnitId: 'xxxx' })
  6. interstitialAd.onLoad(() => {
  7. console.log('onLoad event emit')
  8. })
  9. interstitialAd.onError((err) => {
  10. console.log('onError event emit', err)
  11. })
  12. interstitialAd.onClose((res) => {
  13. console.log('onClose event emit', res)
  14. })
  15. }
  16. }
  17. })

显示/隐藏

插屏广告组件默认是隐藏的,开发者需要调用 InterstitialAd.show() 进行显示。如果广告拉取失败或触发频率限制,InterstitialAd.show() 方法会返回一个rejected Promise,开发者可自行监听错误信息。常见异常错误参考文档

  1. interstitialAd.show().catch((err) => {
  2. console.error(err)
  3. })

用户可以主动关闭插屏广告。开发者不可控制插屏广告组件的隐藏。

广告拉取成功与失败

插屏广告组件是自动拉取广告并进行更新的。在组件创建后会拉取一次广告,用户关闭广告后会去拉取下一条广告。

如果拉取成功,通过 InterstitialAd.onLoad() 注册的回调函数会执行,回调函数没有参数传递。

  1. interstitialAd.onLoad(() => {
  2. console.log('插屏 广告加载成功')
  3. })

如果拉取失败,通过 InterstitialAd.onError() 注册的回调函数会执行,回调函数的参数是一个包含错误信息的对象。常见异常错误参考文档

  1. interstitialAd.onError(err => {
  2. console.log(err)
  3. })

监听用户关闭广告

如果广告被关闭,通过 InterstitialAd.onClose() 注册的回调函数会执行,回调函数没有参数传递。

  1. interstitialAd.onClose(res => {
  2. console.log('插屏 广告关闭')
  3. })

注意事项

多次调用 InterstitialAd.onLoad()InterstitialAd.onError()InterstitialAd.onClose() 等方法监听广告事件会产生多次事件回调,建议在创建广告后监听一次即可,或者先取消原有的监听事件再重新监听。

在插屏广告展示过程中如果快速切换页面,可能会出现插屏广告展示在非调用页面的情况,如有需要请在页面切换完成后进行插屏广告展示。