---
title: "Adapty Mail'de e-posta hedefleri"
description: "Her Adapty Mail kampanyasının kişileri yönlendirdiği yer: üç hedef türü, URL'yi kişiselleştiren yer tutucular ve geri kalanı dolduran hook."
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-skills && claude plugin install adapty-skills@adapty` — other tools: `npx skills add adaptyteam/adapty-skills --all`

Her kampanyanın alıcıları bir yere yönlendirmesi gerekir. Bu yer bir **e-posta hedefidir** — bir kez kurduğunuz ve kampanyalar genelinde yeniden kullandığınız, kaydedilmiş bir ad, URL ve türden oluşur.

Bir kampanya tam olarak bir hedefe işaret eder ve e-postalarının her tıklanabilir öğesi oraya yönlendirir: CTA düğmesi, logo ve hero görseli. Bunlar [analizlerde](mail-analytics) ayrı ayrı kaydedilir, ancak aynı adresi paylaşırlar.

## Hedef türleri \{#destination-types\}

Kampanyanızın amacı, hedef türünü belirler. Hedef türünü oluşturduktan sonra değiştiremezsiniz.

| Tür | Uyumlu kampanyalar | Alıcıyı nereye götürür | URL nereden gelir |
| --- | --- | --- | --- |
| **Web Paywall** | Her pazarlama kampanyası ve [çift onay](mail-double-opt-in) | Tarayıcıda bir ödeme sayfası; buradaki satın almalar App Store veya Google Play işlemleri değil, web ödemeleridir. | Adapty Mail tarafından oluşturulur ya da kendi barındırdığınız bir paywall'dan yapıştırılır. [Ödeme kurulumu](mail-checkout) her iki yöntemi de kapsar. |
| **Deep Link** | Uygulama aktivasyonu | Seçtiğiniz bir ekranda uygulamanız. Uygulama yüklü değilse mağaza listeniz. | OneLink, Branch veya Firebase gibi bağlantı sağlayıcınızdan yapıştırılır. |
| **Cancellation Page** | İptal sayfası kampanyası | Kendi hesap sayfanız ya da faturalandırma sağlayıcınızın portalı; aboneler burada aboneliğini inceleyebilir, değiştirebilir veya iptal edebilir. | Kendi sitenizden veya faturalandırma sağlayıcınızdan yapıştırılır. |

:::note
Herhangi bir hedef URL, HTTPS kullandığı sürece geçerlidir. Dolayısıyla bir **Cancellation Page**, yalnızca bir web sayfası değil, uygulamanızı açan bir evrensel bağlantı da olabilir. Bu önemlidir çünkü App Store ve Google Play abonelikleri, sizin barındırdığınız bir sayfada değil, mağazada iptal edilir.
:::

### İşlemsel kampanyalar için hedefler \{#destinations-for-transactional-campaigns\}

Adapty Mail'in üç işlemsel kampanyası vardır:

- **Double opt-in** — [giriş noktanızdan](mail-entry-points) yeni bir profil geldiğinde tetiklenir. Düğmesi, Adapty Mail'in onay sayfasını açar. Alıcı onayladıktan sonra web paywall'unuza yönlendirilir; bu nedenle bu kampanyanın bir web paywall'una ihtiyacı vardır.
- **App activation** — bir satın alma işleminin ardından tetiklenir ve alıcıyı uygulamanıza yönlendirir.
- **Cancellation page** — bir satın alma işleminin ardından tetiklenir ve alıcıya abonelik kontrollerini sunar.

Bir kampanya oluşturduğunuzda, boş bir **Email Destination** açılır menüsü, henüz bu türde bir destination'ınız olmadığı anlamına gelir. **Create** bağlantısı, ilgili formu açar.

## Bir destination oluşturma \{#create-a-destination\}

1. **Email Destinations** bölümüne gidin ve kampanyanızın ihtiyaç duyduğu türü seçin.
2. **Create** düğmesine tıklayın.
3. Destination'a bir **Name** verin — bunu bir kampanyaya eklerken bu adla seçeceksiniz.
4. **URL** alanını doldurun. HTTPS kullanması zorunludur.
5. Alıcıya göre değişen değerler için [yer tutucular](#placeholders) ekleyin.
6. URL'de `{response.<key>}` yer tutucusu kullanılıyorsa **Advanced** bölümünün altına bir [**Hook URL**](#hooks) ekleyin.
7. **Save** düğmesine tıklayın.

Bir destination'ı kampanyaya eklediğinizde —taslak kampanya olsa bile— destination ayarları salt okunur hale gelir. Kampanyayı başka bir yere göndermek için ikinci bir destination oluşturun.

## Placeholder'lar \{#placeholders\}

Placeholder'lar, hedef URL'nizi her kullanıcı için kişiselleştirir. Bunlar olmadan sayfanız kimin geldiğini anlayamaz. Adapty Mail, placeholder'ları alıcılara özgü değerlerle değiştirir.

| Placeholder | Neye karşılık gelir |
| --- | --- |
| `{email}` | Alıcının e-posta adresi. |
| `{adapty.external_profile_id}` | [Adapty entegrasyonundan](mail-collect-emails) gelen verilere ait profil kimliği. |
| `{funnelfox.external_profile_id}` | [FunnelFox](mail-funnelfox) entegrasyonundan gelen verilere ait profil kimliği. |
| `{custom.external_profile_id}` | [Adapty Mail API](mail-send-data-via-api) üzerinden gönderdiğiniz kullanıcı kimliği. |
| `{scheduled_email_id}` | Bağlantıyı içeren e-postanın kimliği. |
| `{custom_attribute.<key>}` | Alıcının profilindeki herhangi bir özel özellik. Anahtarı kendiniz belirleyin — `{custom_attribute.plan}`. |
| `{response.<key>}` | Tıklama anında kendi endpoint'inizin döndürdüğü bir değer. Ayrıntılar için [Hook'lar](#hooks) bölümüne bakın. |

- Alıcının değer atanmamış olduğu bir yer tutucu boş dizeye dönüşür, dolayısıyla sayfanıza hiçbir zaman ham metin olarak ulaşmaz.
- Özel özellik ve hook değerleri yüzde kodlamalı (percent-encoded) olduğundan, `&` içeren bir değer URL'yi ikiye bölmez.
- Adapty Mail'in tanımadığı bir yer tutucu kaydetme işlemini engeller ve hata mesajı hem reddedilen değeri hem de kabul edilenleri belirtir. `{emial}` gibi bir yazım hatası, alıcının tarayıcısına ulaşmak yerine burada yakalanır.

## Hook'lar \{#hooks\}

`{response.<key>}` yer tutucusu, kendi endpoint'inizden gelen bir değer için alan ayırır. Yaygın kullanım senaryoları arasında tek kullanımlık bir oturum açma token'ı veya bir oturum imzası yer alır. Bu yer tutucuyu yapılandırmak için **Advanced** altında yeni bir **Hook URL** oluşturun — aksi takdirde URL kaydedilemez.

Nasıl çalışır:

1. Alıcı e-postadaki bir bağlantıya tıklar.
2. Adapty Mail, **Hook URL**'nize alıcıya ait yer tutucuları doldurulmuş şekilde bir GET isteği gönderir. Beş saniye bekler ve yalnızca bir deneme yapar.
3. Endpoint'iniz imzayı doğrular ve düz bir JSON nesnesiyle yanıt verir.
4. Adapty Mail, her `{response.<key>}` alanını aynı addaki anahtarla doldurur. Döndürmediğiniz anahtarlar yer tutucusu olarak kalır.
5. Hook yanıt verip vermediğinden bağımsız olarak alıcı sayfanıza ulaşır.

### İstek

Hook URL'si, geri kalan yer tutucularınızı endpoint'inize iletir. Kullanıcıyı tanımlamak için bu yer tutucuları kullanın. İki başlık çağrıyı doğrular:

| Başlık | Değer |
| --- | --- |
| `X-Adapty-Mail-Timestamp` | İsteğin yapıldığı zamandaki Unix zamanı (saniye cinsinden). |
| `X-Adapty-Mail-Signature` | **Settings** > **Project** bölümündeki **Secret key** ile anahtarlanmış `<timestamp>.<url>` ifadesinin Hex HMAC-SHA256'sı. |

Yanıt vermeden önce her ikisini de doğrulayın. İmzasız bir endpoint, yetkisiz kullanıcılara hassas bilgiler verebilir. Gerçek bir tıklama olamayacak kadar eski olan zaman damgasını reddedin:

```
expected = hmac_sha256(
    key=project_secret_key,
    message=f"{timestamp}.{full_request_url}",
).hexdigest()
```

### Yanıt

Düz bir JSON nesnesi. Her anahtar, aynı isimli `{response.<key>}` alanını doldurur:

```json
{ "checkout_token": "ct_9f2a…", "plan": "annual" }
```

Dizeler, sayılar ve boolean değerlerin hepsi string'e dönüştürülür. İç içe nesneler ve diziler ise bir URL'ye yerleştirilemeyeceğinden atılır.

## Tıklamadan sonra ne olur \{#what-happens-after-the-click\}

Adapty Mail değerleri doldurur, varsa hook'u çağırır, tıklamayı kaydeder ve alıcıyı sayfanıza yönlendirir.

Sizin göreviniz ziyaretçiyi tanımlamak, ödemeyi almak ve satın almayı Adapty'e bildirmektir. Paywall kurulumu için [Ödeme sayfası kurulumu](mail-checkout#what-your-page-has-to-do) bölümüne, satın alma attribution'ı için ise [Kampanya analitiği](mail-analytics) bölümüne bakın.