ADS: VAST has implicit dependency on popunder cooldown
DEPLOY: document custom CDN stale-cache gotcha + recovery Findings from 8148 production debug session 2026-05-02: 1. VAST gotcha — _decide() mode логіка: mode = popActive ? (vastActive || skipPattern ? "none" : "vast") : "pop" Тобто VAST loadable ТІЛЬКИ після того як popunder уже спрацював і _popRr cooldown set. На свіжій сесії: mode завжди "pop" → VAST SDK never loaded → користувач думає "VAST зламаний". Force test через ?clearAds=1 → pop fires → refresh → mode=vast. 2. CDN stale-cache — custom CDN кешує `?v=<hex-like>` URLs з s-maxage=31536000 (1 рік). Race у deploy: layout.etlua з новим ?v= може hit CDN раніше ніж static file → CDN кешує OLD bundle під NEW ?v= ключем → застрягає назавжди. Workaround: bump source md5, rebuild, новий ?v= ключ. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
21
docs/ADS.md
21
docs/ADS.md
@@ -175,10 +175,23 @@ tb.load_frame_baner_v2("//surstrom.com/api/spots/72437?p=1","#tb0",{...},{...});
|
||||
|
||||
### Mode decision (`AdCore._decide`)
|
||||
|
||||
- `popActive = true && vastActive = true` → `none` (поки активна `recoverFromNone`)
|
||||
- `popActive = false` → `pop` (priority)
|
||||
- `popActive = true && vastActive = false` → `vast`
|
||||
- AND `vastPolicy "show-1-skip-1"` skip pattern на половину VAST imps
|
||||
```
|
||||
mode = popActive ? (vastActive || skipPattern ? "none" : "vast") : "pop"
|
||||
```
|
||||
|
||||
| popunder | vast | mode |
|
||||
|----------|------|------|
|
||||
| available (cooldown OFF) | — | **pop** (priority) |
|
||||
| у cooldown (recent fire) | available + не skip-pattern | **vast** |
|
||||
| у cooldown | у cooldown OR skip-pattern | none |
|
||||
|
||||
**Implicit dependency:** VAST показується **тільки після того як popunder уже спрацював** і поставив cooldown. На свіжій сесії (нема `_popRr` у localStorage / cookies) → mode завжди "pop", VAST SDK навіть не завантажується.
|
||||
|
||||
⚠️ Це **gotcha при тестуванні**: якщо щойно фікснули popunder spot — VAST не з'явиться поки popunder не спрацює хоча б раз. Юзер має думати що "VAST зламаний", а він просто заблокований mode logic.
|
||||
|
||||
**Force VAST testing**: `?clearAds=1` URL param очищає `_popRr/_vastRr/_vastPatternIdx/_pw/asgsl/_pjsLog` — фрешний state. Тоді: page load → pop fires → cooldown set → refresh → mode=vast → VAST SDK loaded.
|
||||
|
||||
`vastPolicy "show-1-skip-1"` додатково: idx=0 → SHOW, idx=1 → SKIP (incremented per VAST impression). На свіжій сесії idx=0 → перша VAST показується, друга skip-неться.
|
||||
|
||||
### Policy choice
|
||||
|
||||
|
||||
Reference in New Issue
Block a user