# 接入说明
注意
uni-app 因官方限制,已不再支持,以下文档为旧版文档
uni中接入广告需要先打包生成自定义基座并在HBuilderX中使用自定义基座,否则广告将不能正确调用.
广告加载失败请在广告加载错误回调中根据错误码和错误信息在 SDK错误码 中排查错误
打包方式(请使用此方式打包生成自定义基座和正式版安装包,否则广告不能正常运行):
- Android请参考 Android 打包
- iOS请参考 iOS打包
demo:下载地址
注意
- 正式的广告位会校验APP的
签名证书、包名、App名称等,请不要在测试环境中使用正式的广告位; demo中的广告位为测试广告位,不产生收益,请不要在正式环境、生产环境中使用;- SDK会检测是否在
模拟器环境中,请不要在模拟器中进行测试; 不要进行云打包不要进行云打包不要进行云打包,重要的事情说三次!AppKey、AppId、广告位ID等请找商务索取;
# uni-app中使用
# 初始化
必须先初始化广告后再调用广告
在App.vue中初始化广告,如下图

代码片段:
//initAd(String appId,String appKey) (此广告位为Android测试广告位,正式环境中请勿使用)
uni.requireNativePlugin('fn-ad').initAd('a5f4a25e35daa3', '52009c8cc00bf67d328d68ecb7c76adf');
1
2
2
# 1.开屏广告
开屏广告必须在App.vue的onLaunch中执行
<script>
export default {
onLaunch: function () {
//首先初始化广告
uni.requireNativePlugin('fn-ad').initAd('a5f4a25e35daa3', '52009c8cc00bf67d328d68ecb7c76adf');
//导入开屏广告组件
const fnSplash = uni.requireNativePlugin('fn-ad-splash');
//设置回调方法,如无需某些回调可不设置
fnSplash.onAdShow(() => {
console.log('开屏广告', '显示');
});
fnSplash.onLoadError((data) => {
console.log('开屏广告', '加载失败=>', '错误代码:' + data.code, '错误信息:' + data.msg);
});
fnSplash.onLoadSuccess(() => {
console.log('开屏广告', '加载成功');
});
fnSplash.onLoadTimeout(() => {
console.log('开屏广告', '加载超时');
});
fnSplash.onAdClicked(() => {
console.log('开屏广告', '被点击');
});
fnSplash.onAdDismiss(() => {
console.log('开屏广告', '消除');
});
//调用此方法加载并展示广告 (此广告位为Android测试广告位,正式环境中请勿使用)
fnSplash.showAd('b5f4a25f971cd3');
},
onShow: function () {
console.log('App Show')
},
onHide: function () {
console.log('App Hide')
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 2.激励视频
调用示例如图:

代码片段:
//导入激励视频广告组件
const fnAdReward = uni.requireNativePlugin('fn-ad-reward');
//设置回调方法,如无需某些回调可不设置
fnAdReward.onShow(() => {
//隐藏Loading
uni.hideLoading();
console.log("广告显示");
});
fnAdReward.onVideoComplete(() => {
console.log("广告播放完毕");
});
fnAdReward.onAdClose(() => {
console.log("广告被关闭");
});
fnAdReward.onAdVideoBarClick(() => {
console.log("广告被点击");
});
fnAdReward.onSkippedVideo(() => {
console.log("广告被跳过");
});
fnAdReward.onLoadError((data) => {
//隐藏Loading
uni.hideLoading();
console.log("广告加载失败.错误代码:", data.code, "错误信息:", data.msg);
});
// 并行SDK新增方法
fnAdReward.onReward(() => {
console.log('奖励下发');
})
//显示Loading
uni.showLoading({
title: '加载中,请稍候...',
mask: true
});
//加载并展示广告,传入参数为广告位ID (此广告位为Android测试广告位,正式环境中请勿使用)
fnAdReward.showAd("b5f4a261182671");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
若需要使用预加载则可以使用preloadAd方法进行预加载(仅支持Android),showPreloadAd方法展示广告(广告预加载后不可展示多次,展示广告后需要预加载后才可再次展示,):
uni.showLoading({title: '广告加载中...', mask: true});
//设置回调方法,如无需某些回调可不设置
fnAdReward.onShow(() => {
console.log("广告显示");
});
fnAdReward.onLoadSuccess(() => {
//隐藏Loading
uni.hideLoading();
uni.showToast({title: '预加载成功', icon: 'success'});
console.log("广告加载成功");
})
fnAdReward.onLoadError((data) => {
//隐藏Loading
uni.hideLoading();
console.log("广告加载失败.错误代码:", data.code, "错误信息:", data.msg);
});
fnAdReward.onReward(() => {
console.log('奖励下发');
})
//显示Loading
uni.showLoading({
title: '加载中,请稍候...',
mask: true
});
fnAdReward.preloadAd('b5f4a261182671');
...
//展示广告,请务必保证广告加载成功后调用
fnAdReward.showPreloadAd();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 3.全屏视频
此广告样式和激励视频一致,此广告5秒后可跳过或关闭
代码片段:
//导入全屏视频原生组件
const fnFullAd = uni.requireNativePlugin('fn-ad-full');
//显示Loading模态框
uni.showLoading({
title: '广告加载中...',
mask: true
});
//设置回调方法,如无需某些回调可不设置
fnFullAd.onAdShow(() => {
console.log('全屏视频', '显示');
});
fnFullAd.onLoadSuccess(() => {
uni.hideLoading();
console.log('全屏视频', '加载成功');
});
fnFullAd.onLoadError((data) => {
uni.hideLoading();
console.log('全屏视频', '加载失败=>', '错误代码:', data.code, '错误信息:', data.msg);
});
fnFullAd.onAdClicked(() => {
console.log('全屏视频', '广告被点击');
});
fnFullAd.onAdClose(() => {
console.log('全屏视频', '广告被关闭');
});
fnFullAd.onVideoError((data) => {
uni.hideLoading();
console.log('全屏视频', '广告播放错误=>', '错误代码:', data.code, '错误信息:', data.msg);
});
fnFullAd.onVideoComplete(() => {
console.log('全屏视频', '广告播放完毕');
});
//调用此方法加载并展示广告 (此广告位为Android测试广告位,正式环境中请勿使用)
fnFullAd.showAd('b5f8d5e2274d4d');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 4.插屏广告
代码片段:
//导入插屏视频原生组件
const fnInterstitial = uni.requireNativePlugin('fn-ad-interstitial');
//显示Loading模态框
uni.showLoading({
title: '广告加载中...',
mask: true
});
//设置回调方法,如无需某些回调可不设置
fnInterstitial.onAdShow(() => {
console.log('插屏广告', '显示');
});
fnInterstitial.onLoadSuccess(() => {
uni.hideLoading();
console.log('插屏广告', '加载成功');
});
fnInterstitial.onLoadError((data) => {
uni.hideLoading();
console.log('插屏广告', '加载失败=>', '错误代码:', data.code, '错误信息:', data.msg);
});
fnInterstitial.onAdClicked(() => {
console.log('插屏广告', '广告被点击');
});
fnInterstitial.onAdClose(() => {
console.log('插屏广告', '广告被关闭');
});
fnInterstitial.onVideoError((data) => {
uni.hideLoading();
console.log('插屏广告', '广告播放错误=>', '错误代码:', data.code, '错误信息:', data.msg);
});
fnInterstitial.onVideoComplete(() => {
console.log('插屏广告', '广告播放完毕');
});
//调用此方法加载并展示广告 (此广告位为Android测试广告位,正式环境中请勿使用)
fnInterstitial.showAd('b5f8d5e0815c1e');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34