diff --git a/docs/ADS.md b/docs/ADS.md
index cfc9d80..cb71b13 100644
--- a/docs/ADS.md
+++ b/docs/ADS.md
@@ -192,6 +192,37 @@ tb.load_frame_baner_v2("//surstrom.com/api/spots/72437?p=1","#tb0",{...},{...});
**Як перевірити:** після popunder fire відкрий DevTools → `localStorage.getItem('asgsl')` → шукай `global_rr:` або `n:`. Якщо нема → не налаштовано.
+### ⚠️ ASG no-fill diagnostic — VAST returns empty ``
+
+**Bug 2026-05-02 (8148, VAST never visible):** Mode перемикався у "vast", VAST SDK loaded, але реклама не з'являлась візуально.
+
+Перевірка endpoint напряму:
+```bash
+curl 'https://a5.g--o.info/api/users/?v2=1&fill=0&url='
+```
+
+Якщо response:
+```xml
+
+
+
+```
+— це **VAST no-fill**. ASG не має inventory для цього spot.
+
+**Порівняй з popunder endpoint** який повертає повний JSON-like config з `creative_id`, `behavior`, тощо:
+```js
+window.__NA.renderSpot({ spot_id: ..., creative_id: 83660, config: {...} });
+```
+
+**Можливі причини no-fill (по пріоритету):**
+1. Spot **type ≠ "In-video VAST"** — створено як Banner/Popunder/etc → VAST endpoint не має чого serve
+2. Spot **Status pending review** — створено, чекає approval
+3. **Creative не attached** — VAST потребує специфічний ад чи bidder pool
+4. **Bidder / network не linked** — VAST джерело мережі (ExoClick VAST / TS / etc) не призначено
+5. Budget / cap exhausted
+
+**Як остаточно verify:** через playwright headless + manual inject `_popRr` форсити VAST mode → click play → дивитися чи з'являється `.asg-container`. Якщо ні + curl показує empty VAST → no-fill.
+
### Mode decision (`AdCore._decide`)
```