SwAdBanner

广告位四要素

  • 使用场景:页面顶部 / 中部 / 页脚 / 播放器周边的横幅位(slotKey 例 home_banner)
  • 业界形态:Banner / Leaderboard(AdSDK 格式 banner / bannerLarge)
  • 表现形态:全宽图片,单图直出 / 多图自动轮播,可带「广告」角标
  • 打点事件:adImpression(IntersectionObserver 进视口一次)/ adClick;自动内置零配置,gate 关闭静默 no-op

选错场景 = 埋点 ad_type / 时机全错。按场景选组件见 广告组件选型。

SwAdBanner 是横幅广告位组件,属于 framework 广告底座的「图片类」自渲染组件。传入 items(后端广告接口返回的创意数组)即自动渲染,内置 IntersectionObserver 曝光 + 点击埋点(走 useAdTrack),业务零代码。单图直出、多图自动轮播。

广告位优先用 SwAd* 组件,不要自己写广告组件 + 手搓埋点。完整家族与埋点字段见 广告底座与打点。

基础横幅(单图 + 广告角标)

加载中...

Props

名称类型必填默认值说明
itemsSwAdItem[]✓—广告创意数组(后端广告接口返回)
slotKeystring✓—广告位键 → 埋点 ad_slot_key
slotNamestringundefined广告位名 → ad_slot_name
pageKeystringundefined页面键 → page_key
pageNamestringundefined页面名 → page_name
ratiostringundefined宽高比(如 '640/200'),防 CLS。不传时跟随图片比例
radiusnumber | string0圆角(number=px,string 原样透传 SwImage,如 '1.125rem')
showAdLabelbooleanundefined「广告」合规角标;不传时跟随全局 swiftConfig.ad.showLabel(默认 true),显式传值始终优先
autoplaybooleantrue多图时是否自动轮播
autoplayDelaynumber4000轮播间隔(ms)

items 的字段(id / image / title / link / ratio / adType 等)见 SwAdItem 类型,统一定义见 广告底座与打点。

Events

名称携带说明
load—创意渲染完成
empty—items 为空 / 无可展示创意
impressionitems: SwAdItem[]广告位进入视口曝光(自动埋点已上报,此事件供业务额外消费)
clickitem: 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,配置缺失时静默不发(组件照常渲染)。