Script Sayfa Hedefleme
Hangi sayfalarda çalışacak
Bir script'in hangi sayfalarda çalışacağını yol kuralları belirler. Kural yalnızca sayfanın yoluna bakar; cihaz, ülke, segment ya da davranış hedeflemesi özel scriptlerde yoktur (bunlar kampanyalardadır — bkz. Kampanya Hedefleme).
Panelde nerede
Script'i kaydettikten sonra Kanallar → Özel Scriptler (Channels → Custom Scripts) listesinde script kartındaki Add to Site (Siteye Ekle) düğmesi. Eklenmiş kurallar listenin üstündeki Active Scripts bölümünde durur. Adımlar için Script Ekleme.
Alanlar
| Alan | Açıklama |
|---|---|
| Path Pattern (Yol Deseni) | Karşılaştırılacak yol; en fazla 255 karakter. Varsayılan /. |
| Match Type (Eşleşme Tipi) | Üç seçenek: aşağıda. Varsayılan Prefix Match. |
| Active / Inactive | Kuralı kodu silmeden açıp kapatır. Hem kuralın hem script'in kendisinin etkin olması gerekir. |
Eşleşme tipi
Karşılaştırılan değer, sayfa yüklendiği andaki location.pathname'dir: https://magaza.com/tr/kadin/ayakkabi?renk=siyah#liste için /tr/kadin/ayakkabi. Sorgu dizesi (?…) ve #… hiçbir zaman dahil edilmez; dil öneki (/tr) dahildir.
| Tip | Davranış | Örnek |
|---|---|---|
Exact Match (exact) | Yol desenle birebir aynı olmalı (büyük/küçük harf duyarlı; sondaki / önemlidir). | /sepet → /sepet eşleşir, /sepet/ eşleşmez |
Prefix Match (prefix, varsayılan) | Yol bu değerle başlıyorsa. Desenin sonundaki tek bir * yok sayılır, yani /urun/* ile /urun/ aynıdır. | /urun → /urun/abc ve /urunler |
Regular Expression (regex) | Desen JavaScript düzenli ifadesi olarak yolla denenir (test; bayrak yok, bağlı değil). | ^/tr/urun/ |
prefix beklediğinizden geniş yakalar
/urun öneki /urunler yolunu da yakalar. Sınırı netleştirmek için sondaki bölü işaretini ekleyin: /urun/. Düzenli ifadeler bağlı değildir: /sepet deseni /odeme/sepet-ozeti yolunu da eşleştirir; başlangıcı ve sonu ^ ve $ ile sabitleyin.
Geçersiz bir düzenli ifade kaydedilmez (SCRIPT_PATH_REGEX_INVALID); panel de "This is not a valid regular expression, so the script would never run on any page" uyarısı verir. Bir kural kaydedildikten sonra tipi regexe çevrilirse yol deseni yeniden denetlenir.
Tüm sayfalar
Her sayfada çalışması için prefix tipiyle / deseni kullanın. Her sayfada çalışan script, her sayfada (ödeme dahil) hata verme potansiyeli taşır; kodunuzu try/catch içinde tutun.
Birden fazla kural
Bir script'i aynı kanala farklı desenlerle birden fazla kez ekleyebilirsiniz; herhangi biri eşleşirse çalışır. Ama:
Çakışan kurallar scripti iki kez çalıştırır
İki kural aynı sayfayla eşleşirse (örneğin prefix /urun/ ve regex ^/urun/) script o sayfada iki kez enjekte edilir. Kuralları birbirini kapsamayacak şekilde kurun; kodunuzu da "iki kez çalışmaya karşı" korumalı yazın.
Scriptlerin kendi aralarındaki çalışma sırası tanımlı değildir. Birbirine bağımlı iki script yazmayın; tek script yazın.
Tek sayfa uygulamaları
Sitenizde sayfa geçişleri tam sayfa yenilemesi yapmıyorsa (Next.js, ikas, Akinon Omnife Next gibi React tabanlı storefront'lar), yol kuralı yalnızca sayfanın ilk açıldığı yola bakar. Yol değiştiğinde Selwise script'i yeniden çalıştırmaz ve enjekte ettiği <script>/<style> öğelerini kaldırır (CSS dahil). Bu durumda:
- Kodun içinde yol değişimini kendiniz dinleyin (
history.pushState/replaceStatesarmalayıppopstateile birleştirin ya daMutationObserverkullanın) ve işi idempotent yeniden uygulayın; ya da - CSS'in kalıcı olması gerekiyorsa stili script içinde
document.head'e kendiniz ekleyin (Selwise'in eklediği<style>kaldırılır).
Hangi yoldan açıldığınız önemlidir: ürün sayfasına doğrudan bağlantıyla gelen ziyaretçide /urun/ kuralı çalışır; ana sayfadan tıklayarak gelende çalışmaz.
Doğrulama
Script'in doğru sayfada çalıştığını konsola bir işaret basarak test edin:
(function () {
console.log('[script] çalıştı', location.pathname);
})();
Konsolda görmüyorsanız: kural Active mi, script Active mi, domain doğrulanmış mı, sitenizin CSP'si satır içi scripti engelliyor mu? Ağ sekmesinde scripts?path=… isteğine bakın: yanıtta script varsa kural eşleşmiştir. Doğruladıktan sonra işareti kaldırın. Ayrıntı: Özel Script Sorunları.
Son güncelleme: 22 Ekim 2026
