该文档和文件适用APICloud
接入前创建好应用ID和广告位ID
1. 将文件sjmadModule.zip文件上传至开发控制台的自定义插件:自定义插件->上传自定义插件->填写信息上传sjmadModule.zip
2.上传完成后将插件添加到项目中:点击“添加至本应用”。
3.添加完成后,调用插件的方法,通过云打包进行测试
广告调用可以参考sjmad_demo
常见回调
| 名称 | 备注 |
|---|---|
| onAdLoad | 广告加载成功 |
| onAdVideoLoad | 广告视频下载成功 |
| onAdShow | 广告展示 |
| onAdClick | 广告点击回调 |
| onAdClose | 广告关闭 |
| onAdDetailClose | 广告详情页关闭 |
| onError | 广告错误和错误信息 |
| onAdRewardEffective | 触发广告奖励(激励视频) |
| onCountdownEnd | 广告倒计时结束 (开屏) |
1.在config.xml文件中设置AppId (推荐)
<feature name="SJMAdModule">
<param name="appId" value="sjm_ios123" />
</feature>
2.代码调用方式
var sjmad = api.require('SJMAdModule');
sjmad.registeredSDK({
appId: 'sjm_ios123'
});
3.获取广告版本号
var sjmad = api.require('SJMAdModule');
var version = sjmad.SDKVersion();
1.调用方法:
//加载并展示广告
var sjmad = api.require('SJMAdModule');
sjmad.loadAndShowSplashAd({
adId: '广告id',
fetchDelay: (int)超时时间
});
//加载广告
sjmad.loadSplashAd({
adId:’广告id’,
fetchDelay:(int)超时时间
});
//展示广告 在 onAdLoad 回调中执行
sjmad.showSplashAd();
3.示例
function showSplashAd() {
var splashAd = api.require('SJMAdModule');
splashAd.loadAndShowSplashAd({
adId: 'SJM_S001',
fetchDelay: 5
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'onAdLoad') {
}else if (event == 'onAdShow'){
}else if (event == 'onAdClick'){
}else if (event == 'onAdClose'){
}else if (event == 'onCountdownEnd'){
}else if (event == 'onError'){
}else{
}
});
}
1.调用方法:
//加载并展示广告
var sjmad = api.require('SJMAdModule');
sjmad.loadAndShowRewardVideoAd({
adId:’广告id’,
userId:’用户Id’,
rewardName:'奖励名称',
rewardAmount:(int)奖励数量
});
//加载广告
sjmad.loadRewardVideoAd({
adId:’广告id’,
userId:’用户Id’,
rewardName:'奖励名称',
rewardAmount:(int)奖励数量
});
//展示广告 在 onAdVideoLoad 回调中执行
sjmad.showRewardVideoAd();
2.示例
function showRewardAd() {
var rewardAd = api.require('SJMAdModule');
rewardAd.loadAndShowRewardVideoAd({
adId: 'SJM_R001',
userId:'userId123',
rewardName:'奖励名称',
rewardAmount:0,
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'onAdLoad') {
}else if (event == 'onAdVideoLoad'){
}else if (event == 'onAdShow'){
}else if (event == 'onAdClose'){
}else if (event == 'onAdClick'){
}else if (event == 'onAdRewardEffective'){
}else if (event == 'rewardVideoAdDidPlayFinish'){
//rewardVideoAdDidPlayFinish 视频广告视频播放完成
}else if (event == 'onError'){
}
});
}
1.调用方法:
//加载并展示广告
var sjmad = api.require('SJMAdModule');
sjmad.loadAndShowInterstitialAd({adId:’广告id’});
//加载广告
sjmad.loadInterstitialAd({adId:’广告id’});
//展示广告 在 onAdLoad 回调中执行
sjmad.showInterstitialAd();
2.示例
function showInterstitialAd() {
var interstitialAd = api.require('SJMAdModule');
interstitialAd.loadAndShowInterstitialAd({
adId: 'SJM_I001'
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'onAdLoad') {
}else if (event == 'onError'){
}else if (event == 'onAdShow'){
}else if (event == 'onAdClick'){
}else if (event == 'onAdClose'){
}else if (event == 'onAdDetailClose'){
}
});
}
1.调用方法:
//加载并展示广告
//fixedOn:视图位置
//fixed:控制视图是否随着frame内容的移动而跟着移动
var sjmad = api.require('SJMAdModule');
sjmad.loadAndShowContentPage({adId:’广告id’,fixedOn:’视图位置‘,fixed:false });
2.示例
function showContentPage() {
var contentPage = api.require('SJMAdModule');
contentPage.loadAndShowContentPage({
adId: 'K90010005',
fixedOn:api.frameName,
fixed: false
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'VideoState_videoDidStartPlay') {
}else if (event == 'VideoState_videoDidPause'){
}else if (event == 'VideoState_videoDidResume'){
}else if (event == 'VideoState_videoDidEndPlay'){
}else if (event == 'VideoState_videoDidFailedToPlay'){
}
//VideoState_videoDidStartPlay 视频开始播放
//VideoState_videoDidPause 视频暂停播放
//VideoState_videoDidResume 视频恢复播放
//VideoState_videoDidEndPlay 视频停止播放 有是否播放完成参数
//VideoState_videoDidFailedToPlay 视频播放失败
//contentDidFullDisplay 内容展示
//contentDidEndDisplay 内容隐藏
//contentDidPause 内容暂停显示
//contentDidResume 内容恢复显示
});
}
1.调用方法:
//加载广告
var sjmad = api.require('SJMAdModule');
sjmad.loadFeedFullVideo({
adId:’广告id’,
adCount:广告个数(int),
width:广告宽度(float),
height:广告高度(float)
});
//展示广告 在 feedFullVideoProviderLoadSuccess 回调中执行
//index 对应位置广告(int)
//fixedOn:视图位置
//fixed:控制视图是否随着frame内容的移动而跟着移动
sjmad.showFeedFullVideo({
index : 0,
fixedOn:api.frameName,
fixed: false
});
2.示例
function loadFeedFullVideo() {
var feedVideo = api.require('SJMAdModule');
feedVideo.loadFeedFullVideo({
adId: 'SJM_V001',
adCount:5,
width:300,
height:600,
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'feedFullVideoProviderLoadSuccess') {
feedVideo.showFeedFullVideo({
index : 0,
fixedOn:api.frameName,
fixed: false
});
}else if (event == 'feedFullVideoProviderLoadFail'){
}else if (event == 'feedFullVideoAdViewRenderSuccess'){
}else if (event == 'feedFullVideoAdViewRenderFail'){
}else if (event == 'feedFullVideoAdViewWillShow'){
}else if (event == 'feedFullVideoAdViewStateDidChanged'){
}else if (event == 'feedFullVideoAdViewPlayerDidPlayFinish'){
}else if (event == 'feedFullVideoAdViewDidClick'){
}else if (event == 'feedFullVideoAdViewDetailViewWillPresentScreen'){
}else if (event == 'feedFullVideoAdViewDetailViewClosed'){
}
//feedFullVideoProviderLoadSuccess 广告加载成功
//feedFullVideoProviderLoadFail 广告加载失败
//feedFullVideoAdViewRenderSuccess 广告渲染成功
//feedFullVideoAdViewRenderFail 广告渲染失败
//feedFullVideoAdViewWillShow 广告曝光回调
//feedFullVideoAdViewStateDidChanged 视频广告播放状态更改回调
//feedFullVideoAdViewPlayerDidPlayFinish 视频广告播放完毕
//feedFullVideoAdViewDidClick 广告点击回调
//feedFullVideoAdViewDetailViewWillPresentScreen 广告详情页面即将展示回调
//feedFullVideoAdViewDetailViewClosed 广告详情页关闭回调
});
}
1.调用方法:
//interval 广告刷新间隔,范围 [30, 120] 秒,默认值 30 秒。设 0 则不刷新。
//fixedOn:视图位置
//fixed:控制视图是否随着frame内容的移动而跟着移动
var sjmad = api.require('SJMAdModule');
sjmad.loadAndShowBannerAd({
adId: '广告id',
width:宽度(float),
height:高度(float),
interval:广告刷新间隔(int),
fixedOn:api.frameName,
fixed:false
});
2.示例
function showBannerAd() {
var bannerAd = api.require('SJMAdModule');
bannerAd.loadAndShowBannerAd({
rect: {
x: 100,
y: 200,
w: 300,
h: 80
},
adId: 'SJM_B003',
width:300,
height:80,
interval:30,
fixedOn:api.frameName,
fixed:false
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'onAdLoad') {
}else if (event == 'onError'){
}else if (event == 'onAdShow'){
}else if (event == 'onAdClose'){
}else if (event == 'onAdClick'){
}else if (event == 'onAdDetailClose'){
}
});
}
1.调用方法:
//加载广告
var sjmad = api.require('SJMAdModule');
sjmad.loadFeedsAd({
adId:’广告id’,
adCount:广告个数(int),
width:广告宽度(float),
height:广告高度(float)
});
//展示广告 在 onAdLoad 回调中执行
//index 对应位置广告(int)
//fixedOn:视图位置
//fixed:控制视图是否随着frame内容的移动而跟着移动
sjmad.showFeedsAd({
index : 0,
fixedOn:api.frameName,
fixed: false
});
2.示例
function loadFeedsAd() {
var feedAd = api.require('SJMAdModule');
feedAd.loadFeedsAd({
adId: 'SJM_F001',
adCount:5,
width:300,
height:600,
},function(ret, err){
var event = ret.event;
console.log(event);
api.toast({
msg: event
});
if (event == 'onAdLoad') {
feedAd.showFeedsAd({
index : 0,
fixedOn:api.frameName,
fixed: false
});
}else if (event == 'onError'){
}else if (event == 'onRenderSuccess'){
}else if (event == 'onRenderError'){
}else if (event == 'onAdShow'){
}else if (event == 'onAdClick'){
}else if (event == 'onAdClose'){
}else if (event == 'onAdDetailShow'){
}else if (event == 'onAdDetailClose'){
}
});
}