ad

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

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

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "Ad": {
  6. "description": "UniAd广告"
  7. }
  8. }
  9. }

createAdView

创建广告控件

  1. AdView plus.ad.createAdView(styles);

说明:

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

参数:

返回值:

AdView: 广告控件对象

示例:

  1. var adView = null;
  2. //创建广告控件
  3. function createAdView() {
  4. adView = plus.ad.createAdView({
  5. top:adDom.offsetTop+'px',
  6. left:'0px',
  7. width:'100%',
  8. height:'0px',
  9. position: 'static'
  10. });
  11. }

uni-app使用plus注意事项

getAds

获取信息流广告数据

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

参数:

  • options: (String)可选 获取广告参数
  • successCB: (GetAdsSuccessCallback)必选 获取信息流广告数据成功回调
  • errorCB: (AdErrorCallback)必选 获取信息流广告数据失败回调

返回值:

void: 无

示例:

  1. //广告控件
  2. var adView = null;
  3. //获取信息流广告数据
  4. function getAds(){
  5. plus.ad.getAds({adpid:'1111111111',width:'100%',count:1}, function(e){
  6. console.log('获取广告成功: '+JSON.stringify(e));
  7. if(!e || !e.ads || e.ads.length<1){
  8. console.log('无广告数据!');
  9. }else{
  10. console.log('开始渲染广告');
  11. adView.renderingBind(e.ads[0]);
  12. }
  13. }, function(e){
  14. console.log('获取广告失败: '+JSON.stringify(e));
  15. });
  16. }

uni-app使用plus注意事项

releaseAdData

释放广告数据

  1. void plus.ad.releaseAdData(data);

说明:

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

参数:

  • data: (AdData)可选 要释放的广告数据对象

返回值:

void: 无

AdData

信息流广告数据对象

属性:

description

广告描述信息

说明:

String类型 只读属性

showMode

广告显示类型

说明:

String类型 只读属性

可取值: lage - 大图广告; small - 小图广告; multiple - 多图广告; video - 视频广告。

title

广告标题

说明:

String类型 只读属性

AdView

广告控件对象

  1. interface plus.ad.AdView extends plus.nativeObj.View {
  2. // Methods
  3. function void renderingBind(data);
  4. function void setRenderingListener(ADViewRenderingCallback);
  5. function void setDislikeListener(ADviewDislikedCallback);
  6. }

说明:

AdView从plus.nativeObj.View继承,用于渲染显示广告的原生控件,目前仅支持“模板渲染”模式,暂不支持“自定义渲染”模式。使用广告控件步骤:
  • 创建广告控件AdView,添加到Webview中,高度设置为"0px",此时不显示
  • 获取广告数据,将广告数据绑定到AdView上并开始渲染
  • 监听广告渲染事件,广告渲染成功后更新AdView的高度,显示广告注意:广告控件创建后需添加到Webview窗口中才能显示,关闭广告。

方法:

示例:

  1. var adView = null;
  2. //创建并渲染广告
  3. function doCreateAd(){
  4. adView = plus.ad.createAdView({
  5. top:adDom.offsetTop+'px',
  6. left:'0px',
  7. width:'100%',
  8. height:'0px',
  9. position: 'static'
  10. });
  11. plus.webview.currentWebview().append(adView);
  12. adView.setRenderingListener(function(e){
  13. outLine('渲染广告完成: '+JSON.stringify(e));
  14. if(0 != e.result){
  15. outLine('渲染失败!');
  16. }else{
  17. adView.setStyle({height:e.height+'px'});
  18. adDom.style.height = e.height+'px';
  19. }
  20. });
  21. plus.ad.getAds({adpid:'1111111111',width:'100%',count:1}, function(e){
  22. outLine('获取广告成功: '+JSON.stringify(e));
  23. if(!e || !e.ads || e.ads.length<1){
  24. outLine('无广告数据!');
  25. }else{
  26. outLine('开始渲染广告');
  27. adView.renderingBind(e.ads[0]);
  28. }
  29. }, function(e){
  30. outLine('获取广告失败: '+JSON.stringify(e));
  31. });
  32. }

uni-app使用plus注意事项

renderingBind

绑定广告数据并渲染

  1. void adview.renderingBind(data);

说明:

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

参数:

  • data: (AdData)必选 要绑定的广告数据广告数据可通过plus.ad.getAds方法获取。

返回值:

void: 无

setRenderingListener

监听广告渲染完成事件

  1. void adview.setRenderingListener(callback);

说明:

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

参数:

返回值:

void: 无

setDislikeListener

监听点击关闭广告事件

  1. void adview.setDislikeListener(callback);

说明:

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

参数:

返回值:

void: 无

AdViewStyles

广告原生控件样式

属性:

  • top: _(String类型)_AdView控件左上角的垂直偏移量可取值:像素值,如"100px";百分比,如"10%",相对于父Webview窗口的高度。默认值为"0px"。

  • left: _(String类型)_AdView控件左上角的水平偏移量可取值:像素值,如"100px";百分比,如"10%",相对于父Webview窗口的宽度。默认值为"0px"。

  • width: _(String类型)_AdView控件的宽度可取值:像素值,如"100px";百分比,如"10%",相对于父Webview窗口的宽度。默认值为"100%"。

  • height: _(String类型)_AdView控件的高度可取值:像素值,如"100px";百分比,如"10%",相对于父Webview窗口的高度。默认值为"0px"。

  • position: _(String类型)_AdView控件在Webview窗口的布局模式可取值:"static" - 静态布局模式,如果页面存在滚动条则随窗口内容滚动;"absolute" - 绝对布局模式,如果页面存在滚动条不随窗口内容滚动;默认值为"static"。

AdsOptions

获取信息流广告的参数

属性:

  • adpid: (String类型)信息流广告位标识在UniAD平台新建广告位后可得到。

  • width: (String类型)信息流广告将要显示的宽度支持像素值(如"100px")、百分比(如"50%")。默认值为"100%"。注:此值用于向广告平台匹配合适的信息流广告,建议传入广告展现时真实的宽度。

  • cound: (Number类型)获取信息流广告的数目默认值为3。注:真实返回的广告数目可能小于此值,如填充率不够时会发生此情况。

GetAdsSuccessCallback

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

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

说明:

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

参数:

  • event: (Event)可选 获取信息流广告成功的信息可通过event.ads,Array(AdData类型)获取广告数据。

返回值:

void: 无

ADViewRenderingCallback

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

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

说明:

广告渲染完成时触发。

参数:

  • event: (Event)可选 广告渲染的信息event包含以下参数:result - Number类型,0表示渲染成功,其它值表示渲染失败;width - Number类型,控件的宽度,逻辑像素值;height - Number类型,控件的高度,逻辑像素值。

返回值:

void: 无

ADviewDislikedCallback

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

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

说明:

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

参数:

  • event: (Event)可选 关闭广告的信息event包含以下参数:value - String类型,不喜欢的原因。

返回值:

void: 无

AdSuccessCallback

广告操作成功回调函数

  1. void onSuccess(){
  2. // Code here
  3. }

参数:

返回值:

void: 无

AdErrorCallback

广告操作错误回调函数

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

说明:

获取信息流广告数据失败时触发。

参数:

  • error: (Exception)可选 广告操作的错误信息可通过error.code(Number类型)获取错误编码;可通过error.message(String类型)获取错误描述信息。

返回值:

void: 无