SwAdBanner
广告位四要素
- 使用场景:页面顶部 / 中部 / 页脚 / 播放器周边的横幅位(slotKey 例
home_banner)- 业界形态:Banner / Leaderboard(AdSDK 格式
banner/bannerLarge)- 表现形态:全宽图片,单图直出 / 多图自动轮播,可带「广告」角标
- 打点事件:
adImpression(IntersectionObserver 进视口一次)/adClick;自动内置零配置,gate 关闭静默 no-op选错场景 = 埋点
ad_type/ 时机全错。按场景选组件见 广告组件选型。
SwAdBanner 是横幅广告位组件,属于 framework 广告底座的「图片类」自渲染组件。传入 items(后端广告接口返回的创意数组)即自动渲染,内置 IntersectionObserver 曝光 + 点击埋点(走 useAdTrack),业务零代码。单图直出、多图自动轮播。
广告位优先用
SwAd*组件,不要自己写广告组件 + 手搓埋点。完整家族与埋点字段见 广告底座与打点。
基础横幅(单图 + 广告角标)
加载中...
Props
| 名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
items | SwAdItem[] | ✓ | — | 广告创意数组(后端广告接口返回) |
slotKey | string | ✓ | — | 广告位键 → 埋点 ad_slot_key |
slotName | string | undefined | 广告位名 → ad_slot_name | |
pageKey | string | undefined | 页面键 → page_key | |
pageName | string | undefined | 页面名 → page_name | |
ratio | string | undefined | 宽高比(如 '640/200'),防 CLS。不传时跟随图片比例 | |
radius | number | string | 0 | 圆角(number=px,string 原样透传 SwImage,如 '1.125rem') | |
showAdLabel | boolean | undefined | 「广告」合规角标;不传时跟随全局 swiftConfig.ad.showLabel(默认 true),显式传值始终优先 | |
autoplay | boolean | true | 多图时是否自动轮播 | |
autoplayDelay | number | 4000 | 轮播间隔(ms) |
items的字段(id/image/title/link/ratio/adType等)见SwAdItem类型,统一定义见 广告底座与打点。
Events
| 名称 | 携带 | 说明 |
|---|---|---|
load | — | 创意渲染完成 |
empty | — | items 为空 / 无可展示创意 |
impression | items: SwAdItem[] | 广告位进入视口曝光(自动埋点已上报,此事件供业务额外消费) |
click | item: SwAdItem | 点击某条创意(自动埋点已上报) |
error | — | 渲染 / 加载错误 |
多图自动轮播
传入多条 items 时自动轮播,autoplayDelay 控制间隔;不需要轮播传 :autoplay="false"。
多图自动轮播
加载中...
单图模式 + 角标 + 圆角
加载中...
事件总览(load/impression/click)
加载中...
空数据 @empty(零渲染)
加载中...
<SwAdBanner
:items="banners"
slot-key="home_top_banner"
page-key="home"
ratio="640/200"
:radius="8"
:autoplay-delay="3000"
show-ad-label
/>
注意事项
- 不要手搓埋点 —— 曝光 / 点击埋点已内置,业务无需自己接
IntersectionObserver或调useTracker。 - 传
ratio防 CLS —— 广告图未加载时用ratio占位,避免布局抖动。 - 上报受
tracker.enabled+system/info.tracker双重 gate,配置缺失时静默不发(组件照常渲染)。