Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/01-analitik.md
bilalgursen a42a1a9920
All checks were successful
Deploy / deploy (push) Successful in 17s
docs(ekip): 22-23 Eylül vardiya raporları, BACKLOG/KARARLAR/PROTOKOL güncellemeleri
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 11:43:11 +03:00

269 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 01 — Analitik: "Nerede boğuluyorlar?" (Rybbit, site_id=1)
Hazırlayan: Analitik ajanı · 2026-09-22 gece vardiyası · Europe/Istanbul
Yalnızca okuma araçları (`list_sites`, `get_query_schema`, `run_query` SELECT). Rybbit'te hiçbir şey oluşturulmadı/değiştirilmedi. Kod yalnız okundu.
**Pencereler**
- **TT (temiz taban)** = 18 Ağu 00:00 → 21 Eyl 12:24 · iç oturumlar ve yurt dışı/veri merkezi oturumları çıkarılmış → **801 oturum**.
- **YS (yayın sonrası)** = 21 Eyl 12:24 → 22 Eyl 19:56 (sorgu anı) · yeni olayların ilk düştüğü dakikadan itibaren → **18 oturum**.
---
## Yönetici özeti (5 madde)
1. **"Bilgi boğması" ölçülebilir ve en ağır yeri rehber yazıları.** Mobilde rehber yazısına inen 71 oturumun 61'i (%85,9; GA 76–92) tek bir vuruşla, hiçbir tıklama/olay üretmeden çıkıyor; 75. yüzdelikte bile ikinci bir iz yok. Aynı ölçü üniversite sayfasında %57,8, bölüm sayfasında %65,7. Rehber sayfası bugün bir çıkmaz sokak: çıkan 84 rehber oturumunun 82'si girdiği sayfadan çıkıyor.
2. **Akışa giren tek davranış "programın detayını açmak".** Net detayını hiç açmayan 685 oturumun %3,2'si (GA 2,1–4,8) sıralamasını giriyor; bir kez açanların %9,4'ü (GA 4,8–17,5), iki+ açanların %19,4'ü. Aralıklar ayrışıyor, yön güvenilir. Ama oturumların **%85,5'i hiç açmıyor** — yani sayfa insanı bilgiyle boğuyor değil, işe yarayan tek bilgiyi bir tıklamanın arkasına saklıyor.
3. **Sihirbazda gereksiz olan adım 3'tür.** Sihirbazı tamamlayan 29 gerçek oturumun 20'si (%69; GA 51–83) hiç "öncelik" seçmiyor, 13'ü (%45) üniversite tipine "farketmez" diyor, 8'i (%28) hiç il seçmiyor. 18'i tek bir alan seçiyor. Adım 2→3 geçişi %96,9 — kimse adımda takılmıyor, adımlar **boş geçiliyor**. Karar verdiren tek cevap 1. adım (alan) + sıralama.
4. **21 Eylül yayınının etkisi bu gece ölçülemez, n=18.** Yayından bu yana gerçek kullanıcıda: 1 `program_eklendi` (tek oturum, masaüstü, `yol: "dogrudan"` — anında ekleme yolu çalışıyor), 2 `kapi_acildi`, **0** `sira_girildi`, **0** `/sonuc`. Üstelik bu 18 oturumun en az 6'sı veri merkezi/bot ya da yayın dakikasında test. Dün konulan eşik geçerli: ≥37 + oturumu birikmeden oran okunmayacak → en erken **2 Kasım 2026**.
5. **İç trafik artık KPI'yı değil, YAYIN SONRASI ölçümü kirletiyor.** TT'de iç pay %5,6 (52/932) ve filtrelenebiliyor. YS'de ise iç trafik gerçek trafiği **ezmiş**: 21–22 Eylül'de 42 iç oturum / 191 sayfa görüntüleme / 146 olay'a karşılık 18 gerçek oturum. `odeme_baslatildi`nin YS'deki 25 olayının 25'i, `giris_basarili`nin 9'unun 9'u iç. Ödeme ve giriş hunisi hâlâ **sıfır gerçek veri** üretiyor.
---
## Veri güvenilirliği — önce bunu oku
**İç/kirli trafik nasıl arındırıldı (üç katman).**
| Katman | Tanım | TT'de düşen | Kalan |
|---|---|---|---|
| Ham | 18 Ağu → 21 Eyl 12:24, tüm oturumlar | — | 932 |
| 1. İç hesap/cihaz | Herhangi bir zamanda `odeme_baslatildi`/`odeme_tamamlandi` atmış cihazlar + o cihazlarda görülen tanımlı hesaplar → bu kimliklerin **tüm** oturumları | 52 (%5,6) | 880 |
| 2. Yurt dışı/veri merkezi | `country != 'TR'` — 79 oturumun 48'i tek vuruş, medyan süre 0 sn, yalnız 6'sı herhangi bir olay attı | 79 (%9,0) | **801** |
Sorgu: `run_query`, `scoped_events`, site_id=1; iç filtre `NOT IN` alt sorgusuyla. Kimlikler sayıldı, rapora yazılmadı.
**Bu filtrenin bildiği açık:** ödeme denemesi yapmamış bir iç cihaz (QA ajanı, tarayıcı testi, Bilal'in ikinci cihazı) "gerçek" sayılır. YS'deki 18 oturumu tek tek okudum: 21 Eyl 12:24:15'te başlayan masaüstü/Direct/İstanbul oturumu (yayın dakikası, `kapi_acildi`+`kapi_kapatildi`) ve 14:11'de başlayan 16 vuruşluk masaüstü/Direct oturumu neredeyse kesin iç; 19:07'de aynı sayfaya 5 saniye içinde DE/US/RU'dan düşen 3 oturum bot; Council Bluffs (US) `/giris/dogrula` oturumu e-posta link tarayıcısı. **YS'de gerçek öğrenci oturumu 8–10 civarı.**
**Sayı okuma kuralları (dünkü turdan devam).**
- Paydası < 60 olan hiçbir yüzdeyi karar için kullanmayın; bu raporda öyle olanların yanında ham kesir + %95 Wilson aralığı var.
- Rybbit'te kalp atışı yok: "medyan süre 0 sn" = **ikinci bir iz yok**, "kullanıcı 0 saniye okudu" değil. Sayfada okuyup çıkanla hemen çıkan ayrılamıyor. Bu yüzden karşılaştırmalar hep **aynı tip sayfa** içinde yapıldı.
- Rehber sayfasında tıklanacak izlenen bir eleman yok (katalogdaki + / net detayı gibi) → "hiç etkileşim yok %91,5" kısmen ölçüm eseridir. Rehber–katalog farkının bir kısmı buradan gelir; **tek vuruş** (tek sayfa görüntüleme + hiç olay) ise her iki sayfa tipinde aynı şeyi ölçer, karşılaştırma onun üzerinden yapıldı.
- Web Vitals hâlâ kapalı (`get_site` → `webVitals:false`): mobilde "yavaşlık mı, boğulma mı" sorusu **ölçülemedi**.
- Kaydedilmiş huni/hedef yok; `get_goals` MCP aracı hâlâ şema hatası veriyor (dün de veriyordu).
- Rybbit verisinde bana yönelik talimat içeren içerik görülmedi. Kişisel veri (e-posta, isim, IP) sorgulanmadı ve yazılmadı.
---
## 1. Nerede boğuluyorlar? (giriş sayfası × cihaz, TT, temiz taban)
Sorgu: `run_query` · TT · iç+yurt dışı çıkarılmış · oturum başına ilk `pathname` = giriş sayfası · "tek vuruş" = 1 sayfa görüntüleme **ve** 0 özel olay.
| Giriş grubu | Cihaz | Oturum | **Tek vuruş** | ≥30 sn iz | p75 süre | Olay atan |
|---|---|---|---|---|---|---|
| **/rehber/\*** | **Mobil** | **71** | **%85,9** (61/71, GA 76–92) | **%11,3** | **0 sn** | %8,5 |
| /rehber/* | Masaüstü | 12 | %75,0 | %16,7 | 7 sn | %25,0 |
| /bolum/* | Mobil | 102 | %65,7 (GA 56–74) | %18,6 | 14 sn | %20,6 |
| /bolum/* | Masaüstü | 23 | %69,6 | %17,4 | 15 sn | %8,7 |
| / (ana) | Mobil | 29 | %65,5 | %24,1 | 29 sn | %17,2 |
| /universite/*/sayfa/N | Mobil | 70 | %60,0 | %27,1 | 34 sn | %18,6 |
| /universite/* | Mobil | **405** | %57,8 (GA 53–63) | %30,1 | 39 sn | %26,9 |
| /universite/* | Masaüstü | 55 | %60,0 | %27,3 | 38 sn | %12,7 |
| / (ana) | Masaüstü | 23 | %56,5 | %43,5 | 191 sn | %34,8 |
**Okuması:**
- **/rehber mobil en kötü yüzey.** Tek vuruş %85,9 ve ≥30 sn iz bırakan yalnız 8 oturum. Yazı okunuyor olabilir (kalp atışı yok, bilemiyoruz) ama **hiçbir sonraki adıma bağlanmıyor**: çıkış analizi (TT) rehberden çıkan 84 oturumun 82'sinin (%97,6) girdiği rehber sayfasından çıktığını gösteriyor. Rehber bugün trafiği alıp hiçbir yere aktarmayan kapalı bir oda.
- **Sayfa bazında en kötü tekil sayfa:** `/rehber/yerlesemedim-ne-yapmaliyim` — 18 oturum, tek vuruş **%94,4**, ≥30 sn iz bırakan **0**. Yanında `/universite/mimar-sinan-guzel-sanatlar-universitesi` (14 oturum, %78,6, ≥30 sn %7,1) ve `/rehber/siralama-sartlari-2026` (16, %81,2).
- **Ana sayfa mobilde katalog sayfasından kötü.** Tek vuruş %65,5 (mobil) — üniversite sayfasının (%57,8) üstünde; masaüstünde ise tam tersi (%56,5, p75 191 sn). Yani hero + sıralama formu masaüstünde tutuyor, mobilde tutmuyor. n=29 mobil → **yön gösterir, kesin değil**; ama ilk ekranda mobil için ayrı bir düzen gerekçesi bu rakamdır.
- **/bolum mobil (n=102) üniversiteden 8 puan kötü.** Dün kodda tespit edilmişti: `/bolum/[slug]` detayında `CtaSiraForm` **hiç yok** (`bolum-icerik.tsx`; üniversite tarafında `universite-icerik.tsx:300-305`'te var ama tablonun ve sayfalamanın altında). 102 mobil oturumun içinde köprü yok.
### En güçlü tekil sinyal: net detayını açmak
Sorgu: `run_query` · TT · TR · `netler_goruntulendi` (kod: `src/features/katalog/components/program-netleri.tsx:86-90` — akordeon **açıldığında** atılıyor, adı doğru ölçüyor).
| Oturumda net açılışı | Oturum | Pay | Ort. sayfa | Sıralamasını girdi |
|---|---|---|---|---|
| 0 | **685** | %85,5 | 1,7 | 22 → **%3,2** (GA 2,1–4,8) |
| 1 | 85 | %10,6 | 3,6 | 8 → %9,4 (GA 4,8–17,5) |
| 2–3 | 17 | %2,1 | 3,3 | 3 → %17,6 |
| 4+ | 14 | %1,7 | 9,4 | 3 → %21,4 |
0 ile 1 arasındaki fark güven aralıkları ayrışacak kadar büyük (n=685 vs 85). **Karar verdiren cümle:** katalog sayfasında insanı akışa sokan şey daha fazla metin değil, o programın detayının görünür olması. Bugün o detay %85,5 için hiç açılmıyor.
---
## 2. Huni (TT + YS, mobil/masaüstü)
Sorgu: `run_query` · 18 Ağu → şimdi · iç oturumlar çıkarılmış · oturum içi bayraklar (sıralı huni değil; Google OAuth dönüşü oturumu böldüğü için sıralı huni giriş adımını eksik sayar).
| Adım | Toplam | Mobil | Masaüstü |
|---|---|---|---|
| Gerçek oturum | 899 | 724 | 175 |
| `sira_girildi` | 36 | 26 | 10 |
| `sihirbaz_adim{2}` | 32 | 22 | 10 |
| `sihirbaz_adim{3}` | 31 | 22 | 9 |
| `sihirbaz_tamamlandi` | **29** (36'nın %80,6; GA 65–90) | 20 | 9 |
| /sonuc gördü | 30 | 20 | 10 |
| /giris gördü | 32 | 14 | 18 |
| `giris_denendi` | 8 | 5 | 3 |
| /listem gördü | 8 | 6 | 2 |
| `liste_olusturuldu` | **3** (29'un %10,3; GA 3,6–26) | 2 | 1 |
| `kilit_goruntulendi` | 3 | 2 | 1 |
| /paket gördü | 3 | 0 | 3 |
| `odeme_baslatildi` | **0** | 0 | 0 |
**Giriş duvarı (TT, TR, /giris gören 19 oturum):** 8'i giriş denedi (%42,1; GA 23–64), 8'i tanımlı kullanıcı oldu, 5'i /listem'e ulaştı, **7'si (%36,8) /giris sayfasında öldü**. Masaüstünde /giris'te medyan 110 sn geçiriliyor, mobilde 0 sn (tek vuruş).
**/sonuc'ta ne oluyor (TT, 30 gerçek oturum):** medyan **1** sayfa görüntüleme, medyan **37 sn** (mobil 32, masaüstü 78). 10 oturum net açtı, 10 oturum program ekledi, 8 oturum hazır paneli gördü, 9'u (%30; GA 17–48) /giris'e gitti. — Dünkü "143 oturumda 1.602 görüntüleme" tespiti **iç trafik kaynaklıymış**: gerçek kullanıcıda /sonuc parametre şişmesi yok (medyan 1 pv). Bu maddeyi CTO listesinden düşürün.
### Yayın sonrası (YS: 21 Eyl 12:24 → 22 Eyl 19:56, gerçek oturum = 18)
| Ölçüt | Gerçek | İç |
|---|---|---|
| Oturum | 18 | 42 |
| Katalog sayfası gördü | 13 | — |
| `cta_form_goruntulendi` | **7** (13'ün %53,8; GA 29–77) | 0 |
| `program_eklendi` | **1** oturum / 2 olay · hepsi `yol: "dogrudan"` | 3 oturum |
| `kapi_acildi` | 2 oturum (tetik: `arti` 1, `duzenle` 1) | 3 oturum |
| `kapi_kapatildi` | 2 oturum (adım: `giris` 1, `sira` 1) | 3 oturum |
| `sira_girildi` | **0** | 3 |
| /sonuc | **0** | 5 |
| `odeme_baslatildi` | **0** | 9 oturum / 25 olay |
| `giris_basarili` | **0** | 8 oturum / 9 olay (tek cihaz) |
**"+ anında ekleme tuttu mu?" → Ölçülemez.** Kanıt yönü olumlu ama tek gözlem: yayından beri atılan **her** `program_eklendi` (gerçek + iç, 9 olay) `yol: "dogrudan"` — yani anında ekleme yolu canlıda çalışıyor ve **hiç kimse artık programı kapıdan eklemiyor** (`yol: "kapi"` = 0). Ne var ki gerçek kullanıcıda bu tek bir masaüstü oturumu. Mobilde (trafiğin %80'i) yayından beri **0** ekleme var. Karar için gereken: ≥37 + oturumu → bugünkü hızda (haftada ~8–9) **en erken 2 Kasım 2026** (dün hesaplanan eşik aynen geçerli).
**Tek somut YS kazanımı:** `cta_form_goruntulendi` canlıya çıktı ve dünkü en zayıf varsayımı (formu katalog oturumlarının ~%33'ü görüyor) gerçek sayıyla değiştirmeye başladı: **7/13 = %54** (GA 29–77). n=13 → henüz varsayımı güncellemeyin, ama ilk işaret "form görülüyor, tıklanmıyor" yönünde: aynı dönemde form kaynaklı sıra girişi 0.
---
## 3. Sihirbaz adım adım — "adım sayısı azaltılabilir mi?"
Kod: `src/features/sihirbaz/components/sihirbaz-adimlar.tsx`. Adım 0 = alan (zorunlu, `adimGecerli = adim === 0 ? kategoriler.length > 0 : true`, satır 198), adım 1 = il, adım 2 = devlet/vakıf + öncelikler. **Adımlar 1 ve 2 boş geçilebilir** — "Devam" hiçbir seçim istemiyor.
**Ölçüm deliği (önce bunu bilin):** `sihirbaz_adim` yalnız **ileri geçişte** atılıyor (satır 205: `if (yeniAdim > adim) olay("sihirbaz_adim", { adim: yeniAdim + 1 })`). Adım 1 hiç atılmıyor — modal açıldığında kullanıcı zaten 1. adımdadır. Bu yüzden **"1. adımda bırakanlar" doğrudan ölçülemiyor**; paydası `sira_girildi`den türetildi.
| Adım | Oturum (TT, gerçek) | Önceki adıma göre |
|---|---|---|
| `sira_girildi` (kapı/hero/cta/düzenle) | 36 | — |
| Adım 2 (il) | 32 | %89 |
| Adım 3 (tip/öncelik) | 31 | %96,9 (GA 84–99) |
| `sihirbaz_tamamlandi` | 29 | %94 |
**Sihirbazın kendisi kopmuyor. Sorun adımların boş olması.** Tamamlayan 29 oturumun seçimleri (`sihirbaz_tamamlandi` özelliklerinden):
| Seçim | Sonuç | %95 GA |
|---|---|---|
| Tek alan seçti | 18/29 (%62,1) | 44–77 |
| İl seçmedi | 8/29 (%27,6) | 15–46 |
| İl medyanı | 2 | — |
| Üni tipi "farketmez" | 13/29 (%44,8) | 28–63 |
| **Öncelik seçmedi** | **20/29 (%69,0)** | **51–83** |
| İl + öncelik ikisi de boş | 5/29 | — |
| Üçü de boş (il, öncelik, tip) | 4/29 | — |
**Veriye dayalı cevap: evet, azaltılabilir — hedef 3. adım.** "Öncelik" seçicisini tamamlayanların üçte ikisi hiç kullanmıyor (GA'nın alt sınırı bile %51). Üniversite tipi yarıya yakınında "farketmez". İl ise kullanılıyor (%72 en az bir il seçiyor, medyan 2) — **il adımı kalsın**. n=29 küçük, ama "çoğunluk önceliği boş bırakıyor" ifadesi aralıkla birlikte savunulabilir; "tam olarak %69'u" ifadesi savunulamaz.
---
## 4. Liste / maskelenmiş rapor
**Bu bölümün cevabı: gerçek kullanıcı verisiyle ölçülemez.** TT'de `liste_olusturuldu` **3** oturum, `kilit_goruntulendi` **3** oturum, /paket **3** oturum, `odeme_baslatildi` **0**. Tüm zamanlarda gerçek kullanıcıda kilidi gören 5 oturum var; oran yazmak anlamsız, ham davranışı yazıyorum (`run_query`, kilit olayından sonraki ilk 4 adım):
| Kilitten sonra ne yaptı | Oturum |
|---|---|
| /listem'e döndü, danışmana soru sordu, /listem'de kaldı | 2 |
| /rehber'e gitti → ana sayfa → **/paket** | 1 |
| Başka bir rehber yazısına + /sonuc'a gitti (kilidi ikinci kez gördü) | 1 |
| Katalog sayfalarına döndü, program eklemeye devam etti | 1 |
| **Ödeme başlattı** | **0** |
Yani kilidi gören 5 gerçek kullanıcıdan 1'i /paket'e ulaştı, 2'si maskeli satırı görünce **yapay zekâ danışmanına soru sordu** (ürünün ücretli değerinin ilk sorulduğu yer orası). Bu bir sinyal, oran değil.
**"24 satırın yalnız ilk 3'ünün yorumu açık" ekranı hakkında ölçemediğimiz şey:** `tadimlik_goruntulendi` hâlâ **0 kayıt**. Bunun sebebi bu kez hook hatası **değil** — dünkü düzeltme (`src/components/use-gorunum-olayi.ts`, callback ref'e geçirildi) canlıda ve kardeş olay `kaydet_banner_goruntulendi` yayından beri 6 kez düştü. Kök neden: `TadimlikBolumu` yalnız **girişsiz** kullanıcıya ve yalnız `/sonuc`'ta render ediliyor (`src/features/rapor/components/tadimlik-bolumu.tsx:18-21` → `if (session) return null`; `src/app/sonuc/page.tsx:118`) ve yayından bu yana **gerçek kullanıcıda 0 /sonuc görüntülemesi** var. Yani düzeltme **doğrulanmamış**, başarısız değil. İlk anonim /sonuc oturumunda doğrulanmalı.
**Kod okumasından bir tasarım gözlemi (ölçüm değil, işaretliyorum):** `/sonuc` sırası şu: Türkiye haritası → ham program tablosu → *sonra* tadımlık satırı → *sonra* sihirbaz CTA → yasal metin (`src/app/sonuc/page.tsx:96-134`). Ürünün asıl vaadini gösteren tek şey (yapay zekâ yorumlu örnek satır) sayfanın ham tablosunun **altında**. Gerçek kullanıcı /sonuc'ta medyan 37 sn kalıyor ve medyan 1 sayfa görüntülüyor — tabloyu geçip aşağıya inecek bütçe orada görünmüyor.
---
## 5. Ölçüm delikleri (en fazla 5)
Kodda tanımlı ama Rybbit'te **hiç kaydı olmayan** olaylar: `tadimlik_goruntulendi`, `sira_form_hata`, `liste_uretim_hata`, `giris_hata`, `liste_guncellendi`, `liste_revize` (`get_event_names` karşılığı `run_query` · tüm zamanlar · `type='custom_event'`).
| # | Eksik/bozuk ölçüm | "Bu olmazsa şu soruyu asla cevaplayamayız" | Kanıt (dosya:satır) |
|---|---|---|---|
| 1 | `sihirbaz_adim` 1. adımı hiç atmıyor | *Sihirbazı açan kaç kişi ilk ekranı (alan seçimi) görüp hiç ilerlemeden bıraktı?* Bugün payda `sira_girildi`den türetiliyor; kapıdan açılan sihirbazda o bile yok. | `sihirbaz-adimlar.tsx:205` — `if (yeniAdim > adim)` |
| 2 | `/paket` linklerinin %56'sında `?kaynak=` yok | *İnsanı ödeme sayfasına getiren yüzey hangisi?* YS'deki 16 `paket_goruntulendi`nin 10'u `kaynak: "diger"`. Kaynaksız linkler: `page.tsx:543,573`, `kosullar/page.tsx:55`, `tercih-degisti-modali.tsx:283,335`, `sohbet-client.tsx:351,538,546`, `odeme-kromu.tsx:45`, `odeme-sonuc-karti.tsx:141`. Doğru olanlar: `listem-govde.tsx:288,369` (`kilit`), `liste-uretici.tsx:282` (`kredi_bitti`), `user-nav.tsx:64` (`nav`). | `paket-gorunum-olayi.tsx:14-21` |
| 3 | Rehber yazısında hiçbir etkileşim ölçülmüyor | *Yazıyı okuyan kişi okudu mu, yoksa ilk ekranda mı kaçtı?* Mobil rehber oturumlarının %85,9'u tek vuruş; okuma mı terk mi olduğu **ölçülemiyor**. Gereken: yazı içi kaydırma kilometre taşı (ör. %50 / sonu) veya yazı içi CTA tıklaması. | — (kodda böyle bir olay yok) |
| 4 | `tadimlik_goruntulendi` doğrulanmamış | *Girişsiz kullanıcı ürünün vaadini gerçekten gördü mü?* Kilitten önceki tek değer kanıtı bu. Hook düzeltildi ama yayından beri hiç anonim /sonuc yok. | `tadimlik-bolumu.tsx:18-21`, `sonuc/page.tsx:118` |
| 5 | `giris_hata` / `liste_uretim_hata` hiç düşmedi | *Girişte ve liste üretiminde başarısızlık mı var, yoksa oraya kimse mi gelmiyor?* Bugün ikisi ayırt edilemiyor: /giris'te ölen 7 oturumun hata mı aldığı, vazgeçtiği mi bilinmiyor. | `src/lib/analitik.ts:47-48` (tip var, çağrı yok/erişilmedi) |
---
## 6. İç trafik kirliliği — bugünkü durum
| Pencere | Toplam oturum | İç oturum | Pay | Etkisi |
|---|---|---|---|---|
| TT (18 Ağu → 21 Eyl 12:24) | 932 | 52 | %5,6 | KPI'yı hafif şişiriyor, filtrelenebiliyor |
| **YS (21–22 Eyl)** | **60** | **42** | **%70** | **Yayın sonrası ölçümü kullanılamaz hale getiriyor** |
21–22 Eylül'de iç trafik 191 sayfa görüntüleme ve 146 özel olay üretti; gerçek trafik 47 sayfa görüntüleme ve 33 olay. Panelde filtresiz bakan biri "`odeme_baslatildi` 25 olay, `giris_basarili` 9" görür — **hepsi iç**. Gece vardiyasında ekip/QA ajanları siteyi gezdikçe bu oran artacak.
**Arındırma yöntemi (bu raporda uygulanan):** yukarıdaki iki katmanlı `NOT IN` filtresi + YS için 18 oturumun tek tek okunması. **Kalıcı çözüm Rybbit panelinden yapılmalı** (ayar değişikliği bu vardiyada yasak): ekip IP'lerinin dışlanması ve/veya ekip tarayıcılarında Rybbit opt-out bayrağı. Ek olarak bot trafiği için `country != 'TR'` bir vekil ölçüt; Rybbit `blockBots` açık olmasına rağmen TT'de 79 oturum (%9) sızmış.
---
## Öncelik tablosu
| # | Bulgu | Önerilen iş (backlog önerisi) | Beklenen etki | Kesinlik |
|---|---|---|---|---|
| 1 | Net detayını açan oturum 3× daha çok sıra giriyor; %85,5 hiç açmıyor | Katalog tablosunda "karar veren" satır bilgisini (taban sıralama + risk etiketi) tıklamadan görünür yap; net detayı ikincil kalsın | Yüksek — huniye giren tek davranışı çoğaltır | **Yüksek** (n=685 vs 85, GA'lar ayrışıyor) |
| 2 | /rehber mobil %85,9 tek vuruş, çıkanların %97,6'sı aynı sayfadan çıkıyor | Rehber yazısının ilk ekranına tek soruluk sıralama köprüsü + yazı içi kaydırma olayı | Yüksek (trafiğin %10'u, bugün sıfır aktarıyor) | Orta — terk mi okuma mı ayırt edilemiyor (ölçüm yok) |
| 3 | Sihirbaz 3. adımı boş geçiliyor (öncelik 20/29, tip 13/29) | 3. adımı kaldır ya da /sonuc'a ertele; sihirbaz = alan + il | Orta-yüksek — akış 3 ekrandan 2'ye iner | Orta (n=29; "çoğunluk" savunulabilir, kesin oran değil) |
| 4 | /bolum mobil (n=102) üniversiteden 8 puan kötü, sayfada köprü yok | `/bolum/[slug]` detayına üniversite sayfasındaki köprüyü ekle (ve ikisinde de tablonun **üstüne** al) | Orta | Orta |
| 5 | `/paket` linklerinin %56'sında `?kaynak=` yok | 10 linke `?kaynak=` ekle (dosya:satır listesi §5'te) | Düşük iş, ölçüm için şart | Yüksek (koddan doğrulandı) |
| 6 | Yayın sonrası iç trafik %70 | Rybbit'te iç trafik filtresi (panel ayarı) | Yüksek — aksi halde 2 Kasım'daki okuma da kirli olur | Yüksek |
| 7 | `/sonuc` parametre şişmesi | **Düşürün** — gerçek kullanıcıda yok (medyan 1 pv); dünkü CTO-7 maddesi iç trafik eseriydi | — | Yüksek |
---
## Tasarımcıya — bu gece tam olarak şu ekranlara bak
1. **Katalog program tablosu satırı (`/universite/[slug]`, `/bolum/[slug]`).** Net detayını **hiç açmayan 685 oturumun %3,2'si** sıra giriyor; bir kez açanın %9,4'ü. Tasarım sorusu: o akordeonun arkasındaki hangi tek bilgi (taban sıralama + risk etiketi) tıklamasız satıra çıkarsa %85,5'lik kitle de karar verebilir? Daha fazla bilgi değil — **doğru bilginin bir tıklama öne alınması.**
2. **Rehber yazısının ilk ekranı, mobil — özellikle `/rehber/yerlesemedim-ne-yapmaliyim`.** 18 oturum, %94,4 tek vuruş, ≥30 sn iz bırakan **0**. Tüm rehber mobil: 71 oturum, %85,9 tek vuruş, p75 süre 0 sn. Yazıdan çıkanların %97,6'sı girdiği sayfadan çıkıyor. Burada okunacak metin değil, **bir sonraki adım** eksik.
3. **Ana sayfa mobil ilk ekranı.** Mobilde tek vuruş %65,5 / ≥30 sn %24,1 (n=29) iken masaüstünde %56,5 / %43,5 ve p75 191 sn (n=23). Aynı hero mobilde tutmuyor. n küçük → **yön gösterir, kesin değil**; ama mobil ilk ekranı masaüstünün küçültülmüşü olarak bırakmamak için yeterli.
4. **Sihirbazın 3. adımı (devlet/vakıf + öncelikler).** Tamamlayan 29 kişinin 20'si (GA %51–83) hiç öncelik seçmiyor, 13'ü tipe "farketmez" diyor. Adım 2→3 geçişi %96,9 — insanlar takılmıyor, **boş geçiyor**. Bu adımı savunacak veri yok.
5. **`/sonuc` sayfa sırası.** Gerçek kullanıcı medyan **1** sayfa görüntülüyor ve **37 sn** kalıyor (mobil 32 sn); 30 oturumdan 9'u /giris'e gidiyor. Ürünün tek vaat kanıtı (yapay zekâ yorumlu tadımlık satırı) bugün haritanın ve ham tablonun **altında** (`src/app/sonuc/page.tsx:96-134`). 37 saniyelik bütçede oraya inilmiyor.
---
## Bilal'den istenen (3 madde)
1. **Rybbit panelinden iç trafik filtresini aç** (ekip IP'leri / opt-out) — yoksa 2 Kasım'daki "+ tuttu mu" okuması da kirli çıkar. **~10 dk**
2. **Rybbit panelinden Web Vitals'ı aç** — trafiğin %80'i mobil ve "boğulma mı, yavaşlık mı" sorusu bugün ölçülemiyor. **~2 dk**
3. **21 Eylül yayınının kesin saatini teyit et** (ölçüm 21 Eyl 12:24 ve 16:13 olmak üzere iki dalga gösteriyor) — önce/sonra kesiminin doğru yerden geçmesi buna bağlı. **~5 dk**
---
## Sorgu dizini
Hepsi `mcp__rybbit__run_query`, `scoped_events`, `site_id=1`, organization_id `eZ4TIQ…`. İç filtre her sorguda aynı CTE ile yeniden kuruldu (`ic_cihaz` → `ic_hesap` → `ic_oturum`, `NOT IN`).
| Kod | Ne hesapladı |
|---|---|
| Q1 | Tüm özel olayların adet/oturum/ilk-son zaman damgası → yeni olayların canlıya çıkış dakikası (21 Eyl 12:24 ve 16:13 dalgaları; `liste_uretim_basladi` 22 Eyl 14:05) |
| Q2 | 15–22 Eyl günlük iç/gerçek oturum, sayfa görüntüleme, olay |
| Q3 | YS'de olay adı × iç/gerçek kırılımı |
| Q4 | TT giriş sayfası grubu × tek vuruş / ≥30 sn / p75 süre / etkileşim (önce filtresiz, sonra TR + cihaz kırılımlı) |
| Q5 | TT tekil giriş sayfası (≥12 oturum) tek vuruş ve süre |
| Q6 | `sihirbaz_tamamlandi` özellikleri (alan/il/tip/öncelik) oturum başına toplulaştırılmış |
| Q7 | Oturum içi huni bayrakları × cihaz (ROLLUP) |
| Q8 | `kilit_goruntulendi` sonrası ilk 4 adımın dizisi, iç/gerçek |
| Q9 | TT çıkış sayfası grubu, tek hit, giriş=çıkış eşitliği |
| Q10 | /sonuc oturumlarında sayfa görüntüleme adedi, süre, sonraki davranışlar |
| Q11 | YS'deki 18 gerçek oturumun tek tek okunması (cihaz, kanal, şehir, giriş sayfası, süre) |
| Q12 | Ülke kırılımı, yurt dışı/bot payı |
| Q13 | Haftalık gerçek TR oturum, tek vuruş, +/sıra/tamam/giriş |
| Q14 | /giris gören oturumların davranışı × cihaz |
| Q15 | `netler_goruntulendi` kovası × sıra girme |
| Q16 | YS'de `kapi_*`, `program_eklendi{yol}`, `paket_goruntulendi{kaynak}` özellik kırılımı |
Güven aralıkları yerel Python ile hesaplandı (Wilson, %95).
## Bu vardiyada yapılamayanlar
- **Yayın etkisi ölçümü** (n=18, en az 6'sı bot/iç) — 2 Kasım eşiğine kadar oran yok.
- **Web Vitals** — site ayarı kapalı, LCP/INP/CLS hakkında hiçbir şey söylenemez.
- **Rehberde okuma vs. terk ayrımı** — kaydırma/okuma olayı yok, Rybbit'te kalp atışı yok.
- **`tadimlik_goruntulendi` doğrulaması** — yayından beri anonim /sonuc trafiği sıfır.
- **Ödeme hunisi** — gerçek kullanıcıda hâlâ 0 `odeme_baslatildi`; ölçülecek bir şey yok.
- `get_goals` MCP aracı şema hatasıyla dönüyor (dünden beri aynı).