# Ulaşılabilirlik

Hangi kanaldan ulaşılabilir ve mesajı kim gönderir
Kaynak: https://selwise.com/docs/scenarios/reachability

Ulaşılabilirlik denetimi, bir senaryonun en çok kişi kaybettiği adımdır. Seçtiğiniz kanalları sırayla sorar ve **ilk ulaşılabilen kanal kazanır**; hiçbiri tutmazsa kişi **cannot reach** (ulaşılamıyor) yedek yolundan çıkar. Bu sayfa dört kanalın her birinin tam olarak ne sorduğunu anlatır.

## Panelde nerede

**Otomasyon → Senaryolar** (Automation → Scenarios) altında bir senaryo, **Check reachability** (Ulaşılabilirliği denetle) adımı. Adımın panelinde kanalları sıralar, her birinin yanındaki ok düğmeleriyle önceliği değiştirir, **Add a channel** (Kanal ekle) ile eksik olanı eklersiniz. Her kanalın ardından gidilecek adımı seçersiniz.

## Dört kanal, üç farklı soru

| Kanal (panel etiketi) | Soru | Ne zaman "evet" |
|---|---|---|
| **Will see it if they come back** (Dönerse görür) | **Geri dönen** biri mi? | Pencere içinde **en az iki ayrı oturumda** siteye gelmiş |
| **Has an email on file** (Kayıtlı e-postası var) | Bu kişiye **e-posta gönderebilir** miyiz? | Geçerli bir adres kayıtlı, **pazarlama izni** var, geri çekilmemiş ve engel listesinde değil |
| **Has a phone on file** (Kayıtlı telefonu var) | Bu kişiye **SMS gönderebilir** miyiz? | E-postadaki koşullar telefon için; ayrıca **Türkiye numarası İYS'de kayıtlı** |
| **Browser notification** (Tarayıcı bildirimi) | Bu kişinin tarayıcısına **bildirim gidebilir** mi? | Bu siteye verilmiş, iptal edilmemiş bir bildirim aboneliği var |

Üç soru birbirinden ayrıdır ve panel bunları ayrı adlandırır: e-posta ve SMS **teslim edilebilirlik**, site kanalı **geri dönme olasılığı**, tarayıcı bildirimi **canlı bir abonelik** sorusudur. Hepsini "ulaşılabilir" diye karşılaştırmak, %4'lük bir e-posta oranını %60'lık bir site oranıyla kıyaslamak olur; aynı şeyi ölçmüyorlar.

### Dönerse görür

Açık olmayan bir tarayıcıya hiçbir şey gönderilemez; bu yüzden site kanalının sorusu "ulaşabilir miyiz" değil "geri döner mi"dir. **Came back within (hours)** (Şu süre içinde geri gelmiş, saat) ayarı pencereyi belirler; boş bırakırsanız 30 gün (720 saat) uygulanır, en çok 90 gün.

Tek ziyaret yetmez. Senaryodaki herkes, senaryoyu başlatan şeyi yaptığı için az önce görülmüştür; "görüldü mü" diye sorulsa kol herkesi geçirirdi. Bu yüzden pencerede en az iki ayrı oturum aranır: biri senaryoyu başlatan ziyaret, öteki gerçek bir dönüş. Siteye bir kez gelip o işi yapıp giden biri bu kolu geçemez. Kanal yalnızca **ziyaretçi kimliği** olan kişilerde çalışır.

### Kayıtlı e-posta ve telefon

Adresler **Kitle → İletişim Listesi** (Audience → Contacts) ekranındaki listenizde şifreli durur; ekranlarda yalnızca maskeli hâli görünür ve adres yalnızca gönderim anında çözülür. Kanal kontrolü adresi okumaz; kişiye ait bir kayıt olup olmadığına, iznine ve engel durumuna bakar. Kayıt, kişiye **üye kimliğiyle ya da tarayıcıyla** bağlanır: bülten penceresini yanıtlayan biri çoğu zaman giriş yapmamıştır ve yalnızca ziyaretçi kimliğiyle tanınır.

"Pazarlama izni var" şu demektir: izin verilmiş, geri çekilmemiş ve izin **izin taşıyabilen bir kaynaktan** gelmiş olmalı: bülten formu, ödeme sayfası, izin API'si, içe aktarma, elle giriş, yeniden abonelik bağlantısı ya da İYS. Yalnızca `identify` ile öğrenilmiş bir adres iznin kanıtı **değildir**. Ayrıntılar: [İletişim listesi](/docs/customers/contacts#adresler-nereden-gelir).

**SMS** için ek koşul: numara Türkiye'ye aitse (ya da ülkesi bilinmiyorsa, Türkiye sayılır) İYS'de **registered** olmalıdır; Türkiye dışı numaralar bu koşulu gerektirmez. Nasıl kaydedileceği: [İYS Entegrasyonu](/docs/customers/iys).

Kayıt olması izin olduğu anlamına gelmez, ama burada izin de sorulur; yine de izin, engel listesi ve İYS **gönderim anında bir kez daha** sorulur ([Gönderim yolu](/docs/scenarios/delivery)).

### Tarayıcı bildirimi

Yalnızca bildirim izni vermiş tarayıcılar bu kola girer; kişi, ziyaretçi ya da üye kimliğiyle eşleşen aktif bir aboneliğe sahip olmalıdır. Bir alışverişçinin birden çok tarayıcısı (dizüstü, telefon) olabilir ve hepsi aynı kişinin abonelikleridir.

**Abonelik yaşam döngüsü:**

1. Alışverişçi, tarayıcının izin istemine **İzin ver** der. Tarayıcı bir *uç nokta* üretir ve hizmet çalışanı (service worker) bunu Selwise'a kaydeder. Hizmet çalışanı `/selwise-sw.js` olarak **sizin alan adınızın kökünden** sunulmalıdır.
2. Bildirim gönderilirken, kişinin tüm aktif tarayıcılarına gider; **bir tanesi bile kabul ederse** teslimat **Delivered** sayılır (bir mesaj üç tarayıcıda üç mesaj olarak raporlanmaz).
3. Tarayıcı aboneliği artık geçerli değilse (`404` ya da `410 Gone`: kullanıcı izni geri aldı, tarayıcıyı sildi), abonelik **süresi doldu** olarak işaretlenir ve bir sonraki denetimde bu kişi bu kola girmez. Teslimat **Failed** değil, **Skipped** olur ve sebebi **Not reachable** yazar: ölen bir liste normal bir olaydır, kanal bozuk değildir.

Kanal bildirim anahtarları (VAPID) üretilmemişse ya da hizmet çalışanı yoksa hiçbir tarayıcı abone olamaz ve kol boş kalır. Kurulum: [Mesajlaşma sağlayıcıları](/docs/messaging/web-push); abonelik sayaçları ve yeni anahtar üretmenin sonucu orada anlatılır.

#### İzin nasıl istenir

Tarayıcı bir siteye **ömür boyu tek istem hakkı** verir ve alışverişçi ikinci kez kapatırsa siteyi kalıcı olarak engeller. Bu yüzden istem sayfa yüklenirken hiç çıkmaz. **Ayarlar → Mesajlaşma Sağlayıcıları → Browser notifications** (Settings → Messaging Providers) altındaki **Ask before the browser** (Tarayıcıdan önce siz sorun) bölümü mağazanızda kendi kartınızı gösterir; tarayıcının kendi istemi yalnızca alışverişçi kartın **İzin ver** düğmesine tıkladığında çıkar. **Şimdi değil** diyen kişiye ayarladığınız gün sayısı kadar dokunulmaz, sonra kart yeniden gösterilir.

Kart şu durumlarda gösterilmez:

- Tarayıcı izin sorusunu zaten yanıtladıysa (verdi ya da reddetti).
- Alışverişçi ayarladığınız sayfa sayısına henüz ulaşmadıysa.
- Çerez bildirimi hâlâ yanıt bekliyorsa. Önce o yanıtlanır.
- Kanal için anahtarlar oluşturulmadıysa.

Metinleri siz yazarsınız; alışverişçi tam olarak sizin yazdığınızı okur. İsterseniz kartı hiç açmayıp kendi düğmenizden `Selwise.requestPushPermission()` çağırmaya devam edebilirsiniz.

## Sıra bir karardır

Kanallar yukarıdan aşağıya denenir ve ilk "evet" kazanır. Yeniden sipariş şablonu önce site kolunu, sonra e-postayı dener: kişi geri dönecekse sitede gösterir, dönmeyecekse e-posta yolunu kullanır. Birden çok kanaldan ulaşılabilen kişi yalnızca ilkine gider; "hepsine gönder" için akışta peş peşe adımlar kurun.

## Rakamlar ne söylüyor

Ulaşılabilirlik adımında kişi kaybetmek normaldir; sorun, **hangi kanalın ne kadar taşıdığını bilmemektir**. Rapor bunu gösterir: adıma kaç kişi varıldı, hangi koldan kaçı gitti, kaçı yedek yoldan düştü. Yedek yolun ucu boşsa o kişiler **düşen** sayılır, sebep "Hiçbir kanal ulaşamadı" yazar.

Site kanalının erişimi genellikle en yüksektir, çünkü ziyaretçinin kimliğini bilmeye ihtiyaç duymaz. Karşılığında teslimat kesin değildir: kişi dönmezse hak süresi dolar. E-posta ve SMS oranları, kaç kişinin adresini ve iznini topladığınıza bağlıdır; düşükse sorun senaryoda değil izin toplamadadır.
