# 06 — Rıza kapısı (çerez bandı, analitik ve reklam kodu) > Ölçüt: `E:\localhost\docs\` bilgi bankası (`yasal/kvkk-web-sitesi-gereksinimleri.md`, `analytics/ga4-tuketici-onayi.md`, `adsense/riza-cmp.md`). Framework bu kuralı uygular; proje yalnız **veri** verir (`integrations` ayarları), açma/kapama anahtarı yoktur. ## 1. Karar kuralı Karar **tek yerden** verilir: `ConsentProvider::decision(array $integrations): array{open,analytics,ads}`. > **Kapı AÇIK = (analitik ayarı dolu VEYA reklam ayarı dolu) VE site noindex DEĞİL.** | Site | Analitik / reklam ayarı | Kapı | Bant | Analitik ve reklam kodu | Rıza kaydı | Yasal bölümler (ölçüm / reklam / bant) | "Çerez Tercihleri" bağlantısı | |---|---|---|---|---|---|---|---| | indekslenebilir | dolu | **açık** | var | yüklenir (reklam ve serbest betikler rızaya kadar bekler) | yazılır | çıkar | var | | indekslenebilir | boş | kapalı | yok | yok | reddedilir | çıkmaz | yok | | noindex | dolu | **kapalı** | yok | HİÇ yüklenmez (head/body serbest betikler dahil) | reddedilir | çıkmaz | yok | | noindex | boş | kapalı | yok | yok | reddedilir | çıkmaz | yok | - **Noindex** bilgisinin tek kaynağı `CrawlerProvider::isSiteNoindex()` (= `SeoResolver::isSiteNoindex()`): routemap `view_mapping[site]['robots']['noindex'] = true` ya da `seo` grubundaki `meta-robots` ayarı. Robots.txt `Disallow: /`, sitemap 404 kararıyla **aynı** cevaptır; ikinci bir bayrak yoktur. Karar okunamazsa noindex sayılır (kapalı). - **Yerel (`.test`) davranışı değişmez:** yerelde ayrı bir ortam kuralı yoktur; noindex bayrağı yoksa ve ayarlar doluysa bant yerelde de çıkar. - Routemap'te elle `cookie => false` yazılmaz; anahtar kaldırıldı, framework onu okumaz. Noindex siteye yazmak yeterlidir, hiçbir şey eklemek gerekmez. ## 2. Tüketiciler (hepsi aynı fonksiyondan alır) | Tüketici | Kapı kapalıyken | |---|---| | `FrontendProvider::render` | `consent_head` boş; `google_analytics_code`, `google_adsense_code`, `head_scripts`, `body_scripts` boş; `consent_open = false` (footer "Çerez Tercihleri" bağlantısı basılmaz) | | `LegalProvider::render` | bant şablonu basılmaz | | `LegalService::capabilities` | `analytics`, `ads`, `consent_banner` = false; yasal şablonlarda `{{#analytics}}`, `{{#ads}}`, `{{#consent_banner}}` bölümleri ve çerez envanteri satırları çıkmaz | | `ConsentService::record` | `POST /fw-consent` reddedilir (`consent gate is closed`), tabloya satır yazılmaz | | `FrontendBaseController::loadAdSettings` | `adsense_status = 0`; reklam yuvası görünümü hiçbir şey basmaz | `hasAnalytics()` / `hasAds()` yalnız ayarın dolu olup olmadığını söyleyen **özel** yardımcılardır; tüketici onları çağırmaz. Kapı testi: `fw_frw19_riza_kapisi.php` (`G-kapi-01…14`). ## 3. Proje ne yapar? Hiçbir şey. Analitik/reklam ayarını `integrations` grubuna yazar; noindex sitedeyse kod ve bant zaten çıkmaz. Siteyi indekslenebilir yaptığınız anda (routemap'ten `noindex` kalkınca) ayarlar doluysa bant ve kod kendiliğinden gelir.