Kampanya Teslim Kuralları
Sunucu ve script kararlarının sırası; hangi kapı neden kapatır
Bir kampanyanın ziyaretçiye ulaşması iki aşamalı bir süzgeçten geçer: önce sunucu, sonra tarayıcıdaki script karar verir. Bu sayfa her kapıyı sırasıyla ve karar verdiği yerle listeler; "neden görünmüyor" sorusunun cevabı bunlardan biridir. Adım adım teşhis için Widget Görünmüyor sayfasını kullanın.
Sunucu: config yanıtına girer mi
GET /public/sites/KANAL_ANAHTARI/config yanıtındaki campaigns listesi bu süzgeçten çıkan kampanyalardır. Bir kampanya şu hepsini sağlıyorsa listededir:
- Kanal doğrulanmış ve istek kanalın alan adından (ya da takma adından) geliyor; hesabın teslimatı açık.
- Hesapta Onsite Experience modülü var (yoksa liste boş).
- Kampanya silinmemiş ve herkese açık teslim modunda (bir senaryonun kampanyası değil).
- Durumu Active ya da tarihi gelmiş Scheduled; başlangıç anı gelmiş, bitiş anı geçmemiş. Pencere saatleri
Europe/Istanbulsaatidir. - Hedef çubuğuysa ve kanal eşiğine bağlıysa: eşik tanımlı.
- İstemci eski bir sürümse: kampanyanın ihtiyaç duyduğu protokol, istemcinin duyurduğu (
?p=) protokolü aşmıyor. Sepet yer tutucuları 2, ürün yer tutucuları 3, ürün koşulları 4. protokoldür; eski birclient.jsbu kampanyaları almaz — sayfayı sert yenileyin ya da CDN önbelleğinin dolmasını bekleyin.
Yanıt kanal başına en çok 5 dakika önbelleğe alınır. Kampanya kaydedildiğinde ya da durumu değiştiğinde önbellek temizlenir; tarih penceresi yaklaşıyorsa önbellek ömrü o ana göre kısalır (başlangıç tarihi geldiğinde kimse bir şey yazmaz, bu yüzden önbellek orada biter).
Tarayıcı: çizilir mi
Sırasıyla (ilki başarısızsa kampanya elenir ve sonrakilere bakılmaz):
| # | Kapı | Ne soruyor |
|---|---|---|
| 1 | Test modu | Kampanya testteyse tarayıcı test modunda mı? |
| 2 | Sayfa ve ziyaretçi kuralları | URL, sayfa türü, cihaz, ülke, davranış |
| 3 | Deney | Ziyaretçinin kolu kampanyayı gösteriyor mu? |
| 4 | Kitle (segment) | Ziyaretçi uygun segmentte mi? |
| 5 | İçerik | Çizilecek bir içerik var mı? |
| 6 | Sıklık sınırı | Hakkı doldu mu? |
| 7 | Çakışma | Aynı konumda daha öncelikli bir kampanya var mı? |
| 8 | Yerleşim ve tetikleyici | Hedef öğe var mı, tetikleyici ateşlendi mi? |
Kampanyalar önce 1–6'dan geçer, sonra çakışma çözümüne girer: test modundaki taslak ya da sıklık sınırına takılmış bir kampanya, aynı konumdaki canlı kampanyanın yerini tutmaz.
Sayfa ve ziyaretçi kuralları
Aşağıdakilerin hepsi sağlanmalıdır; boş bırakılan kural herkese uyar.
- URL kuralları — tam adres (
location.href, sorgu dahil) üzerinde, büyük/küçük harf duyarsız aranır. Desen düz metinse adresin içinde alt dize olarak geçmesi yeter (/kadinhem/tr/kadin/ayakkabihem/kadin-giyimi yakalar).*joker karakteri tüm adresle eşleştirir (https://magaza.com/urun/*).regex:ile başlayan desen düzenli ifadedir (büyük/küçük harf duyarlı). - Dışlanan URL'ler her zaman kazanır.
- Show on all pages kapalıyken dahil edilen adres yoksa kampanya hiçbir yerde çıkmaz; dahil edilenlerden en az biri eşleşmelidir.
- Sayfa türü —
home,product,category,search,checkout,cart,account,other. Tür, URL'den ve sayfanın DOM'undan (platformun bilinen işaretleri) çözülür; çözülemediyse kural geçer (kampanya hiç çıkmasın diye kapalı değil açık yönde başarısız olur). - Cihaz —
desktop,tablet,mobile. - Ülke — ziyaretçinin IP'sinden. Ülke bilinmiyorsa kural geçer.
- Davranış — sepet tutarı, oturumdaki sayfa görüntüleme, giriş yapmış mı, dönen ziyaretçi mi, UTM kaynağı gibi sinyallerle kurulan koşullar (all ya da any). Sinyal ölçülemiyorsa varsayılan değer (0,
false,direct) kullanılır; ürün sinyalleri (productPrice,productStock…) ürün sayfası dışında hiç yoktur ve ona bağlı kural her operatördefalsedöner.
Kitle
Segment hedeflemesi dahil et ya da hariç tut modundadır. Üyelik sunucudan sorulur, yanıt 5 dakika önbelleklenir ve önbellek kimliğe bağlıdır (giriş yapınca yeniden sorulur). Üyelik sorulamıyorsa kampanya gösterilmez. Bkz. Segment Hedefleme.
Sıklık sınırı
Sınırlar tarayıcının localStorage anahtarı selwise_frequency_caps içinde sayılır: oturum başına, gün, hafta, toplam ve iki gösterim arası en az süre. Oturum bir izleme oturumudur (30 dakika hareketsizlik), sekme değil. Gösterim, yüzey gerçekten ekrandayken sayılır; hazırlanmış ama tetiklenmemiş bir modal hakkı harcamaz. Sıfırlamak için anahtarı silin.
Çakışma
Aynı konum için yarışan kampanyalar çözülür. Konum, CSS seçicisi (varsa) ya da sabit konumdur (top, bottom…). Varsayılan davranış en yüksek öncelik kazanır; kampanyalardan biri all seçtiyse hepsi gösterilir; hepsi random ise oturuma sabitlenmiş rastgele biri. Kaybeden kampanya hiçbir iz bırakmadan elenir.
Yerleşim ve tetikleyici
- Seçiciyle yerleşen kampanya öğe sayfada belirene kadar izlenir; hiç belirmezse çizilmez.
- Çıkış niyeti yalnızca masaüstünde imleç pencerenin üstünden çıkınca (telefonda belirli bir yukarı kaydırma) tetiklenir; özel olay
documentüzerinde dinlenir. - Gösterim ve sıklık sayacı, yüzey gerçekten ekrana geldiğinde yazılır.
Sayfa kapsamı: tek sayfa uygulamaları
Rota değişince tarayıcı kampanyaları yeni sayfa için baştan değerlendirir (kurallar ve sıklık sınırları dahil). Özel scriptler bunun dışındadır — bkz. Özel Scriptler.
Konsol mesajları
Debug modunu açın (localStorage.setItem('selwise_debug', 'true'); kapatmak için removeItem). Test modu da (selwise_test_mode) aynı ayrıntılı günlüğü açar. Günlükler [Selwise] ile başlar.
| Mesaj | Anlamı | Debug gerekir mi |
|---|---|---|
No site key — widget not started | data-site-key eksik | Hayır (her zaman) |
Skipping test mode campaign | Test kampanyası, tarayıcı test modunda değil | Hayır (uyarı) |
Skipping empty campaign | İçerik alanları boş | Hayır (uyarı) |
Subscription required | Hesabın teslimatı kapalı ya da sözleşme geçersiz | Hayır (uyarı) |
Skipping campaign due to targeting rules | Sayfa/cihaz/ülke/davranış kuralı | Evet |
Skipping … (excluded by experiment) | Deney kolu kampanyayı göstermiyor | Evet |
Skipping … due to segment targeting | Segment kapısı | Evet |
Frequency cap (…) holds | Sıklık sınırı | Evet |
its live content hides it here | İçerik durumu gizliyor ya da yer tutucu ölçülemiyor | Evet |
Failed to render entities after navigation | Rota değişiminde bir hata | Evet |
Debug modu sayfada bir panel çizmez; yalnızca konsol günlüğünü açar. Kanalın hangi modüllere sahip olduğunu config yanıtının modules alanından okuyabilirsiniz.
Sırada ne var
Son güncelleme: 10 Ekim 2026