ad常见问题我要提意见

AD模块实现uni-AD广告联盟功能,聚合目前国内流行的广告平台广点通(腾讯)、穿山甲(今日头条)、360广告等,支持信息流、Banner等广告。

HBuilderX2.5.3+版本开始支持,uni-AD申请开通请登录uni-AD广告联盟

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)


{
// ...
"permissions":{
	// ...
	"Ad": {
		"description": "UniAd广告"
	}
}
}
			

createAdView

创建广告控件


AdView plus.ad.createAdView(styles);
				

说明:

创建广告控件后不会自动显示,需要将控件添加Webview窗口中才能显示; 广告控件不会自动渲染广告内容,需要调用renderingBind方法绑定广告数据才会渲染; 完成显示后需要调用close方法关闭广告控件,释放原生资源。

参数:

返回值:

AdView : 广告控件对象

示例:


var adView = null;
//创建广告控件
function createAdView() {
  adView = plus.ad.createAdView({
    top:adDom.offsetTop+'px',
    left:'0px',
    width:'100%',
    height:'0px',
    position: 'static'
  });
}
				

uni-app使用plus注意事项

createRewardedVideoAd

创建激励视频广告


RewardedVideoAd plus.ad.createRewardedVideoAd(styles);
				

说明:

HBuilderX2.5.11+版本支持。 创建激励视频视频广告对象后不会自动加载显示,需要调用load方法才会加载; 广告脚在完成后需要调用show方法显示激励视频。 完成显示后需要调用destroy方法释放原生资源。

参数:

返回值:

RewardedVideoAd : 视频激励广告对象

示例:


var adReward = null;
function rewardedVideoAd(){
  if(adReward){
    console.log('正在加载激励视频广告');
    return;
  }
   console.log('#视频激励广告#');
  adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'});
  adReward.onLoad(function(){
     console.log('加载成功')
    adReward.show();
  });
  adReward.onError(function(e){
     console.log('加载失败: '+JSON.stringify(e));
    adReward.destroy();
    adReward = null;
  });
  adReward.onClose(function(e){
    if(e.isEnded){
       console.log('激励视频播放完成');
      plus.nativeUI.toast('激励视频播放完成');
      //这里实现完成激励视频逻辑
    }else{
       console.log('激励视频未播放完成关闭!')
    }
    adReward.destroy();
    adReward = null;
  });
  adReward.load();
}
				

uni-app使用plus注意事项

getAds

获取信息流广告数据


void plus.ad.getAds(options, successCB, errorCB);
				

参数:

返回值:

void : 无

示例:


//广告控件
var adView = null;

//获取信息流广告数据
function getAds(){
  plus.ad.getAds({adpid:'1111111111',width:'100%',count:1}, function(e){
    console.log('获取广告成功: '+JSON.stringify(e));
    if(!e || !e.ads || e.ads.length<1){
      console.log('无广告数据!');
    }else{
      console.log('开始渲染广告');
      adView.renderingBind(e.ads[0]);
    }
  }, function(e){
    console.log('获取广告失败: '+JSON.stringify(e));
  });
}
				

uni-app使用plus注意事项

releaseAdData

释放广告数据


void plus.ad.releaseAdData(data);
				

说明:

通过plus.ad.getAds方法获取广告数据后,如果不绑定的广告控件中,则需要调用此方法释放广告数据。

参数:

返回值:

void : 无

AdData

信息流广告数据对象

属性:

description

广告描述信息

说明:

String 类型 只读属性 可选属性

注意:部分广告商可能不返回此数据。

provider

广告提供商标识

说明:

String 类型 只读属性

包括以下值:

showMode

广告显示类型

说明:

String 类型 只读属性 可选属性

可取值:

title

广告标题

说明:

String 类型 只读属性 可选属性

注意:部分广告商可能不返回此数据。

AdView

广告控件对象


interface plus.ad.AdView extends plus.nativeObj.View  {
	// Methods
	function void renderingBind(data);
	function void setRenderingListener(ADViewRenderingCallback);
	function void setDislikeListener(ADviewDislikedCallback);
}
				

说明:

AdView从plus.nativeObj.View继承, 用于渲染显示广告的原生控件,目前仅支持“模板渲染”模式,暂不支持“自定义渲染”模式。
使用广告控件步骤:


注意:广告控件创建后需添加到Webview窗口中才能显示,关闭广告。

方法:

示例:


var adView = null;
//创建并渲染广告
function doCreateAd(){
  adView = plus.ad.createAdView({
    top:adDom.offsetTop+'px',
    left:'0px',
    width:'100%',
    height:'0px',
    position: 'static'
  });
  plus.webview.currentWebview().append(adView);
  adView.setRenderingListener(function(e){
    outLine('渲染广告完成: '+JSON.stringify(e));
    if(0 != e.result){
      outLine('渲染失败!');
    }else{
      adView.setStyle({height:e.height+'px'});
      adDom.style.height = e.height+'px';
    }
  });
  plus.ad.getAds({adpid:'1111111111',width:'100%',count:1}, function(e){
    outLine('获取广告成功: '+JSON.stringify(e));
    if(!e || !e.ads || e.ads.length<1){
      outLine('无广告数据!');
    }else{
      outLine('开始渲染广告');
      adView.renderingBind(e.ads[0]);
    }
  }, function(e){
    outLine('获取广告失败: '+JSON.stringify(e));
  });
}
				

uni-app使用plus注意事项

renderingBind

绑定广告数据并渲染


void adview.renderingBind(data);
						

说明:

可通过setRenderingListener方法监听广告渲染完成事件。

参数:

返回值:

void : 无

setRenderingListener

监听广告渲染完成事件


void adview.setRenderingListener(callback);
						

说明:

“模板渲染”模式下有效,广告控件渲染完成时触发。 回调函数中返回渲染结果,及广告显示需要的宽度及高度信息,此时需动态调整控件的高度确保广告内容正常显示。

参数:

返回值:

void : 无

setDislikeListener

监听点击关闭广告事件


void adview.setDislikeListener(callback);
						

说明:

“模板渲染”模式下有效,用户点击“关闭广告”按钮时触发。 注意:用户点击此按钮并不会关闭广告控件,需要调用ADView的close方法关闭控件,释放原生资源。

参数:

返回值:

void : 无

AdViewStyles

广告原生控件样式

属性:

AdsOptions

获取信息流广告的参数

属性:

RewardedVideoAd

广告控件对象


interface plus.ad.RewardedVideoAd  {
	// Methods
	function void destroy();
	function String getProvider();
	function void load();
	function void offClose(callback);
	function void offError(callback);
	function void offLoad(callback);
	function void onClose(callback);
	function void onError(callback);
	function void onLoad(callback);
	function void show();
}
				

说明:

HBuilderX2.5.11+版本支持。
用于管理激励视频广告对象,调用plus.ad.createRewardedVideoAd方法创建。 需先调用load加载视频广告,加载完成后调用show显示,激励视频广告使用原生控件渲染显示,显示层级较高。

方法:

示例:


var adReward = null;
function rewardedVideoAd(){
  if(adReward){
    console.log('正在加载激励视频广告');
    return;
  }
   console.log('#视频激励广告#');
  adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'});
  adReward.onLoad(function(){
     console.log('加载成功')
    adReward.show();
  });
  adReward.onError(function(e){
     console.log('加载失败: '+JSON.stringify(e));
    adReward.destroy();
    adReward = null;
  });
  adReward.onClose(function(e){
    if(e.isEnded){
       console.log('激励视频播放完成');
      plus.nativeUI.toast('激励视频播放完成');
      //这里实现完成激励视频逻辑
    }else{
       console.log('激励视频未播放完成关闭!')
    }
    adReward.destroy();
    adReward = null;
  });
  adReward.load();
}
				

uni-app使用plus注意事项

destroy

销毁激励视频广告对象


void adReward.destroy();
						

说明:

释放原生层资源。

参数:

返回值:

void : 无

getProvider

广告提供商标识

参数:

返回值:

String : 包括以下值: "360" - 表示广告由360广告联盟提供; "csj" - 表示广告由今日头条穿山甲广告联盟提供; "gdt" - 表示广告由腾讯广点通广告联盟提供。

load

加载激励视频广告


void adReward.load();
						

说明:

激励视频广告加载完成会触发onLoad设置的监听回调。

参数:

返回值:

void : 无

offClose

取消监听用户点击 关闭广告 按钮的事件


void adReward.offClose(callback);
						

参数:

返回值:

void : 无

offError

取消监听激励视频错误事件


void adReward.offError(callback);
						

参数:

返回值:

void : 无

offLoad

取消监听激励视频广告加载事件


void adReward.offLoad(callback);
						

参数:

返回值:

void : 无

offVerify

取消监听激励视频服务器回调校验事件


void adReward.offVerify(callback);
						

参数:

返回值:

void : 无

onClose

监听用户点击 关闭广告 按钮的事件


void adReward.onClose(callback);
						

说明:

用户点击激励视频广告页面中的“关闭广告”按钮时触发,回调参数为JSON对象,包括以下属性:

可通过回调参数的isEnded属性判断视频是否是在用户完整观看的情况下被关闭的。

参数:

返回值:

void : 无

示例:


var adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'});
//监听广告关闭事件
adReward.onClose(function(e){
    if(e.isEnded){
       console.log('激励视频播放完成');
      plus.nativeUI.toast('激励视频播放完成');
      //这里实现完成激励视频逻辑
    }else{
       console.log('激励视频未播放完成关闭!')
    }
    adReward.destroy();
    adReward = null;
});
						

uni-app使用plus注意事项

onError

监听激励视频错误事件


void adReward.onError(callback);
						

说明:

激励视频广告加载或显示失败时触发。

参数:

返回值:

void : 无

示例:


var adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'});
// 监听广告错误事件
adReward.onError(function(e){
  console.log('加载失败: '+JSON.stringify(e));
  adReward.destroy();
  adReward = null;
});
						

uni-app使用plus注意事项

onLoad

监听激励视频广告加载事件


void adReward.onLoad(callback);
						

说明:

激励视频广告加载完成时触发。

参数:

返回值:

void : 无

示例:


var adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'});
//监听广告加载完成事件
adReward.onLoad(function(){
  console.log('加载成功')
  adReward.show();
});
adReward.load();
						

uni-app使用plus注意事项

onVerify

监听激励视频广告服务器回调校验事件


void adReward.onVerify(callback);
						

说明:

激励视频广告服务器回调校验完成时触发,回调参数为JSON对象,包括以下属性:

注意:HBuilderX2.7.0+版本支持,仅今日头条穿山甲广告支持服务器回调,详情参考:https://ask.dcloud.net.cn/article/37108

参数:

返回值:

void : 无

示例:


var adReward = plus.ad.createRewardedVideoAd({adpid:'1507000689'}
    urlCallback: {  
      amount: '6',  
      name: 'RewardVideoAD1',  
      userId: 'test111111',  
      extra: 'testdata'  
    }  
);
adReward.onVerify(function(e){
  console.log('服务器回调校验完成');
  var valid = e.isValid;   //获取校验结果
});
						

uni-app使用plus注意事项

show

显示激励视频广告


void adReward.show();
						

说明:

全屏显示激励视频广告。

参数:

返回值:

void : 无

RewardedVideoAdStyles

创建激励视频对象的参数

属性:

RewardVideoAdUrlCallbackDatas

激励视频服务器回调数据

说明:

HBuilderX2.6.8+版本支持。 使用方法参考https://ask.dcloud.net.cn/article/37108

属性:

示例:


  adReward = plus.ad.createRewardedVideoAd({  
    adpid: '1507000689',     //广告位标识,请修改为应用在uni-AD平台申请的值
    urlCallback: {  
      amount: '6',                       //奖励数量
      name: 'RewardVideoAD1',  //奖励名称
      userId: 'test111111',            //修改为应用业务系统中的用户标识
      extra: 'testdata'                 //根据需求传入自定义参数
    }  
  });
  				

uni-app使用plus注意事项

GetAdsSuccessCallback

获取信息流广告成功回调函数


void onSuccess( Event event ){
	// Code here
	var ads = event.ads; // AdData数组对象,AdData为广告数据对象
}
				

说明:

获取信息流广告成功时触发,并返回信息流广告数据。

参数:

返回值:

void : 无

ADViewRenderingCallback

监听广告渲染完成事件回调函数


void onSuccess( Event event ){
	// Code here
	var result = event.result; // 广告渲染结果,0表示渲染成功
	var width = event.wdith;  // 广告渲染需要的宽度,逻辑像素值
	var height = event.height; // 广告渲染需要的高度,逻辑像素值
}
				

说明:

广告渲染完成时触发。

参数:

返回值:

void : 无

ADviewDislikedCallback

监听点击关闭广告事件回调函数


void onSuccess( Event event ){
	// Code here
	var value = event.value; // 用户关闭广告的原因
}
				

说明:

用户点击关闭广告时触发。

参数:

返回值:

void : 无

RewardedVideoAdCloseCallback

监听关闭激励视频广告事件回调函数


void onClose( Event event ){
	// Code here
	var isEnded = event.isEnded; // 视频是否是在用户完整观看的情况下被关闭的
}
				

说明:

用户点击关闭广告时触发。

参数:

返回值:

void : 无

AdSuccessCallback

广告操作成功回调函数


void onSuccess(){
	// Code here
}
				

参数:

返回值:

void : 无

AdErrorCallback

广告操作错误回调函数


void onError(error){
	// Handle the error
	var code = error.code; // 错误编码
	var message = error.message; // 错误描述信息
}
				

说明:

激励视频广告错误码定义:

参数:

返回值:

void : 无