Domain Doğrulama
Domain sahipliğini doğrulama
Domain doğrulama, Selwise'in güvenlik modelinin temelidir. Genel endpoint'ler (içerik ve olay) bir web kanalı için yalnızca doğrulanmış kanaldan ve kanalın alan adından gelen isteklere yanıt verir. Doğrulama tamamlanmadan hiçbir widget render edilmez ve gönderilen olaylar reddedilir.
Yalnızca web kanalları
Bu sayfa web sitesi kanallarını anlatır. Uygulama kanalının doğrulanacak bir alan adı yoktur; kanal oluşturulduğu anda doğrulanmış sayılır ve yetkilendirmeyi API anahtarı yapar — bkz. Uygulama Kanalları.
Panelde nerede
Sol menüde Kanallar → Kanal Özeti (Channels → Channel Overview) → üstteki Setup (Kurulum) bölümü → Verify the domain (Alan adını doğrulayın) adımı → Verify Now (Şimdi Doğrula) düğmesi. Aynı adım Setup ekranında (kurulum merkezi) Verify the channel olarak da görünür; oradaki Verify düğmesi sizi yine bu ekrana götürür.
Düğme yalnızca doğrulanmamış bir web kanalında görünür; doğrulanan kanalda adım "Done" olur ve düğme kalkar. Doğrulama admin rolünün yetkisidir (site:verify_domain); marketing rolünde istek 403 döner.
Kanalın durumu başlıktaki rozette yazar: Pending Verification (Doğrulama Bekliyor) ya da Verified (Doğrulandı).
Tek yöntem var: sayfada script etiketi
Doğrulama bir DNS TXT kaydı, bir meta etiketi veya yüklenecek bir dosya istemez. Tek yöntem şudur: Selwise sunucusu mağazanızın ana sayfasını açar ve ham HTML içinde kendi embed etiketinizi arar.
- Sitenize Selwise script'ini kanalınızın
data-site-keydeğeriyle ekleyin — bkz. Widget Kurulumu. Kod, Channel Overview → Setup bölümünde hazırdır. - Verify Now'a basın.
- Selwise önce
https://alanadiniz, olmazsahttp://alanadinizadresini açar (her deneme için 10 saniye, yönlendirmeler izlenir,User-Agent: Selwise-Verifier/1.0). - Dönen HTML'de
data-site-key="SITE_KEY"ifadesi (tek ya da çift tırnak, büyük/küçük harf fark etmez) bulunursa kanal doğrulanır ve genel API önbelleği anında temizlenir; widget'lar ve olaylar hemen çalışmaya başlar.
<script>window.Selwise=window.Selwise||{};window.Selwise.q=window.Selwise.q||[];['track','trackOrder','identify','setTraits','pushDataLayer','grantConsent','revokeConsent','showConsentPreferences','withdrawConsent','endJourney'].forEach(function(m){if(!window.Selwise[m])window.Selwise[m]=function(){window.Selwise.q.push([m,arguments])}});</script>
<script async src="https://widget.selwise.com/client.js" data-site-key="sk_..."></script>
Doğrulayıcı yalnızca ikinci satırdaki data-site-key'e bakar; ilk satır (komut kuyruğu), script yüklenmeden önce yapılan Selwise.trackOrder(...) gibi çağrıların kaybolmaması içindir. Tam kod ve açıklaması Widget Kurulumu sayfasındadır.
API üzerinden aynı işlem:
curl -X POST https://api.selwise.com/api/v1/channels/CHANNEL_ID/verify-domain \
-H "Authorization: Bearer ACCESS_TOKEN"
Başarılı yanıt, isVerified: true olan kanal kaydıdır. /api/v1/sites/CHANNEL_ID/verify-domain eski yolu aynı işlemi yapar.
Doğrulamanın gerektirdikleri
- Etiket, ana sayfanın sunucudan dönen HTML'inde bulunmalıdır, yani sayfa tarayıcıda JavaScript çalışmadan önce de etiketi taşımalıdır. Etiketi bir etiket yöneticisi (Google Tag Manager gibi) ya da sayfa yüklendikten sonra çalışan bir script ekliyorsa doğrulayıcı onu göremez; embed kodunu şablonunuzun
headbölümüne doğrudan yapıştırın. data-site-keydeğeri kanalınızın anahtarıyla birebir aynı olmalıdır.- Ana sayfa oturumsuz bir ziyaretçi için başarılı (
2xx) yanıt vermelidir. Parola sayfası, bakım modu, IP kısıtı ya da bot engelleyici doğrulamayı durdurur. - Alan adı özel bir port içermemelidir: doğrulama yalnızca standart web portlarını (443 ve 80) açar.
localhostbu kuralın dışındadır. - Alan adı, herkese açık bir adrese çözülmelidir. Özel (
10.x,192.168.x…) veya ayrılmış bir adrese çözülen alan adı reddedilir. - Kayıtlı adres
www.olmadan saklanır. Selwise önce kök alan adını dener; kökün DNS kaydı yoksawww.hâlini açar. Yalnızcawwwüzerinde yayın yapan mağazalar bu sayede doğrulanır.
Kapsam: hangi alan adlarından gelen istek kabul edilir
Doğrulanmış kanal için genel API, isteğin Origin (yoksa Referer) başlığındaki alan adını kontrol eder. Kabul edilen:
- kayıtlı alan adının kendisi ve
www.ile başlayan hâli (kök ↔wwwher iki yönde de eşleşir), ve - kayıtlı alan adının her alt alan adı (
tr.magaza.com,staging.magaza.com).
kotu-magaza.com gibi yalnızca sonu benzeyen bir alan adı reddedilir. Reddedilen istek 403 ve şu biçimde bir mesaj alır: Origin 'x.com' is not authorized for site 'magaza.com'.
Bu yüzden test ya da staging alan adınız ana alan adınızın alt alan adıysa ayrıca doğrulama veya takma ad gerekmez. Tamamen farklı bir alan adı için bkz. Kanal Ayarları.
Yerel geliştirme
localhost, 127.0.0.1 ve ::1, yalnızca geliştirme ve test API ortamlarında (NODE_ENV değeri development ya da test iken) güvenilir kabul edilir; staging gibi yayındaki bir ortam da canlı sayılır. Canlıda kapatılamaz: açık olsaydı herkes kendi makinesinden sizin kanalınızın adına veri gönderebilirdi. Yerel geliştirme için ayrı bir test kanalı tanımlayın.
Alan adını değiştirirseniz
Channel Overview → Channel Settings → Domain'i değiştirip kaydettiğinizde doğrulama sıfırlanır: eski doğrulama eski alan adını kanıtlıyordu. Yeni alan adını yeniden doğrulayana kadar kanal 403 Site not verified döner. Form bunu kaydetmeden önce, alanın yanında uyarır. Kanal anahtarı değişmez; yerleştirme kodunu güncellemeniz gerekmez.
Doğrulama başarısızsa
Panel, hata nedenini Verify Now düğmesinin altındaki kırmızı kutuda aynen yazar. Tümü 400 döner:
| Kod | Ne diyor | Ne yapmalı |
|---|---|---|
DOMAIN_VERIFY_TAG_NOT_FOUND | Sayfa açıldı ama data-site-key="..." bulunamadı | Embed kodunu şablonun head bölümüne doğrudan yapıştırın; etiket yöneticisi veya geç yüklenen script yetmez. Yönlendirme sonrası açılan adres mesajda yazar (örneğin www. ya da bir dil yolu); etiket o sayfada olmalı |
DOMAIN_VERIFY_HTTP_STATUS | Sayfa başarısız yanıt verdi (örneğin 403, 503) | Ana sayfa oturumsuz ziyaretçiye açık olmalı; parola sayfasını, bakım modunu veya bot engelleyiciyi kapatın |
DOMAIN_VERIFY_NOT_RESOLVED | Alan adı (ve www. hâli) DNS'te çözülmüyor | Yazımı ve DNS kayıtlarını kontrol edin |
DOMAIN_VERIFY_CERTIFICATE | HTTPS sertifikası süresi dolmuş, kendinden imzalı, eksik zincirli ya da başka alan adı için | Sertifikayı düzeltin |
DOMAIN_VERIFY_TIMEOUT | Mağaza 10 saniyede yanıt vermedi | Mağazanın açık olduğunu ve bilinmeyen ziyaretçileri engellemediğini kontrol edin |
DOMAIN_VERIFY_UNREACHABLE | Bağlantı reddedildi, sıfırlandı veya ağ ulaşılamaz | Mağazanın bu adreste yayında olduğunu kontrol edin |
DOMAIN_VERIFY_CUSTOM_PORT | Kayıtlı alan adı port içeriyor | Channel Settings'ten alan adını portsuz kaydedin |
DOMAIN_VERIFY_PRIVATE_ADDRESS | Alan adı özel/ayrılmış bir IP'ye çözülüyor | DNS'i herkese açık mağazaya yönlendirin |
DOMAIN_VERIFY_APP_CHANNEL | Uygulama kanalında doğrulama istendi | Uygulama kanalında doğrulama yoktur; API anahtarı kullanın |
Doğrulama sonrası da widget görünmüyorsa: Widget Görünmüyor. Doğrulanmamış kanalda events/batch isteği 403 döner; bu, doğrulamayı geçene kadar normaldir.
Son güncelleme: 23 Ekim 2026
