SwAdSplash
广告位四要素
- 使用场景:进站 / 首屏自动弹的开屏广告(web 上开屏 ≈ 进站全屏弹窗;slotKey 例
splash)。数据通常来自system/info.layers的图片广告层- 业界形态:App-Open / Splash(AdSDK 格式
splash)- 表现形态:全屏遮罩 + 单图逐个弹(
sequential)或故事流轮播(carousel)+ 倒计时可关- 打点事件:
adImpression(弹层展示即报,ad_type=splash)/adClick;自动内置零配置,gate 关闭静默 no-op⚠️ 业务行为触发(点按钮 / feed 每滑 N 条)的全屏弹窗用 SwAdPopup,不是本组件。选错场景 = 埋点
ad_type/ 时机全错,见 广告组件选型。
SwAdSplash 是进站自动弹的开屏广告位组件——onMounted 延迟 delay 后自动弹一次,受 useAdFrequency 频控(默认 'session' 每会话一次)。与 SwAdPopup(业务 ref.open() 触发)共享同一弹窗内核,区别只在自动触发 + frequency 默认 'session' + ad_type=splash。多创意支持顺序展示或故事流轮播。内置曝光 / 点击埋点。
文案 + CTA overlay(opt-in):item 带
title/description/cta/advertiser任一时,自动在创意图上叠加「标题 + 副文案 + CTA 按钮」浮层(像真广告);只给image则保持纯图、不变。CTA 是按钮样的<span>(整张广告已是链接,点击落link)。
进站自动弹 + 频控重置
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 | '3/4' | 弹窗创意宽高比 | |
overlay | boolean | true | 是否显示遮罩 | |
mode | 'sequential' | 'carousel' | 'sequential' | 多创意:顺序逐个 / 故事流轮播 | |
delay | number | 1000 | 进站延迟弹出(ms) | |
frequency | AdFrequencyStrategy | 'session' | 频控策略('session' 每会话 / 'always' 每次 / 'Nm'·'Nh'·'Nd' 每 N 分·时·天一次) | |
frequencyKey | string | undefined | 频控存储键(默认用 slotKey) | |
showAdLabel | boolean | undefined | 「广告」合规角标;不传时跟随全局 swiftConfig.ad.showLabel(默认 true),显式传值始终优先 | |
autoplayDelay | number | 3000 | carousel 模式轮播间隔(ms) | |
closableAfter | number | 0 | 倒计时 N 毫秒后才可关闭(防误关,0 = 立即可关) | |
loop | boolean | true | carousel 模式是否循环 |
Events
| 名称 | 携带 | 说明 |
|---|---|---|
open | — | 弹窗打开 |
close | — | 弹窗关闭 |
empty | — | items 为空(不弹) |
impression | items: SwAdItem[] | 曝光(自动埋点) |
click | item: SwAdItem | 点击创意(自动埋点) |
error | — | 渲染 / 加载错误 |
暴露方法(ref)
| 方法 | 说明 |
|---|---|
close() | 手动关闭弹窗(一般倒计时 / ✕ 走组件内部,无需调用) |
进站频控 + 故事流
进站自动弹按 frequency 频控('session' 每会话一次 / '7d' 七天一次 / 'always' 每次都弹);mode="carousel" 多创意故事流轮播,配 closableAfter 倒计时防关、autoplayDelay 切换间隔:
<!-- 进站每会话弹一次 -->
<SwAdSplash :items="splashAds" slot-key="splash" />
<!-- 故事流轮播 + 7 天一次 + 4 秒防关;3 秒自动切换、到最后一张停住(loop=false);
ratio="9/16" 全面屏竖版创意 -->
<SwAdSplash
:items="splashAds"
slot-key="splash"
mode="carousel"
ratio="9/16"
:frequency="7"
:closable-after="4000"
:autoplay-delay="3000"
:loop="false"
/>
样式定制 Token
弹窗控件配色经 --sw-ad-popup-* token 覆盖(fallback 即默认媒体语境黑白值;SwAdSplash 共用同一套内核 token):
--sw-ad-popup-overlay-bg(黑 60%) · -topbar-gradient · -pill-bg(白 12%) · -pill-color(白) · -seq-border(白 60%) · -seq-color(白 90%) · -bar-track(白 25%) · -bar-fill(var(--primary),值可填品牌渐变) · -nav-bg(黑 35%) · -nav-color(白)
本组件与
SwAdPopup共用弹层内核AdPopupBase——--sw-ad-popup-*那套旋钮对本组件同样生效,清单见 SwAdPopup · 样式定制 Token;创意上的标题 / CTA 浮层旋钮--sw-ad-overlay-*见 SwAdPreroll · 创意浮层 Token。
注意事项
- 进站自动弹 ——
onMounted延迟delay后自动弹,不需要业务调open();频控未命中静默不弹。 - 频控走
useAdFrequency—— 按frequency策略自动频控('session'走 sessionStorage、'Nm'·'Nh'·'Nd'走 localStorage),不需要业务自己判断。 closableAfter > 0时倒计时内禁止关闭(防误触),到点出现关闭按钮。- 埋点内置(
ad_type=splash),受 tracker 双重 gate。