上一篇(Uni-app开发App和插件以后如何开通广告盈利:uni-AD_智密科技的博客)为各位实用uni-app 的开发者介绍了官方推出的 uni-ads 的广告插件,但是只简单介绍了 uni-ads 中的广告类型,之后的系列就为大家介绍不同的应用广告类型,和插件代码。
Banner或信息流广告展现场景非常灵活,常见的展现场景为:文章顶部,详情页面顶部,第一屏中部等。建议信息流广告不要放置在底部
信息流广告(或者Banner)算是App和小程序中最常见的广告。一般出现在文章的顶部或者底部,详情页面的顶部、还有信息流第一屏的中部等。不过从广告效果来说,底部的信息流广告效果比较差。

App端的广告源由腾讯优量汇、头条穿山甲、快手广告联盟等主流广告渠道以及部分DCloud直投广告组成,在DCloud的uni-AD后台注册
| APP | H5 | 微信小程序 | 支付宝小程序 | 字节跳动小程序 | QQ小程序 | 快应用 | 360 小程序 | 快手小程序 | 京东小程序 | 百度小程序 |
| 2.5.2+ 支持 | 3.4.8 支持 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 |
属性说明
| 属性名 | 类型 | 默认值 | 说明 | 平台差异 |
|---|---|---|---|---|
| adpid | String | uni-AD App广告位id | App,微信小程序3.4.8+ | |
| unit-id | String | 广告单元id,可在小程序管理后台的流量主模块新建 | 微信小程序、字节跳动小程序(最低版本1.19.0+)、QQ小程序、快手小程序 | |
| ad-intervals | number | 广告自动刷新的间隔时间,单位为秒,参数值必须大于等于30(该参数不传入时 Banner 广告不会自动刷新) | 微信小程序(基础库2.3.1+) | |
| data | Object | 可选 | 广告数据,通过 plus.ad.getAds (参考示例代码),优先级高于adpid | App |
| appid | String | 小程序应用 ID | 百度小程序 | |
| apid | String | 小程序广告位 ID | 百度小程序 | |
| ad-left | Number | type为feeds时广告左边距(px),必须大于0 | QQ小程序 | |
| ad-top | Number | type为feeds时广告上边距(px),必须大于0 | QQ小程序 | |
| ad-width | Number | type为feeds时广告宽度(px),默认100%,最大值为屏幕宽度,最小值为265 | QQ小程序 | |
| ad-height | Number | type为feeds时广告高度(px),最小85,最大160 | QQ小程序 | |
| type | String | feed | QQ小程序、百度小程序、字节跳动小程序、快手小程序 | |
| @load | EventHandle | 广告加载成功的回调 | ||
| @error | EventHandle | 广告加载失败的回调,event.detail = {errCode: } | ||
| @close | EventHandle | 广告关闭的回调 |
type属性 百度
广告类型:banner/feed,需和百青藤平台上的代码位类型相匹配。
type属性 头条
广告的类型,默认 banner,具体类型有:banner、video(视频)、large(大图)、lImg(左图右文)、rImg(右图左文),默认值为 banner
type属性 QQ
| 值 | 说明 |
|---|---|
| banner | banner广告 分 1 图和 3 图 1 文。3 图 1 文广告的背景色、文字颜色会根据祖先节点的背景色调整,分三种情况深色背景、浅色背景和白色背景 |
| swip | 翻页广告,1 图 1 文,会覆盖整个小程序,显示、隐藏逻辑需开发者自行控制 |
| card | 卡片广告,1 图,可关闭 |
| feeds | 自定义广告,可灵活控制广告上、左边距和宽高,以适应界面其他内容。可监听size事件获取实际宽高 |
App和微信小程序的ad组件没有type属性,可以用于banner,也可以用于信息流。
微信小程序平台支持信息流(Banner)广告组件 <ad unit-id=""></ad>,由微信提供
uniAD 也支持信息流(Banner)广告组件 <ad adpid=""></ad>,由uniAD提供
3.4.10 之前的版本ad组件运行到微信小程序使用微信提供的广告组件
3.4.10+ 以后的版本调整如下
unit-id,使用微信提供的ad组件,逻辑不变adpid 属性,被编译为 uniad,见下文的介绍adpid 和 unit-id 属性,被编译为 uniad,见下文的介绍uniad是uni-app框架的内置的组件,uniad组件同时支持uniAD广告和微信原生广告,先请求uniAD,如果已开通直接使用否则切换为微信的广告,这个过程会有3秒的延时
uniad组件依赖uniAD提供的微信小程序插件和腾讯提供的珊瑚广告插件
如果想在微信上仅使用微信的广告,App 或 Web 使用 uniAD 可使用条件编译
条件编译示例
<!-- #ifdef MP-WEIXIN -->
<ad unit-id=""></ad>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<ad adpid=""></ad>
<!-- #endif -->
注意
<ad>组件是原生组件,在webview页面会有层级问题,同时无法在<swiper>、<scroll-view>组件中使用。但app-nvue、微信小程序新版和头条小程序新版支持同层渲染,所以没有层级问题。而app-vue、QQ小程序等平台则有层级问题。- 无广告时没有高度,关闭广告时释放高度,宽度由父容器决定
- App 平台,因广告组件内部获得广告数据计算后设置组件大小,会出现界面抖动问题,可以提前通过 plus.ad.getAds 获得广告数据,设置 data 后 adpid 将无效
- 微信小程序
<ad>组件不支持触发 tap 等触摸相关事件- Android 平台 nvue的
<list>组件中使用<ad>时,必须指定宽度属性<ad width="750rpx" />,因为<list>有自动的内存回收机制,不在屏幕范围的组件不被创建,组件内部无法获取大小- app-nvue 的
<recycle-list>组件内不支持嵌套<ad>- 广点通概率出现重复广告,可根据需求请求广告数据,推荐单次大于1条(plus.ad.getAds) 来降低重复率
- HBuilderX2.8+版本Android平台更新穿山甲(今日头条)广告SDK后不再支持x86类型CPU,无法运行到x86类型cpu的模拟器。
<ad>组件测试广告位是上图下文,uniAD后台申请的广告位默认左图右文- HBuilderX标准基座真机运行测试信息流广告位标识(adpid)为:1111111111,微信小程序和H5平台暂不提供测试广告位
示例
<template>
<view class="content">
<!-- adpid="1111111111" 此广告位标识仅在HBuilderX标准基座中有效,仅用于测试 -->
<!-- 广告后台申请的广告位(adpid)需要自定义基座/云打包/本地打包后生效 -->
<view class="ad-view">
<ad adpid="1111111111" @load="onload" @close="onclose" @error="onerror"></ad>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'ad'
}
},
methods: {
onload(e) {
console.log("onload");
},
onclose(e) {
console.log("onclose: " + e.detail);
},
onerror(e) {
console.log("onerror: " + e.detail.errCode + " message:: " + e.detail.errMsg);
}
}
}
</script>
<style>
.content {
background-color: #DBDBDB;
padding: 10px;
}
.ad-view {
background-color: #FFFFFF;
margin-bottom: 10px;
}
</style>
api的方式(仅App平台支持),不推荐使用这种调用方式,调用比较复杂,且不跨平台,开发者还需要手动处理缓存逻辑
<template>
<view class="content">
<view class="ad-view">
<ad :data="adData"></ad>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'ad',
adData: {}
}
},
onReady: function (e) {
this.getAdData()
},
methods: {
getAdData: function (e) {
// 仅APP平台支持
plus.ad.getAds({
adpid: '1111111111', // 替换为自己申请获取的广告位标识,此广告位标识仅在HBuilderX标准基座中有效,仅用于测试
count: 1, // 广告数量,默认 3
width: 300 // 根据宽度获取合适的广告(单位px)
},
(res) => {
// 注意: 广告数据只能使用一次
this.adData = res.ads[0];
console.log(this.adData);
},
(err) => {
console.log(err);
}
)
}
}
}
</script>
<style>
.content {
background-color: #DBDBDB;
padding: 10px;
}
.ad-view {
background-color: #FFFFFF;
margin-bottom: 10px;
}
</style>
使用 ad/ad-draw 模拟插屏广告效果@Interstitial
<template>
<view>
<!-- 使用 ad/ad-draw 模拟插屏广告效果 -->
<view>
<button @click="showInterstitialAd">显示插屏广告</button>
</view>
<view class="ad-interstitial" v-if="isShowInterstitialAd">
<view class="ad-view">
<ad class="ad" adpid="1111111111" @error="onerror"></ad>
<!-- ad-draw 仅在nvue页面生效 -->
<!-- <ad-draw class="ad-draw" adpid="1507000690"></ad-draw> -->
</view>
<view class="close-area">
<!-- 根据z自己页面风格设置关闭按钮的样式 -->
<button @click="hideInterstitialAd">X</button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
isShowInterstitialAd: false
}
},
methods: {
showInterstitialAd() {
this.isShowInterstitialAd = true
},
hideInterstitialAd() {
this.isShowInterstitialAd = false
},
onerror(e) {
console.log(e);
}
}
}
</script>
<style>
.ad-interstitial {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.8);
padding: 20px;
/* #ifndef APP-NVUE */
display: flex;
z-index: 1000;
/* #endif */
flex-direction: column;
justify-content: center;
}
.ad-draw {
width: 700rpx;
height: 400px;
}
</style>
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?
我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
我的测试尝试访问网页并验证页面上是否存在某些元素。例如,它访问http://foo.com/homepage.html并检查Logo图像,然后访问http://bar.com/store/blah.html并检查页面上是否出现了某些文本。我的目标是访问经过Kerberos身份验证的网页。我发现Kerberos代码如下:主文件uri=URI.parse(Capybara.app_host)kerberos=Kerberos.new(uri.host)@kerberos_token=kerberos.encoded_tokenkerberos.rb文件classKerberosdefini
对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进