Adapty Mail API aracılığıyla e-posta ve işlem gönderme
Adapty Mail API, kullanıcı profillerini ve işlemleri Adapty SDK üzerinden yönlendirmeye gerek kalmadan doğrudan sunucunuzdan Adapty Mail’e göndermenizi sağlar. Şu durumlarda kullanabilirsiniz:
- Adapty Mail’de henüz bir tabanınız yokken abone ekleyin.
- Diğer uygulamalarınızdaki abone tabanını yeniden kullanın.
- Adapty Mail’i sunucudan sunucuya besleyin; arka ucunuz gerçeğin kaynağı olsun.
API mi SDK mi? Çoğu uygulama, e-postaları ve satın almaları otomatik olarak toplayan Adapty SDK aracılığıyla Adapty Mail’e veri gönderir — bkz. Adapty’yi Adapty Mail’e Bağlama. API’yi şu durumlarda tercih edin: uygulamanızda Adapty SDK yoksa, veriler zaten sunucunuzda bulunuyorsa veya başka bir kaynaktan aboneleri içe aktarıyorsanız. API’yi başka bir giriş noktasıyla birlikte de kullanabilirsiniz: Adapty Mail, gelen verileri customer_user_id ve e-posta adresine göre eşleştirir ve kişi başına tek bir profil tutar.
Başlamadan önce
Veri göndermeden önce Adapty Mail kurulumunu tamamlayın — bu, bir kampanya, segment (gerekiyorsa), web paywall ve başlatılmış bir flow anlamına gelir. Adapty Mail, yalnızca bu kurulum tamamlandıktan sonra oluşturulan profillere e-posta gönderir; daha önce gönderdiğiniz profiller hiçbir e-posta almaz. Önce Adapty Mail ile başlarken adımlarını takip edin, ardından buraya dönün.
API anahtarınıza ve temel URL’nize de ihtiyacınız olacak:
- Gizli API anahtarı: Adapty Mail’de Settings bölümüne gidin ve gizli API anahtarınızı kopyalayın. Anahtar projeye özgüdür; bu sayede API hangi projeye ait olduğunu bilir.
- Temel URL: Tüm istekler
https://api-mail.adapty.ioadresine gönderilir. - Kimlik doğrulama: Anahtarı Authorization başlığında
Bearer {your_secret_api_key}biçiminde gönderin.
E-postaları toplayıp Adapty Mail’e göndermeden önce kullanıcılardan açık rıza alın. GDPR, CAN-SPAM ve faaliyet gösterdiğiniz pazarlardaki benzer düzenlemelere uyum sağlamak sizin sorumluluğunuzdadır.
Kullanıcı profilleri gönderme
Profil, kullanıcının e-posta adresini ve özelliklerini içerir. Profil oluşturmak veya güncellemek için /api/v1/profile/save/ adresine POST isteği gönderin.
Üç alan zorunludur:
- Uygulamanıza veya backend’inize ait sabit bir
external_profile_id - Adapty Mail’in kampanyaları iletmek için kullandığı
email external_created_at— segment’lerde kullanabileceğiniz kullanıcı oluşturma zamanı
Her zaman sabit bir external_profile_id gönderin; anonim veya kuruluma özel bir değer kullanmayın. Adapty Mail, e-postaları, tıklamaları ve satın almaları tek bir profile bağlamak için bu alanı kullanır.
Aynı kişi Adapty SDK üzerinden de Adapty Mail’e ulaşıyorsa, customer_user_id ekleyin — Adapty.identify() fonksiyonuna ilettiğiniz kendi kullanıcı kimliğiniz. Adapty Mail bunu eşleştirerek her iki kaynağı tek bir profil altında tutar; böylece kişiye iki kez e-posta gönderen bir kopya profil oluşturulmaz.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/save/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"external_profile_id": "user_12345",
"external_created_at": "2026-06-01T10:30:00Z",
"email": "jane@example.com",
"country": "US",
"custom_attributes": {
"plan": "trial"
}
}'
Kullanılabilir her alan için Profili kaydet referansına bakın.
İşlem olaylarını gönder
never purchased flow’unda kullanıcılara ulaşmak için e-posta içeren bir profil yeterlidir. Diğer tüm flow’lardaki kullanıcılar için işlem olayları da gereklidir.
never purchased dışındaki tüm flow’lar satın alma geçmişiyle çalışır. Satın alma, yenileme ve iptalleri işlerken profil işlem olaylarını gönderin; böylece Adapty Mail kullanıcıyı doğru flow’a yerleştirebilir. İşlem olayları aynı zamanda gelir attribution’ını da destekler. Yalnızca never purchased kampanyaları yürütüyorsanız bu adımı atlayabilirsiniz.
Bir işlemi kaydetmek için /api/v1/profile/transaction-event/save/ adresine POST isteği gönderin. Adapty Mail’in işlemi doğru kullanıcıyla ilişkilendirebilmesi için profille birlikte gönderdiğiniz external_profile_id değerini kullanın.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/transaction-event/save/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"event_type": "subscription_started",
"event_id": "evt_abc123",
"event_datetime": "2026-06-10T14:20:05Z",
"external_profile_id": "user_12345",
"store": "app_store",
"store_product_id": "premium_monthly",
"store_transaction_id": "1000000123456789",
"store_original_transaction_id": "1000000123456789",
"purchased_at": "2026-06-10T14:20:00Z",
"originally_purchased_at": "2026-06-10T14:20:00Z",
"price_usd": "9.99"
}'
Save transaction event referansına her mevcut alan için bakın.
Bir profil oluşturulmadan önce transaction gönderebilirsiniz. Adapty Mail, etkinliği bağlanmamış olarak saklar ve ardından aynı external_profile_id’yi içeren bir sonraki kaydetme işleminde onu profile bağlar.
Bir profili silme
Silinme hakkı talebini yerine getirmek için profilin tanımlayıcılarını /api/v1/profile/delete/ adresine gönderin. Adapty Mail, profilin kişisel verilerini siler ve zamanlanmış e-postalarını iptal eder.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/delete/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"external_profile_id": "user_12345"
}'
Profili external_profile_id, customer_user_id veya email ile tanımlayın — en az birini gönderin. Silme işlemi kalıcıdır: aynı tanımlayıcıları taşıyan sonraki bir kayıt, profili yeniden oluşturmaz.
Yeniden denemeyi güvenli kılmak için profili external_profile_id veya customer_user_id ile tanımlayın. Yalnızca email ile yapılan bir silme işlemini tekrarlamak 404 döndürür; çünkü silme, kayıtlı adresi temizler. Ayrıntılar için Profil sil referansına bakın.
Olaylarınızı flow’larla eşleştirin
Yaşanan olayı temsil eden event_type değerini gönderin. Adapty Mail, profilin durumunu olay geçmişinden çıkarır ve onu uygun flow’a yönlendirir.
event_type | Ne zaman gönderilir | Flow |
|---|---|---|
subscription_started | Bir kullanıcı yeni bir abonelik başlattığında. | Aktif — yeniden etkileşim flow’u yok |
subscription_renewed | Bir abonelik otomatik olarak yenilendiğinde. | Aktif — yeniden etkileşim flow’u yok |
subscription_renewal_reactivated | Bir kullanıcı otomatik yenilemeyi yeniden açtığında. | Aktif — yeniden etkileşim flow’u yok |
non_subscription_purchase | Bir kullanıcı tek seferlik satın alma yaptığında. | Aktif — yeniden etkileşim flow’u yok |
subscription_renewal_cancelled | Bir kullanıcı otomatik yenilemeyi kapattığında (süre dolana kadar hâlâ aktif). | Yenileme iptal edildi |
billing_issue_detected | Yenileme ödemesi başarısız olduğunda. | Ödeme sorunu |
entered_grace_period | Ödeme başarısız olsa da kullanıcı hâlâ ek süre içindeyken. | Ödeme sorunu |
subscription_expired | Abonelik sona erip erişim bittiğinde. | Süresi doldu |
subscription_refunded | Bir abonelik satın alımı iade edildiğinde. | İade edildi |
non_subscription_purchase_refunded | Tek seferlik satın alma iade edildiğinde. | İade edildi |