Skip to main content

横幅广告

一、注意事项

  • 在请求广告时传入UIContext
  • 禁止在onAdLoadFail回调中执行广告加载的方法,否则会引起死循环。
  • 禁止在onAdLoaded回调中直接执行广告展示的方法。SDK有广告过期自动补充功能。如果在onAdLoaded回调中执行show(),开发者会无法精准控制告展示的时机。

二、加载广告

  • 创建广告位对象
let tpBanner = new TPBanner()
  • 设置请求广告位ID
this.tpBanner?.setAdUnitID("在TradPlus后台创建的横幅广告位ID")
  • 设置请求监听
let loadListener:TPBannerLoadListener = {
onAdLoaded: (adInfo: TPAdInfo): void => {
// 请求一次广告,有广告加载成功,一轮请求只会返回一次
},
onAdLoadFail: (adInfo: TPAdInfo, error: Error): void => {
// 请求一次广告,所有广告加载失败,一轮请求只会返回一次
},
onAdStartLoad: (adInfo: TPAdInfo): void => {
// 广告开始加载
},
onAdOneLayerStartLoad: (adInfo: TPAdInfo): void => {
// 每层广告开始加载
},
onAdBidStart: (adInfo: TPAdInfo): void => {
// Bidding开始
},
onAdBidEnd: (adInfo: TPAdInfo, error?: Error | undefined): void => {
// Bidding结束,error == undefined表示Bidding成功,有error表示Bidding失败
},
onAdOneLayerLoaded: (adInfo: TPAdInfo): void => {
// 单层广告加载成功
},
onAdOneLayerLoadFail: (adInfo: TPAdInfo, error: Error): void => {
// 单层广告加载加载失败
},
onAdAllLoaded: (adInfo: TPAdInfo, success: boolean): void => {
// 请求一次广告,一轮结束会收到一次回调,success true表示有广告加载成功,false表示所有广告加载失败
},
onAdIsLoading: (adInfo: TPAdInfo): void => {
// 一轮请求还没有结束,又发起了一轮请求
},
}
this.tpBanner?.loadListener = loadListener
  • 请求广告
this.tpBanner?.load(uiContext)

三、展示广告

  • 广告是否加载成功:收到onAdLoaded回调,或者通过isReady()方法检查
let isReady = await this.tpBanner?.isReady()
  • 设置展示监听
let showListener:TPBannerShowListener = {
onAdImpression: (adInfo: TPAdInfo): void => {
// 展示成功
},
onAdShowFailed: (adInfo: TPAdInfo): void => {
// 展示失败
},
onAdClosed: (adInfo: TPAdInfo): void => {
// 广告关闭
},
onAdClicked: (adInfo: TPAdInfo): void => {
// 用户触发点击
}
}
this.tpBanner?.showListener = showListener
  • 展示广告
this.tpBanner?.show()