---
title: "Superwall'dan Geçiş"
description: "Superwall'dan Adapty'ye geçmek için her SDK çağrısını ve kavramını eşleştiren adım adım rehber."
---

Superwall'dan Adapty'ye geçişlerin büyük çoğunluğu yaklaşık iki saat sürer. SDK'yı değiştirirsiniz, mağaza sunucu bildirimlerini Adapty'ye yönlendirirsiniz ve yeni bir uygulama sürümü yayınlarsınız. Ücretli aboneleriniz erişimlerini korur — Adapty, ilk açılışta App Store ve Google Play makbuzlarından bunu otomatik olarak geri yükler.

:::info
Aboneleriniz otomatik olarak geçiş yapacak
Aboneliği daha önce etkinleştirmiş tüm kullanıcılar, uygulamanızın Adapty SDK'sını içeren yeni sürümünü açar açmaz Adapty'ye aktarılır. Abonelik durumu doğrulaması ve premium erişim otomatik olarak geri yüklenir.
:::
## Bu kılavuz nasıl düzenlenmiştir \{#how-this-guide-is-organized\}

Geçiş altı adımdan oluşur:

1. [Superwall kavramlarını Adapty ile eşleştirin](#map-your-superwall-concepts-to-adapty) _(5 dakika)_
2. [Adapty SDK'yı yükleyin](#install-the-adapty-sdk) _(15 dakika)_
3. [SDK çağrılarını değiştirin](#replace-sdk-calls) _(1 saat)_
4. [App Store ve Google Play sunucu bildirimlerini değiştirin](#switch-app-store-and-google-play-server-notifications) _(5 dakika)_
5. [Test edin ve yayına alın](#test-and-release) _(30 dakika)_
6. [(İsteğe bağlı) Geçmiş verileri içe aktarın](#optional-import-historical-data)
## Superwall kavramlarınızı Adapty'ye eşleyin \{#map-your-superwall-concepts-to-adapty\}

Superwall kavramlarının büyük çoğunluğunun Adapty'de doğrudan bir karşılığı vardır:
| Superwall            | Adapty                                            | Ne değişiyor                                                                 |
| :------------------- | :------------------------------------------------ | :--------------------------------------------------------------------------- |
| Campaign             | [Placement](placements) + [Audience](audience)    | Kampanya mantığı bir placement (konum) ve bir kitle (kural) olarak ikiye ayrılır. |
| Placement            | [Placement](placements)                           | Aynı kavram, aynı isim.                                                      |
| Audience filter      | [Audience](audience)                              | Kural kümeleri bir placement içinde bulunur.                                 |
| Entitlement          | [Access level](access-level)                      | Adlandırılmış tanımlayıcı (örneğin, `premium`).                              |
| WebView paywall      | [Paywall Builder paywall](adapty-paywall-builder) | Adapty SDK tarafından `WKWebView` yerine doğrudan render edilir.              |
| `PurchaseController` | Yerleşik                                          | Implement edilecek protokol yok — satın almaları Adapty yönetir.             |
| Feature gating       | [Access level](access-level) kontrolü             | `profile.accessLevels["premium"]?.isActive` kontrolü yapılır.                |
İki zihinsel dönüşüm, koda dokunmadan önce değinmeye değer:
- **Getirme ve sunum ayrı adımlardır**: Superwall'un `register` fonksiyonu paywallı getirir, kampanyayı değerlendirir ve arayüzü tek bir çağrıda sunar. Adapty bu adımları birbirinden ayırır — paywallı getirir, yapılandırmasını alır ve ardından sunum yaparsınız. Bu yaklaşım birkaç satır daha kod gerektirse de yapılandırmaları önceden yüklemenize, özel bir yükleme durumu göstermenize ya da kendi mantığınıza göre sunumu iptal etmenize olanak tanır.
- **Abonelik durumu access level bazındadır**: Superwall tek bir `subscriptionStatus` published property'si sunar. Adapty ise adlandırılmış access level'lardan oluşan bir [`AdaptyProfile`](https://swift.adapty.io/documentation/adapty/adaptyprofile) döndürür; bu sayede bir kullanıcı `sports` ve `science` access level'larını aynı anda bağımsız olarak sahip olabilir. Senkron okumalar için her view yüklendiğinde `getProfile()` çağırmak yerine `AdaptyDelegate`'ten profili önbelleğe alın.
## Adapty SDK'yı Yükleyin \{#install-the-adapty-sdk\}

Platformunuz için Adapty SDK'yı yükleyin — [iOS](sdk-installation-ios), [Android](sdk-installation-android), [React Native](sdk-installation-reactnative), [Flutter](sdk-installation-flutter), [Kotlin Multiplatform](sdk-installation-kotlin-multiplatform), [Unity](sdk-installation-unity) veya [Capacitor](sdk-installation-capacitor) — ve aynı zamanda SuperwallKit'i projenizden kaldırın.
## SDK çağrılarını değiştirme \{#replace-sdk-calls\}

Entegrasyonunuzun her bölümünü gözden geçirip Superwall çağrılarını Adapty eşdeğerleriyle değiştirin. Her alt bölümün sonundaki bağlantılar yedi platform SDK'sını kapsar — uygulamanıza uyan bağlantıyı takip edin.
### SDK'yı Başlatın \{#initialize-the-sdk\}

`Superwall.configure` yerine `Adapty.activate` kullanın.

Platform için kurulum kılavuzuna bakın — [iOS](sdk-installation-ios), [Android](sdk-installation-android), [React Native](sdk-installation-reactnative), [Flutter](sdk-installation-flutter), [Kotlin Multiplatform](sdk-installation-kotlin-multiplatform), [Unity](sdk-installation-unity) veya [Capacitor](sdk-installation-capacitor).
### Kullanıcıları tanımlayın ve çıkış yaptırın \{#identify-and-log-out-users\}

`Superwall.shared.identify` yerine `Adapty.identify`, `Superwall.shared.reset` yerine `Adapty.logout` kullanın. Her iki SDK da ilk açılışta anonim bir profil oluşturur; bu nedenle bu çağrılara yalnızca kullanıcı oturum açtığında veya kapattığında ihtiyaç duyulur. Kullanıcıyı tanımladıktan sonra paywall'ları yeniden çekin — yeni kullanıcı farklı bir kitleye denk gelebilir.
Platformunuza ait kimlik belirleme kılavuzuna bakın — [iOS](identifying-users), [Android](android-identifying-users), [React Native](react-native-identifying-users), [Flutter](flutter-identifying-users), [Kotlin Multiplatform](kmp-identifying-users), [Unity](unity-identifying-users) veya [Capacitor](capacitor-identifying-users).
### Paywall'ı getir ve göster \{#fetch-and-present-a-paywall\}

`Superwall.shared.register` yerine iki adımlı bir akış kullanın: `Adapty.getPaywall` ile paywall'ı getirin, `AdaptyUI.getPaywallConfiguration` ile görünüm konfigürasyonunu yükleyin ve ardından gösterin.

Dikkat edilmesi gereken iki farklılık:
- **Özellik kilitleme `feature:` closure'ının yerini alır**: Paywall kapandıktan sonra, döndürülen profildeki (veya `Adapty.getProfile` üzerindeki) etkin access level'ı kontrol edin ve oradan dallanın.
- **Paywalllar SDK tarafından render edilir**: Superwall, paywallları bir `WKWebView` içinde render eder. Adapty ise Paywall Builder paywalllarını native olarak render eder — fontlar, ürün bilgileri ve butonlar SDK tarafından çizilir.
Platformunuza özel paywall hızlı başlangıç kılavuzuna bakın — [iOS](ios-quickstart-paywalls), [Android](android-quickstart-paywalls), [React Native](react-native-quickstart-paywalls), [Flutter](flutter-quickstart-paywalls), [Kotlin Multiplatform](kmp-quickstart-paywalls), [Unity](unity-quickstart-paywalls) veya [Capacitor](capacitor-quickstart-paywalls).
### Abonelik durumunu kontrol etme \{#check-subscription-status\}

`Superwall.shared.subscriptionStatus` yerine profildeki access level adını kullanarak kontrol yapın: `profile.accessLevels["premium"]?.isActive`. Değişiklikleri `@Published` property pattern yerine `AdaptyDelegate.didLoadLatestProfile(_:)` üzerinden takip edin; senkron okumalar için profili kendi tarafınızda önbelleğe alın.
Platformunuza ait abonelik durumu kılavuzuna bakın — [iOS](ios-check-subscription-status), [Android](android-check-subscription-status), [React Native](react-native-check-subscription-status), [Flutter](flutter-check-subscription-status), [Kotlin Multiplatform](kmp-check-subscription-status), [Unity](unity-check-subscription-status) veya [Capacitor](capacitor-check-subscription-status).
### Satın alma ve geri yükleme işlemlerini yönetme \{#handle-purchases-and-restores\}

Paywall Builder kullanıldığında, her iki SDK de satın almaları paywall arayüzü içinde otomatik olarak işler — **bu adımı atlayabilirsiniz**.

Özel paywall'lar için Superwall, bir `PurchaseController` implementasyonu gerektirir. Adapty'de böyle bir zorunluluk yoktur: `PurchaseController.purchase` yerine `Adapty.makePurchase`, `PurchaseController.restorePurchases` yerine ise `Adapty.restorePurchases` kullanın. SDK doğrulamayı kendi başına halleder.
Platformunuza ait özel paywall hızlı başlangıç kılavuzuna göz atın — [iOS](ios-quickstart-manual), [Android](android-quickstart-manual), [React Native](react-native-quickstart-manual), [Flutter](flutter-quickstart-manual), [Kotlin Multiplatform](kmp-quickstart-manual), [Unity](unity-quickstart-manual) veya [Capacitor](capacitor-quickstart-manual).
### Kullanıcı özelliklerini ayarlama \{#set-user-attributes\}

`Superwall.shared.setUserAttributes` yerine `Adapty.updateProfile` kullanın.

Platformunuza göre kullanıcı özellikleri kılavuzuna bakın — [iOS](setting-user-attributes), [Android](android-setting-user-attributes), [React Native](react-native-setting-user-attributes), [Flutter](flutter-setting-user-attributes), [Kotlin Multiplatform](kmp-setting-user-attributes), [Unity](unity-setting-user-attributes) veya [Capacitor](capacitor-setting-user-attributes).
## App Store ve Google Play sunucu bildirimlerini değiştirin \{#switch-app-store-and-google-play-server-notifications\}

Mağaza sunucu bildirimlerinizi Adapty'ye yönlendirin. Adapty bunlar olmadan da çalışır, ancak analitik, üçüncü taraf entegrasyonlar ve A/B testi metrikleri bu bildirimlere bağlıdır:

- **App Store**: [App Store sunucu bildirimlerini etkinleştirme](enable-app-store-server-notifications) adımlarını izleyin.
- **Google Play**: [Gerçek zamanlı geliştirici bildirimlerini etkinleştirme](enable-real-time-developer-notifications-rtdn) adımlarını izleyin.
Sunucu tarafı geçişi sırasında Superwall ve Adapty'yi paralel çalıştırmak istiyorsanız, [ham olay iletmeyi](enable-app-store-server-notifications#raw-events-forwarding) kullanın — Adapty, yeni entegrasyonu doğrularken mağaza olaylarını Superwall'a geri iletir.
## Test et ve yayınla \{#test-and-release\}

Yayınlamadan önce her maddeyi kontrol et:

- [x] Adapty Kontrol Paneli'ni yapılandırdı (ürünler, paywalls, placement'lar, access level'lar)
- [x] Adapty SDK'sını kurdu
- [x] Superwall SDK çağrılarını Adapty karşılıklarıyla değiştirdi
- [x] App Store ve Google Play sunucu bildirimlerini Adapty'ye yönlendirdi
- [ ] Sandbox satın alımı yaptı
- [ ] Yeni bir uygulama sürümü gönderdi

Son bir doğrulama için [yayın kontrol listesini](release-checklist) gözden geçir.
## (İsteğe bağlı) Geçmiş verileri içe aktarın \{#optional-import-historical-data\}

Superwall, abonelik durumunuzun sahibi değildir — bu bilgi App Store ve Google Play'e aittir. Adapty, ilk açılışta makbuzları doğrular; bu nedenle ücretli kullanıcılar herhangi bir içe aktarma işlemi olmadan erişimlerini korur.

Geçmiş işlemlerin Adapty analizlerine yansıtılmasını istiyorsanız [Adapty'ye geçmiş verileri içe aktarın](importing-historical-data-to-adapty) bölümünü takip edin. SDK'nın güncel satın alma fiyatlarını toplaması için SDK sürümünden sonra en az bir hafta bekleyin.
## SSS \{#faq\}
### Uygulamayı güncellemeyen abonelere ne olur? \{#what-happens-to-subscribers-who-dont-update-the-app\}

Kullanıcıların büyük çoğunluğu uygulamalarını geceleri otomatik olarak günceller, dolayısıyla eski sürümde kalan kullanıcı oranı hızla düşer. Eski sürümü kullanan aboneler erişimlerini doğrudan App Store veya Google Play üzerinden sürdürür — güncellemeyi zorlamana gerek yok.
### Superwall kampanya kitlem aktarılıyor mu? \{#do-my-superwall-campaign-audiences-carry-over\}

Hayır. Superwall kitle filtreleri ile Adapty kitleleri farklı kontrol panellerinde yapılandırılır ve farklı tanımlayıcılar kullanır. Hedefleme ayarlarını Adapty [placement](placements)'larındaki [kitle](audience) olarak yeniden oluşturman gerekiyor. Çoğu uygulama bir veya iki placement kullanır (onboarding ve genel bir uygulama içi tetikleyici), dolayısıyla yeniden yapılandırma genellikle kısa sürer.
### Adapty'nin `getPresentationResult` karşılığı var mı? \{#does-adapty-have-an-equivalent-to-getpresentationresult\}

Tek bir çağrı olarak değil. Bir placement'ın paywall gösterip göstermeyeceğini kontrol etmek için `Adapty.getPaywall(placementId:)` çağrısı yapın ve sonuca göre dallanın. Çağrı başarılı olursa, o kullanıcının kitlesi için bir paywall atanmış demektir. Hiçbir paywall yapılandırılmadığı için başarısız olursa, gösterimi atlayın ve yedek mantığınızı çalıştırın.