createBannerAd 1.3.0+

开发者可以在小游戏中使用Banner广告获得收入。Banner广告是由客户端原生渲染,覆盖在开发者指定的区域上。开发者工具上暂不支持调试该 API,请直接在真机上进行调试。

输入

名称 数据类型 属性 默认值 描述
adUnitId string required 广告位id
style object optional 广告位区域
style.left number optional 广告位区域顶点坐标
style.top number optional 广告位区域顶点坐标
style.width number optional 128 广告位区域宽度

提示

每个广告实例只会与一条固定的广告素材绑定。开发者如果想要展示另一条广告,需要创建一个新的bannerAd实例。

Banner广告一般的比例为16:9,最小宽度是128(设备像素),最大宽度是208(设备像素)。开发者可以在这之间自由指定广告宽度。广告组件会自动等比例缩放素材。

输出

bannerAd实例。

bannerAd的方法列表

BannerAd.show()

广告创建后默认是隐藏的,可以通过该方法显示广告。 该方法返回一个 Promise 对象。当广告组件正常获取素材时,该Promise对象会是一个resolved Promise。当广告组件发生错误时,会是一个rejected Promise,参数与error事件监听器获得的参数相同。

barnnerAd.onLoad(function (){
  bannerAd.show()
    .then(() => {
        console.log('广告显示成功');
    })
    .catch(err => {
        console.log('广告组件出现问题', err);
    })
})

BannerAd.hide()

隐藏广告。

BannerAd.onLoad(listener)

绑定load事件的监听器。 广告组件成功拉取广告素材时会触发load事件的监听器。

BannerAd.offLoad(listener)

解除绑定load事件的监听器。

BannerAd.onError(listener)

绑定error事件的监听器。 广告组件拉取广告素材时如果发生错误,会触发error事件的监听器。监听器会获得一个包含errCodeerrMsg属性的对象参数。

errCode 详情

BannerAd.offError(listener)

解除绑定error事件的监听器。

BannerAd.onResize(listener)

绑定resize事件的监听器。

开发者除了可以在创建bannerAd实例时指定广告的style,还可以在获得实例后修改其style属性中的属性值。一旦广告尺寸发生变化,会触发resize事件的监听器。监听器会获得一个包含widthheight属性的对象参数,该参数表征广告的实际渲染尺寸。

const {
    windowWidth,
    windowHeight,
} = tt.getSystemInfoSync();
var targetBannerAdWidth = 200;

// 创建一个居于屏幕底部正中的广告
let bannerAd = tt.createBannerAd({
    adUnitId: 'YOUR_AD_UNIT_ID',
    style: {
        width: targetBannerAdWidth,
        top: windowHeight - (targetBannerAdWidth / 16 * 9), // 根据系统约定尺寸计算出广告高度
    },
});
// 也可以手动修改属性以调整广告尺寸
banner.style.left = (windowWidth - targetBannerAdWidth) / 2;

// 尺寸调整时会触发回调
// 注意:如果在回调里再次调整尺寸,要确保不要触发死循环!!!
bannerAd.onResize(size => {
    console.log(size.width, size.height);

    // 如果一开始设置的 banner 宽度超过了系统限制,可以在此处加以调整
    if (targetBannerAdWidth != size.width) {
        targetBannerAdWidth = size.width;
        bannerAd.style.top = windowHeight - (res.width / 16 * 9);
        bannerAd.style.left = (windowWidth - res.width) / 2;
    }
});

BannerAd.offResize(listener)

解除绑定resize事件的监听器。

BannerAd.destroy()

销毁广告实例。 当开发者确定某个广告实例无需展示时应当主动销毁以提升性能。