# Widget Görünmüyor

Widget teşhisi
Kaynak: https://selwise.com/docs/troubleshooting/widget-not-showing

Kampanya ya da widget sitenizde görünmüyorsa aşağıdaki sırayı izleyin. Sıra bilinçlidir: önce **script çalışıyor mu**, sonra **sunucu bu kampanyayı size gönderiyor mu**, en son **tarayıcı onu çizmeye karar veriyor mu**. Her adım bir öncekini doğrulamadan anlamsızdır.

Her kuralın ayrıntısı ve konsol mesajlarının anlamı: [Gösterim Kuralları](/docs/troubleshooting/delivery-rules).

## 1. Script çalışıyor mu

Sitenizde herhangi bir sayfada tarayıcı konsolunu açın:

```js
typeof window.Selwise?.getVisitorId;
```

`"function"` dönmüyorsa `client.js` yüklenmemiştir ya da başlayamamıştır. (`typeof window.Selwise` tek başına yanıltır: kurulum kodunun kuyruk taslağı da bir nesnedir.)

| Bakın | Anlamı |
|---|---|
| Ağ (Network) sekmesinde `client.js` isteği yok | Etiket sayfada yok. Kaynak kodda `client.js` etiketini arayın; yalnızca bazı sayfalarda olabilir. |
| `client.js` isteği engellenmiş (kırmızı) | Reklam engelleyici, çerez/gizlilik eklentisi ya da sitenizin `Content-Security-Policy` başlığı. Konsolda CSP hatası görürsünüz. |
| Konsolda "No site key — widget not started" | `<script>` etiketinde `data-site-key` yok ya da boş. |
| `window.Selwise` var ama `getVisitorId` yok (nesnede yalnızca `track`, `q` gibi kuyruk metotları var) | Yalnızca kuyruk taslağı yüklü; `client.js` hiç çalışmamış. |

## 2. Sunucu yapılandırmayı veriyor mu

Ağ sekmesinde `public/sites/KANAL_ANAHTARI/config` isteğine bakın:

| Yanıt | Anlamı | Ne yapmalı |
|---|---|---|
| `200` | Kanal tanındı | 3. adıma geçin |
| `404` "Site not found" | Kanal anahtarı yanlış ya da kanal silinmiş | `data-site-key` değerini **Channel Overview** ekranındaki **Channel Key** ile karşılaştırın |
| `403` "Site not verified" | Domain doğrulanmamış | [Domain Doğrulama](/docs/channels/domain-verification); doğrulama sayfanızın HTML'inde script'i arar |
| `403` (origin mesajı) | İsteği yapan sayfa kanalın alan adıyla (ya da takma adlarıyla) uyuşmuyor | Staging ya da farklı alan adı kullanıyorsanız onu kanalın alan adı takma adı olarak ekleyin; `www.` fark etmez |
| `403` "Delivery is switched off for this account" / "This account is closed" | Hesabın teslimatı kapalı | Hesap yöneticinize yazın — bkz. [Abonelik](/docs/settings/subscription) |
| `429` | Çok istek | Kısa bekleyip yenileyin |
| Hiç istek yok | Script 1. adımda takılmış | 1. adıma dönün |

Yanıt `200` ise `Response` sekmesinde `campaigns` listesini açın. **Kampanyanızın adı ya da kimliği listede mi?**

- **Listede yok** → 3. adım (sunucu tarafı).
- **Listede var** → 4. adım (tarayıcı tarafı).

## 3. Kampanya listede yok: sunucu göndermiyor

| Sebep | Kontrol |
|---|---|
| **Yanlış kanal** | Kampanya başka bir kanalda oluşturulmuş. Panelde üstteki seçicinin, siteyi kuran kanala ayarlı olduğundan emin olun. |
| **Durum** | Listede yalnızca **Active** (ve tarihi gelmiş **Scheduled**) kampanyalar vardır. **Draft**, **Paused**, **Pending review**, **Expired** ve **Archived** gönderilmez. Kampanya listesinde durum sütununa bakın — bkz. [Durumlar](/docs/campaigns/status). |
| **Tarih penceresi** | Başlangıç tarihi ileride ya da bitiş tarihi geçmişse gönderilmez. Saatler **Türkiye saatidir** (Europe/Istanbul); bilgisayarınızın saatine göre değil. Bkz. [Zamanlama](/docs/campaigns/scheduling). |
| **Modül yok** | Hesabınız **Onsite Experience** modülünü içermiyorsa `campaigns` her zaman boştur. **Settings → Subscription** ekranında modülü kontrol edin. |
| **Yalnızca senaryo kampanyası** | Bir senaryonun içinde oluşturulmuş kampanya, `config` ile herkese değil yalnızca senaryonun gelen kutusuyla ilgili kişiye teslim edilir. |
| **Hedef çubuğu, kanal eşiği tanımsız** | "Free shipping" ön ayarlı bir hedef çubuğu, kanalın **Free shipping threshold** değeri boşsa gönderilmez. **Channel Overview** → ayarlarda değeri girin. |
| **Önbellek** | `config` kanal başına en çok **5 dakika** önbelleğe alınır; kampanyayı kaydettiğinizde ya da durumunu değiştirdiğinizde temizlenir. Tarih penceresi bu süreden önce değişecekse önbellek ona göre kısalır. Hâlâ eski görüyorsanız sayfayı **sert yenileyin**. |
| **Eski `client.js` önbellekte** | Yeni özellikli bir kampanya (sepet ya da ürün yer tutucuları, ürün koşulları) eski bir script sürümüne **gönderilmez**: yanlış çizilmesin diye sunucu saklar. Tarayıcı ve CDN önbelleğini temizleyin. |

## 4. Kampanya listede var, ama görünmüyor

Debug modunu açın (konsol mesajlarını görmek için) ve sayfayı yenileyin:

```js
localStorage.setItem('selwise_debug', 'true');
location.reload();
```

Konsolda `[Selwise]` önekli satırlar neyin neden atlandığını yazar. Sırayla:

1. **Test modu** — Kampanyada **Test mode** açıksa ve tarayıcınız test modunda değilse "Skipping test mode campaign" uyarısı çıkar (bu uyarı debug olmadan da görünür). Sitenizi `?selwise_test_mode=1` ile açın. Test modunu açmak diğer kampanyaları **gizlemez**; bkz. [Test Modu](/docs/campaigns/testing).
2. **Sayfa kuralları** — `Skipping campaign due to targeting rules`: URL, sayfa türü, cihaz, ülke ya da davranış kuralı bu ziyaretçiyi/sayfayı dışlıyor. Dikkat: **URL kuralları tam adresin içinde alt dize olarak aranır** (sorgu dahil), büyük/küçük harf duyarsızdır; **Show on all pages** kapalıyken hiç dahil edilen adres yoksa kampanya **hiçbir yerde** çıkmaz. Ayrıntı: [Gösterim Kuralları](/docs/troubleshooting/delivery-rules#sayfa-ve-ziyaretçi-kuralları).
3. **Kitle (segment)** — `due to segment targeting`: ziyaretçi dahil edilen segmentte değil (ya da hariç tutulan segmentte). **Include** modunda segmentin üyeliği yanıtlanamıyorsa kampanya gösterilmez (kapanma yönünde başarısız olur). Kimlik kurulu değilse segment boş kalabilir — bkz. [Segment Hedefleme](/docs/segments/targeting).
4. **Deney** — `excluded by experiment`: ziyaretçi bir A/B testinde kampanyanın gösterilmediği (ya da tutma/holdout) koldadır.
5. **Sıklık sınırı** — `Frequency cap … holds`: oturum, gün, hafta ya da toplam sınırı doldu. Tarayıcıda sıfırlamak için `localStorage.removeItem('selwise_frequency_caps')`.
6. **İçerik boş / canlı içerik gizliyor** — `Skipping empty campaign` (içerik alanları boş) ya da `its live content hides it here` (bir içerik durumu "göstermeyin" diyor ya da `{cart.total}` gibi bir yer tutucu henüz ölçülemeyen bir değere bağlı: sepet bilinmiyorsa tutar yazılmaz).
7. **Öncelik çakışması** — Aynı konuma (aynı CSS seçicisi ya da aynı sabit konum, örneğin "top") birden fazla kampanya düşüyorsa varsayılan olarak **en yüksek öncelikli** olan çıkar, diğerleri sessizce elenir. Öncelik ya da çakışma davranışını (**all** / **random**) değiştirin.
8. **Yerleşim seçicisi bulunamıyor** — Seçiciyle yerleşen kampanya, öğe sayfada belirene kadar bekler (öğe hiç gelmezse hiç çizilmez). Konsolda `document.querySelector('SECICI')` deneyin; `null` ise seçici yanlıştır ya da o sayfada öğe yoktur — bkz. [Yerleşim](/docs/widgets/placement).
9. **Tetikleyici bekliyor** — Modal gibi bir yüzey **hazırlanmış ama henüz tetiklenmemiş** olabilir: çıkış niyeti yalnızca masaüstünde ve fare sayfanın üstünden çıkınca; gecikme, kaydırma yüzdesi ya da özel olay. Hazırlanmış bir yüzey **görüntülenmiş sayılmaz** (gösterim ve sıklık sayacı tetiklenince yazılır). Özel olay için olayı `document` üzerinden gönderin.
10. **Cihaz** — Sekme mesajı (**Tab Talk**) yalnızca masaüstünde çalışır; telefonda hiç hazırlanmaz.

## 5. Çiziliyor ama görünmüyor

| Belirti | Neden |
|---|---|
| DOM'da var (`document.querySelector('[data-selwise-entity-id]')`), ekranda yok | Sitenizin CSS'i örtüyor (`z-index`, `overflow: hidden`, `display: none`) ya da başka bir öğenin arkasında. Öğeyi Elements sekmesinde bulun. |
| Yalnızca ilk sayfada çıkıyor | Tek sayfa uygulaması: Selwise rota değişiminde yüzeyleri yeniden değerlendirir; sayfa kuralı yeni rotayı dışlıyor olabilir. |
| Yalnızca kendinizde çıkmıyor | Test modu, sıklık sınırı (yerel depolamada) ya da bir deney kolu bu tarayıcıya özgü olabilir. Gizli pencerede deneyin. |

## Tablo: belirti → sayfa

| Belirti | Sayfa |
|---|---|
| Hiç veri yok, ciro yok | [Takip Sorunları](/docs/troubleshooting/tracking-issues) |
| Arama açılmıyor | [Arama Çalışmıyor](/docs/troubleshooting/search-not-working) |
| Öneri şeridi boş | [Öneriler Görünmüyor](/docs/troubleshooting/recommendations-not-showing) |
| Menüde ekran yok | [Giriş ve Erişim Sorunları](/docs/troubleshooting/access-issues) |

İlgili: [Sık Sorunlar](/docs/troubleshooting/common-issues).
