English
插屏广告组件是由客户端原生的图片、文本、视频控件组成的;插屏广告与信息流或横幅广告相比展现尺寸更大,同样能够满足您对大量曝光和用户转化的需求。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序 | QQ小程序 | 快应用 | 360小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|---|---|
√(3.4.8+) | √(3.4.8+) | √(3.4.8+) | x | x | x | x | x | x | x | x |
开通配置广告
HBuilder 基座的测试广告位 adpid
为 1111111113
<ad-interstitial></ad-interstitial>
属性说明
属性名 | 类型 | 默认值 | 说明 | 平台差异 |
---|---|---|---|---|
adpid | String|Number | 广告位id | ||
preload | Boolean | true | 页面就绪后加载广告数据 | |
loadnext | Boolean | false | 自动加载下一条广告数据 | |
options | Object | 透传到作用域插槽 | ||
v-slot:default="{loading, error, options}" | 作用域插槽可以获取组件内部广告加载状态和加载错误信息 | |||
@load | EventHandle | 加载事件 | 微信小程序暂不支持 | |
@close | EventHandle | 关闭事件 | 微信小程序暂不支持 | |
@error | EventHandle | 错误事件 | 微信小程序暂不支持 |
方法说明
方法名 | 说明 |
---|---|
load | 加载广告数据 |
show | 显示广告 |
HBuilder 基座的测试广告位 adpid
为 1111111113
,微信小程序暂不提供测试广告位
简单示例
<template>
<view>
<ad-interstitial adpid="1111111113" :loadnext="true" v-slot:default="{loading, error}">
<button :disabled="loading" :loading="loading">显示广告</button>
<view v-if="error">{{error}}</view>
</ad-interstitial>
</view>
</template>
完整示例
<template>
<view class="content">
<ad-interstitial adpid="1111111113" :loadnext="true" v-slot:default="{loading, error}" @load="onadload" @close="onadclose" @error="onaderror">
<button :disabled="loading" :loading="loading">显示广告</button>
<view v-if="error">{{error}}</view>
</ad-interstitial>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
onadload(e) {
console.log('广告数据加载成功');
},
onadclose(e) {
console.log("onadclose",e);
},
onaderror(e) {
// 广告加载失败
console.log("onaderror: ", e.detail);
}
}
}
</script>
组件API示例
<template>
<view>
<ad-interstitial ref="adInterstitial" adpid="1111111113" :loadnext="false" v-slot:default="{loading, error}" @load="onadload" @close="onadclose" @error="onaderror">
<view v-if="error">{{error}}</view>
</ad-interstitial>
<button type="primary" :disabled="isLoading" :loading="isLoading" @click="showAd">显示广告</button>
</view>
</template>
<script>
export default {
data() {
return {
isLoading: false
}
},
methods: {
showAd() {
this.isLoading = true;
this.$refs.adInterstitial.show();
},
onadload(e) {
this.isLoading = false;
console.log('广告数据加载成功');
},
onadclose(e) {
// 用户点击了关闭广告
console.log("onadclose",e);
},
onaderror(e) {
// 广告加载失败
console.log("onaderror: ", e.detail);
}
}
}
</script>
uni.createInterstitialAd(options)
参数说明
options
为 object 类型,属性如下:
属性名 | 类型 | 必填 | 描述 | 最低支持版本 |
---|---|---|---|---|
adpid | string | 是 | 广告位 id | App 3.1.10+ |
adUnitId | string | 是 | 广告位 id | 微信小程序2.6.0+, QQ0.1.26+ |
插屏广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。开发者可以在页面的 onReady 事件回调中创建广告实例,并在该页面的生命周期内重复调用该广告实例。
插屏广告组件默认是隐藏的,开发者需要调用 InterstitialAd.show() 进行显示。如果广告拉取失败或触发频率限制,InterstitialAd.show() 方法会返回一个rejected Promise,开发者可自行监听错误信息
interstitialAd.show().catch((err) => {
console.error(err)
})
用户可以主动关闭插屏广告。开发者不可控制插屏广告组件的隐藏。
如果广告被关闭,通过 InterstitialAd.onClose() 注册的回调函数会执行,回调函数没有参数传递。
interstitialAd.onClose(res => {
console.log('插屏 广告关闭')
})
示例代码
<template>
<view>
<view>
<button :loading="loading" :disabled="loading" type="primary" @click="showInterstitialAd">显示广告</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: '插屏广告',
loading: false
}
},
onReady() {
this.adOption = {
adpid: '1111111113' // HBuilder基座的测试广告位
};
// 创建广告实例
this.createInterstitialAd();
},
methods: {
createInterstitialAd() {
var interstitialAd = this.interstitialAd = uni.createInterstitialAd(this.adOption);
interstitialAd.onLoad(() => {
this.loading = false;
console.log("插屏 广告加载成功");
});
interstitialAd.onClose(() => {
// 用户点击了关闭或返回键(仅Android有返回键)
console.log("插屏 广告关闭");
});
interstitialAd.onError((err) => {
this.loading = false;
console.log("插屏 广告加载失败");
});
// 广告实例创建成功后默认会执行一次 load,加载广告数据
// 如果界面有 "显示广告" 按钮,需要先禁用掉,防止用户点击,等待广告数据加载成功后在放开
this.loading = true;
},
showInterstitialAd() {
// 调用 interstitialAd.show(),如果数据正在加载中不会显示广告,加载成功后才显示
// 在数据没有加载成功时,需要防止用户频繁点击显示广告
if (this.loading == true) {
return
}
this.loading = true;
this.interstitialAd.show().then(() => {
this.loading = false;
});
}
},
onUnload() {
// 页面关闭后销毁实例
this.interstitialAd.destroy()
}
}
</script>
Promise InterstitialAd.load()
加载插屏广告。
Promise InterstitialAd.show()
显示插屏广告。
InterstitialAd.destroy()
销毁插屏广告实例。
InterstitialAd.onLoad(function callback)
监听插屏广告加载事件。
InterstitialAd.offLoad(function callback)
取消监听插屏广告加载事件
InterstitialAd.onError(function callback)
监听插屏错误事件。
InterstitialAd.offError(function callback)
取消监听插屏错误事件
InterstitialAd.onClose(function callback)
监听插屏广告关闭事件。
InterstitialAd.offClose(function callback)
取消监听插屏广告关闭事件
注意
错误码