# Kanal, alan adı ve anahtarlar

> Kanalın oluşturulması, alan adının doğrulanması ve site anahtarı ile sunucu anahtarının oluşturulması.

Kaynak: /tr/integrate/channels-and-keys/

Siteyi bağlamadan önce panelde üç şey hazırlanır: bir **kanal**, doğrulanmış bir **alan adı** ve kanalın **anahtarları**. Bu adımların tümü **Kurulum › Kanallar** ekranındaki **Yeni kanal kur** sihirbazıyla sırasıyla yapılır.

:::note[Yetki]
Kanal, alan adı ve anahtar işlemlerini yalnızca **Yönetici** rolündeki kullanıcılar yapabilir ("Kullanıcıları ve kanalları yönetebilir" izni). Diğer roller **Entegrasyon** ekranında yalnızca durum bilgisini görür. Her oluşturma ve iptal işlemi **İşlem geçmişi**'ne kaydedilir.
:::

## Kanal

Kanal, yorumların toplandığı ve gösterildiği satış noktasıdır; örneğin Türkiye web siteniz, mobil uygulamanız, başka bir ülkedeki siteniz ya da başka bir alan adında, başka bir adla satış yaptığınız siteniz. Bir markanın bütün kanalları aynı panelde yönetilir. Her kanalın üç özelliği vardır:

| Alan | Açıklama |
|---|---|
| Ad | Panelde gösterilen ad; örneğin "Türkiye web sitesi" |
| Pazar | Kanalın tabi olduğu ülke kuralları. Satın alma kanıtı zorunluluğu, yorum yazma süresi ve izin verilen sıralamalar pazar kurallarıyla belirlenir: Sayproof'un pazar kuralı tabandır, markanız bu sınırlar içinde pazar ya da kanal için kendi kural sürümünü yayınlayabilir. **Kanal oluşturulduktan sonra pazar değiştirilemez.** |
| Dil | Davet e-postalarının ve yorum formunun varsayılan dili (`tr` ya da `en`) |

Kanal kodu, kanal adından otomatik olarak üretilir ve API'de kanalı tanımlar (örneğin `channel=web`). Aynı pazardaki kanalların yorumları birlikte gösterilir ve tek bir ortalamada hesaplanır; farklı pazarların yorumları birbirine karışmaz. Bu kural başka bir adla satış yapan kanallarda da geçerlidir: markanızın iki sitesi aynı pazardaysa aynı ürünün yorumları iki sitede de görünür.

### Kanalı düzenleme

**Kanallar** ekranında kanal kartındaki **Düzenle** düğmesi **Kanalı düzenle** formunu açar. Formda **Adı**, **Dil** ve **Davet bağlantısının açılacağı sayfa** alanları değiştirilebilir; kanalı kapatmak ya da yeniden açmak formda değil, kanal kartındaki **Kanalı kapat** ve **Kanalı aç** düğmeleriyle yapılır ([Kanalı kapatma ve kaldırma](#kanali-kapatma-ve-kaldirma)). **Dil**, sihirbazdaki gibi listeden seçilir (**Türkçe** ya da **English**). Pazar değiştirilemez. Değişiklikler **Değişiklikleri kaydet** düğmesiyle kaydedilir ve **İşlem geçmişi**'ne yazılır.

Aynı formdaki üç alan, müşteriye giden e-postalarda bu kanalın hangi adla, hangi adresten ve hangi destek sayfasıyla görüneceğini belirler:

- **Müşteriye görünen ad:** Bu kanalın davet e-postalarında, ret bildirimlerinde ve e-posta almak istememe sayfasında marka adı olarak yazar.
- **Gönderen e-posta adresi:** Bu kanalın davet e-postaları bu adresten gider. Adresin alan adı **Gönderen alan adları** kartında doğrulanmış olmalıdır; doğrulanmamış alan adındaki adres kaydedilmez (`sender_domain_unverified`).
- **Destek sayfası adresi:** Bu kanalın davet e-postalarındaki destek bağlantısı bu sayfayı açar (`https`).

Boş bırakılan alanda markanın adı ve **Davet gönderimi › Gönderim yolu** bölümündeki gönderen adresi ve destek sayfası kullanılır. E-posta almak istememe kaydı ise markanın geneline uygulanır: bir kanalın e-postasından davet almamayı seçen müşteriye markanın hiçbir kanalından davet gitmez.

**Aydınlatma metni bağlantısı** alanına kişisel verilerin işlenmesi hakkındaki aydınlatma metninizin adresi yazılır (`https`; adresin doğrulanmış alan adınızda olması gerekmez). Adres girilmişse bu kanalın sitesinde yorum, soru ve cevap formlarının ve sipariş sayfasındaki yorum formunun altında, davet e-postasının da alt bilgisinde **Kişisel verilerin işlenmesi hakkında aydınlatma metni** bağlantısı gösterilir; bağlantı yeni sekmede açılır. Bu alanın marka geneli karşılığı yoktur: boş bırakılırsa bağlantı gösterilmez. `https` ile başlamayan adres kaydedilmez (`privacy_url_not_https`).

Varsayılan bileşenin bu kanalın sitesindeki tasarımı ve düzeni bu formda değil, **Kurulum › Mağaza görünümü** ekranında seçilir: [Mağaza görünümü](/tr/features/setup-screens.md#magaza-gorunumu).

### Kanalı kapatma ve kaldırma

Kanal, **Kanallar** ekranındaki kartında bulunan **Kanalı kapat** düğmesiyle kapatılır; düğme önce aşağıdaki sonuçları gösterip onay ister. Kapalı kanalın kartında **Kanalı aç** düğmesi bulunur. Kapalı kanalda:

- Script, bu kanalın site anahtarıyla gelen her isteğe `channel_inactive` döner; sitede yorum görünmez ve yazılamaz. Sunucu anahtarıyla bu kanal için yapılan SSR ve oturumlu müşteri istekleri `unknown_channel` döner.
- Kanal koduyla gelen sipariş gönderimi `invalid / channel_unknown` ile reddedilir. Kanala bağlı sipariş bağlantısı okuma yapmaz; **Şimdi oku** `409 channel_inactive` döner.
- Kanalın siparişleri için yeni davet üretilmez. Bekleyen davet "Kanal kapalı" nedeniyle durur, gönderilmiş davete hatırlatma gitmez.
- Ret bildirimleri gönderilmeye devam eder. Yazılmış yorumlar ve geçmiş kayıtlar değişmez.

Kanal yeniden açıldığında sipariş bağlantısı kaldığı yerden okur; yazma süresi dolmamış ve henüz davet gitmemiş siparişler için davet üretilir.

Hiç yorumu, siparişi ve sipariş bağlantısı olmayan bir kanal **Kanalı düzenle** formundaki **Kanalı kaldır** düğmesiyle silinir. Kanalla birlikte site anahtarları, görüntülenme sayıları ve bu kanala özel yayınlama yöntemi de silinir; işlem **İşlem geçmişi**'ne yazılır ve geri alınamaz. Yorumu, siparişi ya da sipariş bağlantısı olan kanal kaldırılamaz (`409 channel_in_use`); yorumlar ve siparişler saklanması gereken kayıtlar olduğu için bu kanallar kapatılır.

### Kanal hakkı

Her marka varsayılan olarak en fazla 3 açık kanal kurabilir; bu sayı **Kanal hakkı**dır. Kapalı kanallar bu sayıya girmez.

- Yönetici, kanal hakkı dolana kadar **Yeni kanal kur** sihirbazıyla kanal ekler.
- Kanal hakkı dolduğunda **Yeni kanal kur** düğmesinin yerinde **Ek kanal iste** düğmesi görünür. Düğme, isteğe bağlı bir notla Sayproof ekibine istek gönderir; aynı anda yalnızca bir açık istek bulunabilir (`409 channel_request_open`). Sayproof ekibi isteği kabul ettiğinde kanal hakkınız artar. İstek ve sonucu **İşlem geçmişi**'ne kaydedilir.
- Bir kanalı kapatmak yer açar. Kapalı bir kanalı yeniden açmak için boş yer gerekir. Kanal hakkı doluyken yeni kanal oluşturulamaz ve kapalı kanal yeniden açılamaz (`409 channel_quota`).

## Alan adı doğrulama

Yorumlar yalnızca doğrulanmış alan adlarındaki sayfalarda görünür. Böylece biri sizin site anahtarınızı kopyalasa bile yorumlarınızı kendi sitesinde gösteremez.

1. Sihirbazın **Alan adı doğrulama** adımında ya da **Kanallar › Alan adları** sekmesindeki **Alan adları** kartında alan adını ekleyin; örneğin `www.markaniz.com`.
2. Doğrulama bekleyen her alan adı için panel "`<alan adı>` nasıl doğrulanır?" başlığı altında **Doğrulama yolu** seçimini gösterir: **Sitenize dosya** ya da **DNS kaydı**. İki yol da aynı doğrulama metnini kullanır; sizin için kolay olanı seçin.
3. **Sitenize dosya** yolunda panel **Dosyanın adresi** ve **Dosyanın içindeki metin** değerlerini kopyalama düğmeleriyle gösterir. Geliştiriciniz sitenize, bu adreste açılan ve içinde yalnızca bu metin yazan küçük bir metin dosyası koyar:

   ```text
   https://www.markaniz.com/.well-known/sayproof-domain-verification
   ```

4. **DNS kaydı** yolunda panel **Kayıt türü** (`TXT`), **Ad** ve **Değer** satırlarını gösterir; **Ad** ve **Değer** kopyalama düğmeleriyle gelir. Alan adınızın DNS ayarlarına (alan adını aldığınız firmanın ya da Cloudflare gibi bir hizmetin panelinde) bu adla, değeri doğrulama metni olan bir `TXT` kaydı eklenir. Ad, alan adının önüne `_sayproof-verification` eklenerek oluşur:

   ```text
   _sayproof-verification.www.markaniz.com
   ```

   Bazı DNS panelleri alan adını adın sonuna kendisi ekler; orada adın yalnızca alan adınızdan önceki kısmı yazılır (`_sayproof-verification.www`). Shopify, Wix gibi sitenize dosya koyamadığınız hazır altyapılarda bu yolu kullanın.
5. Dosya ya da kayıt yerindeyse **Doğrula** düğmesine basın. Sayproof önce dosyayı okur, dosya yoksa ya da içeriği eşleşmezse DNS kaydına bakar; ikisinden biri doğrulama metniyle eşleşirse alan adı doğrulanır.

Doğrulama kuralları:

- Adres `https` üzerinden açılmalı ve `200` yanıtı vermelidir. Yönlendirmeler izlenmez; dosya doğrudan bu adreste bulunmalıdır.
- Her alan adı ayrı doğrulanır: `markaniz.com` ve `www.markaniz.com` iki ayrı alan adıdır. Yorumların gösterileceği her adresi ekleyin.
- Alan adı kanala değil, markaya bağlıdır. Doğrulanan bir alan adı tüm kanallarınızda geçerlidir.
- Yerel ağ adresine çözümlenen alan adlarında dosya okunmaz; bu alan adları yalnızca DNS kaydıyla doğrulanabilir.
- DNS kaydının değeri yalnızca doğrulama metninden oluşmalıdır; aynı adda başka `TXT` kayıtları da bulunabilir. Yeni bir DNS kaydının görünmesi birkaç dakika ile birkaç saat sürebilir; kayıt bulunamadıysa bir süre sonra yeniden **Doğrula**'ya basın.
- Doğrulama olmazsa panel nedenini yazar: dosyanın içeriği beklenenle aynı değilse "sitenizdeki dosyanın içeriği beklenenle aynı değil", ne dosya ne kayıt bulunduysa "sitenizde ne doğrulama dosyası ne de DNS kaydı bulundu", kayıt bulunup değeri farklıysa "DNS kaydı bulundu ama değeri beklenenle aynı değil", dosya yokken alan adının DNS sunucusuna ulaşılamadıysa "alan adının DNS sunucusuna ulaşılamadı; biraz sonra yeniden deneyin".

Doğrulanmamış bir alan adındaki sayfada yorumlar görünmez: istek geri çevrilir ve **Bağlantı kayıtları** ekranına "Site doğrulanmamış" sonucuyla kaydedilir.

### Davet bağlantısının açılacağı sayfa

Aynı adımda, müşteri davet e-postasındaki bağlantıya tıkladığında açılacak sayfa girilir; örneğin `https://www.markaniz.com/yorum-yaz`. Kurallar:

- Sayfa doğrulanmış alan adlarınızdan birinde olmalı ve `https` ile başlamalıdır.
- Sayfada yorum container'ı bulunmalıdır. Sayproof token'ı bağlantının `#` işaretinden sonraki bölümüne ekler (`https://www.markaniz.com/yorum-yaz#review_token=…`); script bu değeri gördüğünde yorum formunu otomatik olarak açar ve değeri adres çubuğundan siler. Eski davetlerdeki `?review_token=…` biçimi de okunur. Container bulunmayan bir sayfada (örneğin ana sayfada) bağlantı formu açmaz.
- Sayfa girilmemişse bağlantı, ürünün katalogdaki sayfa adresini açar (bkz. [Ürünler](/tr/features/products.md)). İkisi de yoksa davet gönderilmez ve "Davet bağlantısının açılacağı sayfa girilmemiş" nedeniyle kaydedilir.

Bir ürün sayfasını ya da container içeren ayrı bir "yorum yaz" sayfasını kullanabilirsiniz.

### Alan adını kaldırma

**Kanallar › Alan adları** sekmesindeki **Alan adları** kartında her satırın **Kaldır** düğmesi, doğrulanmış ya da doğrulama bekleyen alan adını onaydan sonra siler. Kaldırılan alan adındaki sayfalarda yorumlar bundan sonra gösterilmez. Bir kanalın **Davet bağlantısının açılacağı sayfa** adresi bu alan adındaysa alan adı kaldırılamaz (`409 domain_in_use`; ayrıntıda o kanalların kodları yazar); önce kanalın adresini değiştirin. Bir kanalın yöntem beyanı adresi bu alan adındaysa da kaldırılamaz (`409 domain_in_statement`; ayrıntıda kanal kodu ve dil yazar); önce **Pazar kuralları › Yöntem beyanı**'ndaki adresi değiştirin. Kaldırma **İşlem geçmişi**'ne yazılır.

## Gönderen alan adları

Davet e-postalarının markanızın adresinden (örneğin `yorum@markaniz.com`) gitmesi için adresin alan adı **Kanallar › Alan adları** sekmesindeki **Gönderen alan adları** kartında doğrulanır. Gönderen adresi **Davet gönderimi › Gönderim yolu** bölümündeki **Gönderen e-posta adresi** alanına, kanala özel adres ise **Kanalı düzenle** formundaki aynı adlı alana yazılır ([Kanalı düzenleme](#kanali-duzenleme)); doğrulanmamış bir alan adındaki adres bu alanlara kaydedilemez (`sender_domain_unverified`).

**Gönderen alan adı ekle** düğmesi üç adımlık sihirbazı açar:

1. **Alan adı:** E-postaların gideceği adresin `@` işaretinden sonraki kısmı; örneğin `markaniz.com`.
2. **DNS kayıtları:** Alan adınızın DNS yönetim ekranına eklenecek dört `TXT` kaydı listelenir. Değerler sihirbazda gösterilir ve kopyalanabilir; bir kaydın değeri boş gösteriliyorsa ("Değeri e-posta hizmetiniz verir") o değeri e-posta hizmetinizden alın.
3. **Denetim:** **Kayıtları denetle** düğmesi kayıtların alan adınızda görünüp görünmediğine bakar ve her kayıt için "Bulundu" ya da "Bulunamadı" sonucunu gösterir.

| Kayıt | Tür | Ad | Aranan değer |
|---|---|---|---|
| Sahiplik kaydı (Sayproof) | `TXT` | `_sayproof.markaniz.com` | Sihirbazda gösterilen `sayproof-verification=…` değeri. Değer markanıza ve alan adına özeldir; alan adının size ait olduğunu gösterir. |
| Gönderme izni (SPF) | `TXT` | `markaniz.com` | `v=spf1` ile başlayan kayıt; sihirbazda bir `include:` değeri gösteriliyorsa kayıt bu değeri de içermelidir |
| İmza anahtarı (DKIM) | `TXT` | `<seçici>._domainkey.markaniz.com`; seçici sihirbazda gösterilir | Açık anahtarı (`p=`) içeren kayıt |
| Alan adı kuralı (DMARC) | `TXT` | `_dmarc.markaniz.com` | `v=DMARC1` ile başlayan kayıt; sihirbaz `v=DMARC1; p=none` önerir |

Dört kaydın dördü de bulunduğunda alan adı doğrulanır. Yeni bir DNS kaydının yayılması birkaç dakika ile birkaç saat sürebilir; bir kayıt bulunamadıysa bir süre sonra listeden alan adını açıp yeniden denetleyin. Alan adının DNS sunucusuna ulaşılamazsa ya da DNS sunucusu geçici bir hata verirse kayıtlar "Bulunamadı" sayılmaz; `502 sender_domain_check_failed / dns_unreachable` yanıtı döner ve denetim daha sonra yeniden yapılabilir.

Doğrulanan alan adının satırında ilk doğrulama zamanı yazar; kayıtlar yerinde kaldıkça yeniden denetim bu zamanı değiştirmez. Satırdaki **Davet gönderimi › Gönderim yolu'na git** düğmesi **Davet gönderimi** ekranını açar.

**Davet gönderimi** ekranındaki ya da herhangi bir kanalın gönderen adresinde kullanılan alan adı kaldırılamaz (`409 sender_domain_refused / sender_domain_in_use`); önce gönderen adresini değiştirin.

## Anahtarlar

Bir kanal için iki anahtar yeterlidir:

| Değer | Gizli mi | Bulunduğu yer | İşlevi |
|---|---|---|---|
| **Site anahtarı** | Hayır | Sayfanın kodunda, tarayıcıda | Script'in yorumları getirmesini ve yorum formunu açmasını sağlar. Yalnızca doğrulanmış alan adlarında çalışır. |
| **Sunucu anahtarı** | Evet | Yalnızca mağazanızın sunucusunda | Siparişlerin ve teslimatların Sayproof'a gönderilmesini, yorumların sayfayla birlikte sunucuda hazırlanmasını (SSR) ve oturum açmış müşterinin durumunun sorgulanmasını sağlar. |

İkisi de **Kanallar › Anahtarlar** sekmesinde ve kanal kurulum sihirbazının **Anahtarlar** adımında ("Sitenizin ve sunucunuzun kullanacağı iki anahtar") oluşturulur. Siparişleri imzalayarak göndermek isteyen ekipler için isteğe bağlı bir [imzalı gönderim şifresi](#imzali-gonderim-sifresi) de vardır.

### Site anahtarı

Site anahtarı kanala bağlıdır ve sayfa kaynağında görünmesinde bir sakınca yoktur. Tek başına yorum yazılmasını sağlamaz; yorum yazmak için sipariş doğrulaması ya da davet bağlantısı gerekir.

Site anahtarı kanalın kurulum sihirbazında ya da **Kanallar › Anahtarlar** sekmesindeki **Site anahtarları** kartında **Yeni site anahtarı** düğmesiyle oluşturulur; kartta birden fazla kanalınız varsa önce **Kanal** seçilir. Bir kanalın kullanımdaki bütün site anahtarları iptal edilene kadar çalışır. Kurulum ekranları (kanal sihirbazı, **Entegrasyon** ve geliştiriciyle paylaşılan kurulum belgesi) kanalın en yeni anahtarını gösterir.

### Sunucu anahtarı

Sunucu anahtarı [sipariş ve teslimat aktarımında](/tr/integrate/orders.md), [SSR](/tr/integrate/server-rendering.md)'da ve [oturum açmış müşteri](/tr/integrate/signed-in-customers.md) özelliğinde kullanılır; aynı anahtar hepsine yeter. Sunucu anahtarı kanala değil markaya bağlıdır: aynı anahtar bütün kanallarınızda kullanılabilir, isteğin hangi kanala ait olduğu istekteki kanal koduyla belirlenir. Anahtar **Sunucu anahtarları** kartında **Anahtarın adı** girilip **Sunucu anahtarı oluştur** düğmesiyle oluşturulur. Panelden oluşturulan sunucu anahtarı "Sipariş gönderme" (`orders`) ve "Sayfayı sunucuda hazırlama" (`ssr`) izinlerini kendiliğinden taşır; panelde ayrıca izin seçilmez. Anahtar Admin API'yi kullanamaz.

- Anahtarın tamamı yalnızca oluşturulduğu anda **bir kez** gösterilir. Sayproof anahtarı saklamaz; anahtarı kaybederseniz yeni bir anahtar oluşturmanız gerekir.
- Anahtar `Authorization: Bearer …` header'ı ile gönderilir ve **hiçbir zaman** tarayıcıya ulaşmamalıdır. Tarayıcıya aktarılan bir ortam değişkenine (örneğin `NEXT_PUBLIC_…`) yazılmamalıdır.
- Bu anahtarla herhangi bir e-posta adresi için oturum açmış müşteri sorgusu yapılabilir: adresin bir ürünü satın alıp almadığı ve yorum yazıp yazmadığı öğrenilir. Anahtarı bir parola gibi koruyun ve yalnızca sunucuda tutun; açığa çıktığından şüpheleniyorsanız hemen iptal edin. Ayrıntılar için: [Anahtarlar ve erişim](/tr/security/keys.md).

### İmzalı gönderim şifresi

İsteğe bağlıdır. Siparişler sunucu anahtarıyla gönderilir; isteklerini ayrıca bir şifreyle imzalamak isteyen ekipler **Kanallar › Anahtarlar** sekmesinin altındaki kapalı **Gelişmiş: imzalı gönderim şifreleri** bölümünü açıp **İmzalı gönderim şifreleri** kartında **Şifrenin adı** girerek **Şifre oluştur** düğmesine basar.

İmzalı gönderim şifresi iki parçadan oluşur: **şifre kimliği** (her istekte `X-Sayproof-Secret` header'ında gönderilir) ve **şifrenin kendisi** (yalnızca imzayı hesaplamak için kullanılır, hiçbir istekte gönderilmez). Şifre yalnızca oluşturulduğu anda bir kez gösterilir. Oluşturma sonrasında açılan kartta **Şifre kimliği** ve **Şifre** birlikte yer alır. Kimlik gizli değildir; daha sonra da **İmzalı gönderim şifreleri** tablosunun **Şifre kimliği** sütununda görünür ve kopyalanabilir. **Adı** sütunundaki ad yalnızca şifreyi tanımanız içindir; header'da ad değil kimlik gönderilir. Kullanımı için: [Sipariş ve teslimat aktarımı › İmza](/tr/integrate/orders.md#imza).

Aynı tabloda iki özel amaçlı şifre de yer alır. Bu şifreler sipariş aktarımını imzalayamaz; yalnızca kendi amaçları için kullanılır:

- **Bildirim adresi şifresi:** Davetleri kendi sisteminiz gönderiyorsa, Sayproof'un sisteminize gönderdiği bildirimleri imzalar. Bkz. [Davetleri kendi sisteminizle göndermek](/tr/integrate/own-sending.md).
- **E-posta teslim bildirimi şifresi:** E-posta hizmetinizin teslim ve açılma olaylarını Sayproof'a bildirmesi için kullanılır. Bkz. [E-posta teslim bildirimleri](/tr/integrate/email-events.md).

## Anahtar yenileme

İptal edilen bir anahtar ya da şifre kalıcı olarak kapanır ve geri alınamaz; onu kullanan sistem hemen çalışmayı durdurur. Kesinti olmadan yenilemek için:

1. Yeni anahtarı ya da şifreyi oluşturun (şifreye yeni bir ad verin). Site anahtarı için **Site anahtarları** kartındaki **Yeni site anahtarı** düğmesini kullanın.
2. Sisteminizi yeni değere geçirin (site anahtarında sitenizdeki kodu yeni anahtarla güncelleyin) ve **Bağlantı kayıtları** ekranından ya da **Entegrasyon › Sipariş aktarımı** sekmesindeki **Son istekler** listesinden çalıştığını doğrulayın.
3. Eski anahtarı ya da şifreyi iptal edin.

Bir değerin sızdığından şüpheleniyorsanız beklemeden iptal edin ve yenisini oluşturun.

## Deneme

Sihirbazın son adımı, bu kanal için sitenizden gelen son isteği ve bu kanala aktarılan sipariş sayısını (**Aktarılan sipariş**) gösterir. Kodu ekledikten sonra bir ürün sayfasını açın ve **Yeniden kontrol et** düğmesine basın. Aynı bilgi daha sonra **Entegrasyon › Sitede gösterim** sekmesinde kanal seçilerek "Sitede görüldü mü?" bölümünde de gösterilir.
