之前小程序广告用的是微信的智能接入——轻松,但不够灵活。
智能接入的广告位置不可控,不同页面无法单独设置广告类型,加载失败还会留空白位。如果小程序有多个页面、每个页面意图不同,还是自主接入更可控。
后台路径:
plain text
微信小程序后台 → 流量主 → 广告管理 → 广告位管理 → 自主接入进去后第一步:关掉智能接入的广告位,避免冲突。
01 新建广告位
根据页面流量入口创建对应的广告位:
- 工具结果广告:原生模板广告,16:9 横版
- 工具箱广告:原生模板广告,16:9 横版
- 首页底部广告:Banner 广告,20:7 横幅

提交审核。微信广告位审核一般半小时到几小时,不算慢。
审核通过后,每个广告位生成一个 adunit- 开头的 ID,在代码里会用到。
02 代码接入
WXML 用 <ad-custom> 组件,JS 加上三个事件回调(加载成功/失败/关闭)。下面是我实际项目里的代码:

关键点:binderror 里可以做失败折叠——广告加载失败时隐藏容器,页面布局不受影响。智能接入做不到这个。

总结一下:智能接入图省事,自主接入图可控。操作半小时,换来的是对广告展示位置和失败处理的完全控制权。