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。