sjmadModule_iOS_APICloud使用文档

该文档和文件适用APICloud

一、 接入说明

接入前创建好应用ID和广告位ID

1.1、工程导入sjmadModule

1. 将文件sjmadModule.zip文件上传至开发控制台的自定义插件:自定义插件->上传自定义插件->填写信息上传sjmadModule.zip

2.上传完成后将插件添加到项目中:点击“添加至本应用”。

3.添加完成后,调用插件的方法,通过云打包进行测试

二、加载广告

广告调用可以参考sjmad_demo

常见回调

名称 备注
onAdLoad 广告加载成功
onAdVideoLoad 广告视频下载成功
onAdShow 广告展示
onAdClick 广告点击回调
onAdClose 广告关闭
onAdDetailClose 广告详情页关闭
onError 广告错误和错误信息
onAdRewardEffective 触发广告奖励(激励视频)
onCountdownEnd 广告倒计时结束 (开屏)

2.1、广告初始化

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();

2.2、接入开屏广告

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{
            
        }
    });
}

2.3、接入激励视频

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'){
            
        }
    });
}

2.4、接入插屏广告

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'){
            
        }
    });
}

2.5、接入视频内容

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 内容恢复显示
    });
}

2.6、接入全屏视频流广告

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 广告详情页关闭回调
    });
}

2.7、接入Banner广告

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'){
            
        }
    });
}

2.8、接入信息流广告

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'){
            
        } 
    });
}

sjmadModule_iOS_APICloud使用文档

一、 接入说明

二、加载广告