# Tarayıcı Bildirimleri

Anahtar çifti, service worker, izin kartı ve abonelikler
Kaynak: https://selwise.com/docs/messaging/web-push

Tarayıcı bildirimi (web push), senaryonun mağazanızın tarayıcısına doğrudan gönderdiği bildirimdir. E-posta ve SMS'ten farkı, bağlanacak bir sağlayıcının olmamasıdır: kurulum, kanalın kendi anahtarı ve alan adınızda yayınladığınız bir dosyadan ibarettir. Ekran **Ayarlar → Mesajlaşma Sağlayıcıları → Browser notifications** (Settings → Messaging Providers) kartıdır; e-posta ve SMS sağlayıcıları için [Mesajlaşma Sağlayıcıları](/docs/messaging/providers).

## Kurulum

Bağlanacak bir sağlayıcı yoktur. Kimlik bilgisi kanalın kendi **anahtar çiftidir** (VAPID) ve izin, bir sağlayıcıya değil sizin alan adınıza verilir. Bu yalnızca **web kanalında** vardır; uygulama kanalında kart "Uygulama kanalının bildirim gönderecek tarayıcısı yok" der.

Kurulum iki parçadır ve ikisi de gerekir; anahtar olup service worker yoksa kanal hazır görünür ama hiçbir bildirim ulaşmaz.

1. **Generate keys** (Anahtarları üret): kanalın anahtar çiftini oluşturur. Kart **Ready** (Hazır) olur, açık anahtar ekranda görünür ve abone sayısı yazar (örn. "12 abone tarayıcı · 3 kayıp").
2. **Download selwise-sw.js**: dosyayı indirip alan adınızın **kökünde** `/selwise-sw.js` olarak yayınlayın. Bir service worker'ın kapsamı, sunulduğu klasörden geniş olamaz ve bildirim her sayfada çalışmalıdır.
3. Tarayıcıdan izin isteyin: aşağıdaki kartı açın ya da kendi düğmenizden `Selwise.requestPushPermission()` çağırın. Tarayıcının kendi istemi **yalnızca bir tıklamadan sonra** çıkar, sayfa yüklenirken asla.

| Alan | Açıklama |
|---|---|
| **Contact address** (İletişim adresi) | `mailto:` ya da `https:` ile başlamalı, en çok 255 karakter. Push servisi trafiğiniz hakkında size ulaşabilsin diye gereklidir; boş bırakırsanız Selwise'in kendi adresi kullanılır. Anahtarlar hazırsa değiştirdiğinizde ayrıca bir kaydet düğmesi çıkar |
| **Public key** (Açık anahtar) | Salt okunur |
| **Subscribed browsers** (Abone tarayıcı) | Etkin abonelik sayısı; **gone** (kayıp) olarak yazılan, push servisinin artık bulunmadığını bildirdiği tarayıcılardır |

> **Yeni anahtar üretmek bütün aboneleri kaybettirir**
>
> Eski anahtarla abone olmuş her tarayıcı, yeni anahtarla imzalanmış bildirimi reddeder. **Generate new keys** (Yeni anahtar üret) bunu abone sayısıyla birlikte onayınıza sunar. Gerçekten sıfırdan başlayacaksanız basın.

### Tarayıcıdan önce siz sorun

Tarayıcı bir siteye ömür boyu tek istem hakkı verir ve ikinci reddedişte siteyi kalıcı olarak engeller. Bu kart, tarayıcının isteminden **önce** sizin kartınızı gösterir; tarayıcının kendi istemi yalnızca alışverişçi kartın izin düğmesine tıkladığında çıkar. Kart kampanya değildir: sayfa hedeflemesi, deney ya da gösterim sınırı onu gizleyemez.

| Alan | Aralık ya da varsayılan | Açıklama |
|---|---|---|
| **Show this ask on your storefront** | Kapalı | Anahtarlar üretilmeden açılamaz ("Önce anahtarları oluşturun") |
| **Title** (Başlık) | En çok 80 karakter | Varsayılan: "Hiçbir şeyi kaçırmayın" |
| **Message** (Mesaj) | En çok 240 karakter | |
| **Allow button** (İzin düğmesi) | En çok 40 karakter | Varsayılan: "İzin ver" |
| **Not now button** (Şimdi değil düğmesi) | En çok 40 karakter | Varsayılan: "Şimdi değil" |
| **Ask after (page views)** | 1 ile 20, varsayılan 2 | Bir tarayıcının sorulmadan önce görmüş olması gereken sayfa sayısı |
| **Ask again after (days)** | 1 ile 365, varsayılan 30 | "Şimdi değil" cevabına ne kadar süre saygı gösterileceği |

Bütün metinler dolu olmalıdır; metni boş bir kart çizilmez. Kaydettikten sonra mağazalar değişikliği yaklaşık bir dakika içinde alır. Kart şu durumlarda gösterilmez: tarayıcı kararını zaten verdiyse, sayfa sayısı eşiğine ulaşılmadıysa, çerez bildirimi hâlâ yanıt bekliyorsa, kanalın anahtarı yoksa. Ayrıntı: [Ulaşılabilirlik](/docs/scenarios/reachability).

### Abonelik yaşam döngüsü

- Alışverişçi izin verince tarayıcısı kanalınıza **abone** olur; bir alışverişçinin birden çok tarayıcısı (dizüstü, telefon) olabilir. Mesaj, **herhangi bir** tarayıcı kabul ederse "teslim edildi" sayılır; üç tarayıcı tek mesajı üç kez saymaz.
- Push servisi bir tarayıcı için "yok" (404 ya da 410 Gone) derse abonelik **süresi dolmuş** işaretlenir ve kartta **kayıp** sayısına eklenir. Bu bir arıza değil, listenin doğal erimesidir; teslimat hata olarak değil, "Ulaşılamadı" nedeniyle **atlandı** sayılır. Tarayıcı geri dönerse yeni bir abonelik olarak gelir.
- Alışverişçi izni geri alırsa abonelik silinir.
- Geçici push hatalarında en çok 3 deneme yapılır.
