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.

  1. Sitenize Selwise script'ini kanalınızın data-site-key değeriyle ekleyin — bkz. Widget Kurulumu. Kod, Channel Overview → Setup bölümünde hazırdır.
  2. Verify Now'a basın.
  3. Selwise önce https://alanadiniz, olmazsa http://alanadiniz adresini açar (her deneme için 10 saniye, yönlendirmeler izlenir, User-Agent: Selwise-Verifier/1.0).
  4. 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 head bölümüne doğrudan yapıştırın.
  • data-site-key değ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. localhost bu 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ı yoksa www. hâlini açar. Yalnızca www ü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 ↔ www her 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:

KodNe diyorNe yapmalı
DOMAIN_VERIFY_TAG_NOT_FOUNDSayfa 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_STATUSSayfa 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_RESOLVEDAlan adı (ve www. hâli) DNS'te çözülmüyorYazımı ve DNS kayıtlarını kontrol edin
DOMAIN_VERIFY_CERTIFICATEHTTPS sertifikası süresi dolmuş, kendinden imzalı, eksik zincirli ya da başka alan adı içinSertifikayı düzeltin
DOMAIN_VERIFY_TIMEOUTMağaza 10 saniyede yanıt vermediMağazanın açık olduğunu ve bilinmeyen ziyaretçileri engellemediğini kontrol edin
DOMAIN_VERIFY_UNREACHABLEBağlantı reddedildi, sıfırlandı veya ağ ulaşılamazMağazanın bu adreste yayında olduğunu kontrol edin
DOMAIN_VERIFY_CUSTOM_PORTKayıtlı alan adı port içeriyorChannel Settings'ten alan adını portsuz kaydedin
DOMAIN_VERIFY_PRIVATE_ADDRESSAlan adı özel/ayrılmış bir IP'ye çözülüyorDNS'i herkese açık mağazaya yönlendirin
DOMAIN_VERIFY_APP_CHANNELUygulama kanalında doğrulama istendiUygulama 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