/* Title: tencentAds Description: tencentAds */
1.安卓SDK更新至4.603.1473;IOS更新至4.15.10;
为帮助用户更好更快的使用模块,论坛维护了一个示例(模块tencentAds论坛帖链接),示例中包含示例代码、知识点讲解、注意事项等,供您参考。
模块tencentAds论坛帖地址:https://community.yonyou.com/article/detail/6753
tencentAds 封装了腾讯广告联盟的SDK,实现了横幅、插屏、开屏等主流样式。使用之前须从腾讯广告联盟申请开发者账号并创建应用,获取 APPID 和 对应的广告位id。
使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:
<permission name="readPhoneState"/>
//上述非必须权限,开发者视情况自行添加;
<permission name="location" />
//上述非必须权限,开发者视情况自行添加;
<feature name="tencentAds">
<param name="IsManualInt" value="false" />
<param name="usedDownConfirm" value="false"/><!--二次确认-->
<param name="APPID" value="1105817983"/>
<param name="BannerPosID" value="3040460631118415"/> <!--banner2.0-->
<param name="InterteristalPosID" value="4030069601412496"/><!--插屏2.0-->
<param name="SplashPosID" value="8050224168345383"/>
<param name="APPID_ios" value="1105344611"/>
<param name="BannerPosID_ios" value="1080958885885321"/><!--banner2.0-->
<param name="InterteristalPosID_ios" value="1050652855580392"/><!--插屏2.0-->
<param name="SplashPosID_ios" value="9040714184494018"/>
</feature>
字段描述:
IsManualInt:是否手动初始化,默认为false。为false时自动完成初始化工作。
usedDownConfirm:是否开启广告二次确认下载,默认为不开启.
APPID: 在腾讯广告联盟中注册的安卓应用id。
BannerPosID: 安卓应用对应的横幅(banner)广告位id。
InterteristalPosID:安卓应用对应的插屏广告位id。
SplashPosID:安卓应用对应的开屏广告位id。
APPID_ios:在腾讯广告联盟中注册的IOS应用id。
BannerPosID_ios:IOS应用对应的横幅(banner)广告位id。。
InterteristalPosID_ios IOS应用对应的插屏广告位id
SplashPosID_ios:IOS应用对应的开屏广告位id。
手动初始化SDK,仅当IsManualInt配置为true时使用,为false或不填时无需调用此方法。 init(callback(ret,err))
备注:如果您在初始化得到回调后,立即使用开屏广告服务。建议您添加1-2秒的延迟函数。以防止开瓶广告卡屏问题。
//初始化后立即展示开屏广告-示例
var tencentAds = api.require('tencentAds');
tencentAds.init(function(ret, err) {
if (ret.status == "onStartSuccess") {
setTimeout(function() {
tencentAds.showSplash(function(ret, err) {
skipAd();
});
}, 1500);
} else {
skipAd();
}
});
ret:
{
status:
onStartSuccess/sdk启动成功
onStartFailed/sdk启动失败
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
禁用SDK获取某些设备参数,根据个人需求,您需要咨询优量汇客服获取参数。 setPrivacyInfo()
备注:建议在初始化、拉取广告之前调用此方法。
var tencentAds = api.require('tencentAds');
tencentAds.setPrivacyInfo({
"wipaddr":false,//禁用WIFI网络IP获取
"mipaddr":false//禁用移动网络IP获取
});
打开横幅广告
showBanner({params},callback(ret,err))
x:
y:
w:
h:
依据官方给出的要求,宽高比为固定的6.4/1,请开发者自行计算模块的高度
BannerPosID:
refresh:
fixedOn:
fixed:
ret:
{
status:
onADShow/
onNoAD/
onADClick/
onADClose/
onADExposure/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.showBanner({
x: 0,
y: 0,
BannerPosID:'4080052898050840',
refresh: 30,
fixedOn: api.frameName,
fixed: true
},function(ret,err){
alert("ret: " + JSON.stringify(ret) + "\nerr: " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.1.6及更高版本
refreshBanner()
var tencentAds = api.require('tencentAds');
tencentAds.refreshBanner();
Android系统
可提供的1.1.5及更高版本
closeBanner()
关闭横幅广告
var tencentAds = api.require('tencentAds');
tencentAds.closeBanner();
iOS系统,Android系统
可提供的1.1.5及更高版本
展示插屏广告,有/无遮罩(可选)
模块内部已经实现插屏广告的预载
InterstitialID:
showInterstitialAD(callback(ret,err))
ret:
{
status:
onADLoad/
onNoAD/
onADClick/
onADClose/
onADShow/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息:
}
var tencentAds = api.require('tencentAds');
tencentAds.showInterstitialAD(
InterstitialID:'8020259898964453',
function(ret,err){
alert("ret: " + JSON.stringify(ret) + "\nerr: " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.1.6及更高版本
关闭插屏广告
closeInterstitialAD()
tencentAds.closeInterstitialAD();
Android系统
可提供的1.1.6及更高版本
备注:此接口的回调在showInterstitialAD中返回,ios调用此接口无效
展示开屏广告
如果您使用手动初始化广告SDK,请在init回调中执行
showSplash({params},callback(ret))
y:
splashlogo:
splashholderimg:
SplashPosID:
ret:
{
status:
onADShow/
onNoAD/
onADClick/
onADClose/
onADExposure/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.showSplash(
{
splashlogo : 'widget://res/logo.jpg',//(可选项)字符串类型;开屏广告下方的logo图片,传入后广告会自动适配屏幕大小;不传则不显示,,暂只支持widget路经。
splashholderimg : 'widget://image/splash.png'//(可选项)字符串类型;开屏广告的占位图片,要求高度不小于400,否则广告将无法展示;不传显示为透明背景。暂只支持widget路经。
},
function(ret,err){
alert("ret: " + JSON.stringify(ret) + "\nerr: " + JSON.stringify(err));
});
iOS系统,Android系统
备注:ipad设备不支持开平广告接口,调用此接口会返回status:"false",错误信息“设备不支持”
可提供的1.1.5及更高版本
以单独的Activity展示开屏广告
如果您使用手动初始化广告SDK,请在init回调中执行,并延迟1-2秒拉取广告服务
showSplashActivity({params},callback(ret))
splashlogo:
splashholderimg:
SplashPosID:
ret:
{
status:
onADShow/
onNoAD/
onADClick/
onADClose/
onADExposure/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.showSplashActivity(
{
splashlogo : 'widget://res/logo.jpg',//(可选项)字符串类型;开屏广告下方的logo图片,传入后广告会自动适配屏幕大小;不传则不显示,,暂只支持widget路经。
splashholderimg : 'widget://image/splash.png'//(可选项)字符串类型;开屏广告的占位图片,要求高度不小于400,否则广告将无法展示;不传显示为透明背景。暂只支持widget路经。
},
function(ret,err){
alert("ret: " + JSON.stringify(ret) + "\nerr: " + JSON.stringify(err));
});
iOS系统,Android系统
备注:ipad设备不支持开平广告接口,调用此接口会返回status:false,错误信息“设备不支持”
可提供的1.1.5及更高版本
loadNative({params},callback(ret))
w:
h:
NativeId:
videoMuted:
detailPageVideoMuted:
fixedOn:
fixed:
ret:
备注:ios和安卓不再支持高度的返回
{
status: onADLoad/
onNoAD/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.showNative({
NativeId : '4070330317832946',
w : api.frameWidth,
videoMuted:true,
detailPageVideoMuted:false,
fixedOn : api.frameName,
fixed : false
}, function(ret, err) {
alert("ret: " + JSON.stringify(ret) + "\err: " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.1.6及更高版本
showNative({params})
x:
y:
调用方法:您可以首先使用loadNative加载广告,showNative每次调用会检查是否已加载了广告。 showNative返回onNoAd,说明无广告,请调用loadNative加载广告
ret:
{
status: onNoAd/
onAdClick/
onAdClose/
onAdShow
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.showNative({
x: 0,
y: y,
fixed: false,
fixedOn: api.frameName
},function(ret,err){
alert("ret: " + JSON.stringify(ret) + "\err: " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.1.5及更高版本
loadRewardVideoAD()
预加载激励视频广告
rewardVideoID:
volumeOn:
ret:
{
status: onADLoad/
onReward/
onNoAD/
onADClick/
onADClose/
onADShow/
onADExpose/
onVideoCached/
onVideoComplete/
overdue/
}
err:
{
NSLocalizedDescription: "相关错误信息" //错误信息
}
var tencentAds = api.require('tencentAds');
tencentAds.loadRewardVideoAD({
volumeOn:false,
rewardVideoID:"6040295592058680"
},function(ret, err) {
alert("ret: " + JSON.stringify(ret) + "\err: " + JSON.stringify(err));
}
);
iOS系统,Android系统
可提供的1.1.5及更高版本
showRewardVideoAD()
展示已经预加载的激励视频广告
var tencentAds = api.require('tencentAds');
tencentAds.showRewardVideoAD();
备注:请再预加载广告返回onADLoad后,在调用此接口,否则无响应;
iOS系统,Android系统
可提供的1.1.5及更高版本