1. 加载显示广告
@Entry
@Component
struct BannerAdPage {
@State hasAd: boolean = false;
private placementId: string = 'Your Placement Id';
private atBannerAd?: ATBannerAd;
private bannerAd?: BannerAd;
aboutToAppear(): void {
}
build() {
Column() {
Button("Load Ad")
.height(36)// .width('624px')
.margin({ top: '2%' })
.type(ButtonType.Capsule)
.onClick(() => {
this.requestAd();
})
Divider()
.margin({ top: 20, bottom: 20 })
if (this.hasAd && this.bannerAd) {
BuildATBannerAdView(this.bannerAd, {
onAdShow: (adInfo: ATAdInfo): void => {
},
onAdClick: (adInfo: ATAdInfo): void => {
},
onAdClose: (adInfo: ATAdInfo): void => {
},
onAdAutoRefreshed: (adInfo: ATAdInfo): void => {
},
onAdAutoRefreshFailed: (adError: ATAdError): void => {
}
})
}
}
}
requestAd() {
const atBannerAd = new ATBannerAd(this.placementId);
this.atBannerAd = atBannerAd;
const that = this;
atBannerAd.setAdListener({
onAdLoaded: (): void => {
that.bannerAd = that.atBannerAd?.getBannerAd();
if (this.bannerAd) {
that.hasAd = true;
}
},
onAdLoadFailed: (adError: ATAdError): void => {
}
});
atBannerAd.loadAd({
context: getContext(),
uiContext: this.getUIContext()
})
}
}
2. API说明
● ATBannerAd
横幅广告的操作类,负责广告加载、监听、显示等。
方法 | 说明 |
ATBannerAd(placementId: string) | 广告的初始化方法 placementID:横幅样式的广告位,通过后台创建横幅广告位获取的 |
setAdListener(listener: ATBannerAdListener) | 设置广告位层级的广告监听回调 listener:广告位事件回调的接口类 |
loadAd(adLoadConfig?: Nullable<ATBannerAdLoadConfig>) | 发起广告加载 adLoadConfig:加载广告配置 |
getBannerAd(showConfig?: ATBannerAdShowConfig) |
获取广告对象,用于展示广告 |
● ATBannerAdListener
广告位层级的广告加载事件回调
方法 | 说明 |
onAdLoaded: () |
广告加载成功回调 |
onAdLoadFailed: (adError: ATAdError) |
广告加载失败回调 |
● ATBannerAdEventListener
广告位层级的广告事件回调
方法 | 说明 |
onAdShow: (adInfo: ATAdInfo) |
广告展示回调 |
onAdClick: (adInfo: ATAdInfo) |
广告点击回调 |
onAdClose?: (adInfo: ATAdInfo) |
广告关闭回调 |
onAdAutoRefreshFailed?: (adError: ATAdError) |
广告自动加载刷新失败回调 |
onAdAutoRefreshed: (adInfo: ATAdInfo) |
广告自动加载刷新成功回调 |