Görünmeyen İçerik

Kampanya, öneri, arama ve zenginleştirme

Panelde tanımladığınız kampanya, widget, öneri şeridi, arama sonucu ya da zenginleştirme uygulamada görünmüyorsa. Anahtar, 403 ve olay sorunları için Sorun Giderme.

Hangi katmanda kaybolduğunu bulun

Önce kanalın cevabına doğrudan bakın; kampanya orada yoksa sorun SDK'da değil panelde ya da hesaptadır:

const config = await selwise.endpoints.getConfig();
console.log(config.channel, config.modules, config.campaigns?.length, config.search, config.scenarios);
  • channel.type app olmalıdır.
  • modules içinde web_experience yoksa campaigns her zaman boştur; recommendations modülü yoksa öneri listesi, search modülü yoksa search.enabled false gelir. Modül satın alınmamışsa panel ekranı zaten gizler.
  • Kampanya campaigns içinde varsa debug: true ile getSurfaces() çağırıp hangi kapıda düştüğünü satır satır okuyabilirsiniz.

Kampanya ya da widget görünmüyor

Günlük satırı ya da belirtiSebep ve çözüm
Loaded 0 surface(s)Panelde kampanya yok, zamanlaması dışında, durdurulmuş ya da hesapta web_experience modülü yok. Cevap sunucuda 5 dakika önbelleklenir; yayımladıktan sonra bekleyin ve invalidateSurfaces() çağırın
Ekrana bağlı kampanyalar gelmiyor, günlük sessizgetSurfaces'a ekran adı verilmedi ve setScreen hiç çağrılmadı; sayfa hedefleme boş bir adresle değerlendirilir ve yalnızca "tüm sayfalar" kampanyaları geçer. trackScreenView('app://...') ile ekranı bildirin
Kampanya yalnızca başka ekranlardaHedefleme deseni ekran adıyla eşleşmiyor. Düz desen "içerir" mantığıyla, * joker ve regex: ile eşleşir (Event Takibi)
Surface excluded by experimentZiyaretçi, kontrolün yerine geçen bir deney kolunda
Surface outside segment targetingZiyaretçi segmentte değil; ya da segment sorgusu 403/429 aldı ve SDK "hiçbir segmentte değil" sonucuna düştü (salt okunur anahtar!)
Surface blocked by frequency cap (perSession ...)Sıklık kotası doldu. Test için uygulamayı yeniden yükleyin ya da depoyu temizleyin; sayaçlar diske yazılır
Surface held out by experimentZiyaretçi holdout kolunda; bilerek hiçbir şey görmez
Surface not drawable for this shopper nowİçerik, ölçülmemiş bir sepeti ya da ürünü söylemek istiyor; aşağıya bakın
Kampanya hiç gelmiyor, günlükte iz yokSDK sürümü kampanyanın söylediği değerleri ya da koşulları tanımıyor ve sunucu kampanyayı o istemciye göndermiyor; SDK'yı güncelleyin (Sürümler)
Test kampanyası görünmüyorTest modundaki yüzey yalnızca init({ testMode: true }) cihazda görünür; tersi de doğrudur: test cihazı üretimdeki yüzeyleri görmez
Kapattığım popup bir daha gelmiyordismissSurface kalıcıdır; resetDismissals() ile temizleyin
İki çubuktan biri hiç görünmüyorAynı yuva ve aynı ekran; çatışma çözümü birini seçer (Kampanya ve Widget)
Ülke hedefli kampanya herkese görünüyorÜlke bilinmediğinde kural açık kalır; getSurfaces bağlamında country verin
isLoggedIn, orderCount kuralı hiç eşleşmiyorSDK bu sinyalleri doldurmaz; behavior ile siz verin
Kod yazdım, çalışmıyorcustomJs ve customCss yalnızca custom türünde ve WebView içinde çalışır (Özel Widget)

Sepet, hedef çubuğu, ürün değerleri

BelirtiSebep
Hedef çubuğu çizilmiyorresolveGoalBar(...).visible false: sepet bilinmiyor (setCart hiç çağrılmadı, ya da setCart(null)), boş sepette çubuk istenmemiş ya da cümledeki değer söylenemiyor
setCart false dönüyorTutar ya da adet sayı değil ya da negatif; sepet bilinmeyen oldu
{cart.total} kullanan kampanya yokSepet bilinmiyor ya da para birimi yok (kanalın para birimi de tanımlı değil); söylenemeyen cümle atlanır
{product.price} kullanan kampanya ürün sayfasında yokgetSurfaces'a product verilmedi ya da pending: true hâlâ duruyor
Panelde Cart value kartı "Not measured"setCart hiç çağrılmıyor; yalnızca ekle/çıkar olayları geliyor (Sepet ve Dinamik İçerik)
Tutar yanlıştotal kargo dahil verilmiş; indirimden sonra, kargodan önceki tutar verilmeli

Öneri şeridi boş

  1. Hook error doluysa error.status: 403 ise anahtarda mobile_write yok (403'ün sebepleri); 404 ise widgetId yanlış ya da widget silinmiş.
  2. currentProductId yok ya da yanlış alanla. Benzer ürün stratejileri bağlamsız boş döner; productItemCode ya da sku alanı yok sayılır (Öneriler).
  3. Sepet stratejisi ve sepet bilinmiyor. Kargo Bedavaya Tamamla şeridi, setCart çağrılmadıkça boştur.
  4. Besleme. Ürünler senkronlanmamış ya da item_code kodları farklı; Besleme Sorunları.
  5. Geçmişe dayalı strateji ve storage yok. recently_viewed ve user_history her açılışta boştur.
  6. Deney kolu şeridi çizmiyor. Sonuç hidden: true; çizmeyin.
  7. Sunucu hatası. Ürün endpoint'i hata durumunda bile 200 ve boş liste döner; günlükte neden görünmez. Panelde widget'ın etkin olduğunu ve sayfa hedeflemesini kontrol edin: getRecommendationWidgets(pageUrl) listesi sayfa hedeflemesine, test moduna ve segmente göre süzülür (0.13.0); widget kimliğini doğrudan veren hook süzmez. Test modundaki bir şerit gerçek alışverişçide hiç görünmez.
  8. Test modu ve segment. Liste test modundaki ve segment hedefli widget'ları da getirir; bunları isTestMode ve segmentIds alanlarından siz elemezseniz herkese çizilebilir.

Genel liste: Öneriler Görünmüyor.

Arama

BelirtiSebep
enabled: falsePanelde arama kapalı; ayrıca search modülü yoksa 402
Sonuç listesi boş, tek kural redirectYönlendirme kuralı eşleşti; result.redirect'e gidin
Sıfır sonuç raporu şişiyorBoş ya da çok kısa sorguyla doğrudan search() çağrılıyor; hook'u ya da minChars'ı kullanın
Aranan ürün gelmiyorSelwise besleme katalogunu arar; ürün senkronlanmamış olabilir (Arama Sorunları)

Zenginleştirme boş

  • Product enrichment is configured but no rule carries a placement key günlüğü: kurala panelde Uygulama yuvası verilmemiş; web seçicisiyle yerleştirilmiş kurallar uygulamaya ulaşamaz.
  • Yuva adı eşleşmiyor: SDK adı küçültür ve boşluk ya da alt çizgiyi tireye çevirir; ekranınızın istediği adla panelde yazılan aynı olmalı. getEnrichmentSlots() kanalın gerçek yuvalarını verir.
  • code ürün besleme item_code değeridir; ürün bulunamazsa resolved: false ile boş döner. Katalog paylaşımlı kanalda başka kanaldan çözülür.
  • Uç nokta yalnızca uygulama kanalına hizmet eder; web kanalı anahtarıyla 400 döner.
  • Kural test modundaysa yalnızca test cihazında görünür. Bkz. Zenginleştirme: uygulama.

Senaryo gelen kutusu boş

getScenarioInbox() yalnızca kanalın /config cevabı scenarios.enabled: true diyorsa istek atar; yani yayımlanmış, Sitede göster adımı olan bir senaryo gerekir. Hakkın süresi (Şu süre içinde alınsın) dolduysa kapanır. Test modundaki senaryo için testMode: true gerekir. Bkz. Senaryo Gelen Kutusu.

Son güncelleme: 10 Ekim 2026