# 接入说明

目前uni-app

  • Android 端支持开屏广告激励视频全屏视频插屏广告广告,其他广告暂不支持
  • iOS 端支持 开屏广告激励视频广告,其他广告暂不支持
  • 其他端(web、微信小程序、支付宝小程序等)暂不支持广告
  • 收费插件官方不支持离线打包,如果您采用了收费插件,请根据情况选择不使用收费插件或者不接入广告

uni中接入广告需要先打包生成自定义基座并在HBuilderX中使用自定义基座,否则广告将不能正确调用.

广告加载失败请在广告加载错误回调中根据错误码和错误信息在 SDK错误码 中排查错误

打包方式(请使用此方式打包生成自定义基座正式版安装包,否则广告不能正常运行):

demo:下载地址

注意

  1. 正式的SDK包会校验APP的签名证书包名App名称等,请不要在测试环境中使用正式的广告位;
  2. demo中的广告位测试广告位,不产生收益,请不要在正式环境、生产环境中使用;
  3. SDK会检测是否在模拟器环境中,请不要在模拟器中进行测试;
  4. 不要进行云打包 不要进行云打包 不要进行云打包,重要的事情说三次!
  5. AppKeyAppId广告位ID等请找商务索取;

# uni-app中使用

# 初始化

必须先初始化广告后再调用广告

App.vue中初始化广告,如下图

初始化SDK

代码片段:

//initAd(String appId,String appKey)  (此广告位为Android测试广告位,正式环境中请勿使用)
uni.requireNativePlugin('fn-ad').initAd('a5f4a25e35daa3', '52009c8cc00bf67d328d68ecb7c76adf');
1
2

# 1.开屏广告

开屏广告必须在App.vueonLaunch中执行


<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.激励视频

调用示例如图:

加载激励视频

代码片段:

//导入激励视频广告组件
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

若需要使用预加载则可以使用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

# 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

# 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

# 错误代码及说明