Adapty Unity SDK'yı v. 4.0'a Geçirin
Adapty Unity SDK 4.0 (beta), flow’ları tanıtır ve paywall API’lerini buna göre yeniden adlandırır. Yeni API’ler hem yeni Flow Builder hem de mevcut Paywall Builder ile çalışır — Adapty Kontrol Paneli tarafında herhangi bir kurulum değişikliği gerekmez.
Hızlı referans
| v3 | v4 |
|---|---|
Adapty.GetPaywall(placementId, locale, ...) | Adapty.GetFlow(placementId, ...) |
Adapty.GetPaywallForDefaultAudience(placementId, locale, ...) | Adapty.GetFlowForDefaultAudience(placementId, ...) |
Adapty.GetPaywallProducts(paywall, ...) | Adapty.GetPaywallProducts(flow, ...) |
Adapty.LogShowPaywall(paywall, ...) | Adapty.LogShowFlow(flow, ...) |
AdaptyPaywall | AdaptyFlow |
AdaptyUI.CreatePaywallView(paywall, ...) | AdaptyUI.CreateFlowView(flow, ...) |
AdaptyUICreatePaywallViewParameters | AdaptyUICreateFlowViewParameters |
AdaptyUIPaywallView | AdaptyUIFlowView |
AdaptyUI.PresentPaywallView(view, ...) / DismissPaywallView(view, ...) | AdaptyUI.PresentFlowView(view, ...) / DismissFlowView(view, ...) |
Adapty.SetPaywallsEventsListener(listener) | Adapty.SetFlowsEventsListener(listener) |
AdaptyPaywallsEventsListener | IAdaptyFlowsEventsListener |
AdaptyEventListener | IAdaptyEventListener |
AdaptyOnboardingsEventsListener | IAdaptyOnboardingsEventsListener |
PaywallViewDidPerformAction, PaywallViewDidAppear ve diğer PaywallView... geri çağırmaları | FlowViewDidPerformAction, FlowViewDidAppear ve diğer FlowView... geri çağırmaları |
PaywallViewDidFailRendering | FlowViewDidReceiveError |
Adapty.SetFallbackPaywalls(...) (v3’te kullanımdan kaldırıldı) | kaldırıldı — Adapty.SetFallback(fileName, ...) kullanın |
Builder.SetIDFACollectionDisabled(...) (v3’te kullanımdan kaldırıldı) | kaldırıldı — Builder.SetAppleIDFACollectionDisabled(...) kullanın |
paywall.Products (AdaptyProductReference listesi) | kaldırıldı — ProductIdentifiers veya VendorProductIds kullanın ya da tam ürünler için GetPaywallProducts(flow) çağırın |
AdaptyProductReference | genel tür olarak kaldırıldı — bkz. Veri modeli |
paywall.RemoteConfigString | kaldırıldı — flow.RemoteConfig?.Data kullanın |
AdaptyPaywallProduct adını korur — ürünler hâlâ bir flow’a aittir ve GetPaywallProducts de adını korur, artık bir AdaptyFlow alır. GetFlow ve GetFlowForDefaultAudience metodları artık locale parametresi almaz. Satın alma ve profil API’leri (MakePurchase, RestorePurchases, GetProfile, Identify, UpdateProfile) ve SetFallback aracılığıyla yedekler değişmeden kalmıştır. Onboarding metodları hâlâ çalışır ancak kullanım dışı bırakılmıştır — bkz. Onboarding API kullanım dışı bırakma. Bazı varsayılan davranışlar değişti — bkz. Varsayılan davranış değişiklikleri.
Kurulum
v4.0 bir ön sürüm olduğundan, tam beta etiketini sabitleyin. Unity Package Manager üzerinden kurmak için Git URL’sine etiketi ekleyin:
https://github.com/adaptyteam/AdaptySDK-Unity.git?path=/Packages/com.adapty.unity-sdk#4.0.0-beta.1
Unity paketi üzerinden kurulum yapıyorsanız, adapty-unity-plugin-4.0.0-beta.1.unitypackage dosyasını 4.0.0-beta.1 sürümünden indirin. Tam kurulum için Adapty SDK’yı Yükle bölümüne bakın.
v4 ile birlikte iki derleme kurulumu değişikliği geliyor:
- iOS bağımlılıkları Swift Package Manager’a geçiyor. Yerel Adapty iOS SDK 4.0, bir CocoaPods pod’u yerine uzak bir Swift paketi olarak tanımlanıyor. External Dependency Manager’ı 1.2.188 veya üstü sürüme güncelleyin — daha eski sürümler Swift Package Manager bağımlılıklarını desteklemez. CocoaPods adımları (
iOS Resolver -> Install Cocoapods,Unity-iPhone.xcworkspace’i açma) artık geçerli değildir. - iOS deployment target 15.0 veya üzeri olmalıdır. Unity Editor’daki yeni bir build doğrulayıcı, target daha düşükse iOS build’ini durdurur.
Altta yatan yerel Adapty SDK’ları her iki platformda da otomatik olarak 4.x sürümüne güncellenir; başka bir derleme değişikliğine gerek yoktur.
Flow’ları çekme
GetPaywall → GetFlow
Döndürülen tür AdaptyPaywall’dan AdaptyFlow’a değişir ve locale parametresi kaldırılır — bir flow render ettiğinizde, locale otomatik olarak belirlenir; özel paywalllar için tüm locale’ler flow.RemoteConfigs içinde döndürülür:
- Adapty.GetPaywall("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
+ Adapty.GetFlow("YOUR_PLACEMENT_ID", (flow, error) => {
if (error != null) {
// handle the error
return;
}
- // use the paywall
+ // use the flow
});
GetPaywallForDefaultAudience aynı şekilde yeniden adlandırıldı:
- Adapty.GetPaywallForDefaultAudience("YOUR_PLACEMENT_ID", "en", (paywall, error) => { /* ... */ });
+ Adapty.GetFlowForDefaultAudience("YOUR_PLACEMENT_ID", (flow, error) => { /* ... */ });
GetPaywallProducts(paywall) → GetPaywallProducts(flow)
GetPaywallProducts adını korur ancak artık bir AdaptyFlow alır:
- Adapty.GetPaywallProducts(paywall, (products, error) => {
+ Adapty.GetPaywallProducts(flow, (products, error) => {
if (error != null) {
// handle the error
return;
}
// use the products
});
Veri modeli
GetFlow, bir AdaptyPaywall yerine AdaptyFlow döndürür ve nesne yapısı değişti:
v3 AdaptyPaywall özelliği | v4 AdaptyFlow özelliği | İşlem |
|---|---|---|
RemoteConfig (tekil, null olabilir) | RemoteConfigs (liste) | Bir flow, yapılandırılmış her dil için ayrı bir remote config taşır. flow.RemoteConfigs içinden kullanıcıya uyan olanı okuyun. flow.RemoteConfig kısayolu ilk girişi döndürür. |
| (yeni) | Paywalls (AdaptyFlowPaywall listesi) | Her giriş, flow içindeki bir paywall varyasyonunu temsil eder; kendi Name, VariationId ve ProductIdentifiers değerlerine sahiptir. Web paywall metotları bir AdaptyFlowPaywall alır — bkz. Web paywall metotları. |
ProductIdentifiers, VendorProductIds | korundu | AdaptyFlow üzerinde bu değerler, tüm paywall varyasyonlarındaki ürünleri bir araya getirir. Her varyasyon kendi ProductIdentifiers ve VendorProductIds değerlerini de sunar. Ürünleri çekmek için GetPaywallProducts(flow) çağrısını kullanmaya devam edin. |
HasViewConfiguration | kaldırıldı | Kodunuzdaki HasViewConfiguration kontrollerini kaldırın — bunun yerine CreateFlowView hata döndürür (bkz. Flow’ları görüntüleme). |
Products (AdaptyProductReference listesi) | kaldırıldı | AdaptyProductReference artık herkese açık değil; bununla birlikte taşıdığı PromotionalOfferId, WinBackOfferId ve AndroidOfferId değerleri de kaldırıldı. VendorProductId ve yalnızca Android’e özgü BasePlanId (v3’teki AndroidBasePlanId) içeren AdaptyProductIdentifier listesi olan ProductIdentifiers’ı kullanın — ya da fiyatlar ve tekliflerle birlikte tam AdaptyPaywallProduct nesnelerine ihtiyaç duyduğunuzda GetPaywallProducts(flow) çağırın. |
RemoteConfigString | kaldırıldı | Dizeyi doğrudan remote config’den okuyun: flow.RemoteConfig?.Data veya flow.RemoteConfigs içindeki ilgili giriş. |
| (yeni) | FlowVersionId (null olabilir) | Flow’un sürüm tanımlayıcısı; mevcut olmadığında null döner. |
AdaptyPaywallProduct bir alan kazanır: FlowProductId, ürünün flow içindeki tanımlayıcısıdır; bir flow’a ait olmayan ürünler için null değerini alır.
Web paywall metodları
OpenWebPaywall ve CreateWebPaywallUrl isimlerini korur, ancak paywall argümanı artık flow.Paywalls içindeki varyantlardan biri olan bir AdaptyFlowPaywall alır. Bunun yerine yine de AdaptyPaywallProduct geçirebilirsiniz:
- Adapty.OpenWebPaywall(paywall, AdaptyWebPresentation.ExternalBrowser, (error) => { /* ... */ });
+ var flowPaywall = flow.Paywalls.FirstOrDefault();
+ if (flowPaywall != null) {
+ Adapty.OpenWebPaywall(flowPaywall, AdaptyWebPresentation.ExternalBrowser, (error) => { /* ... */ });
+ }
Flow görüntülemelerini takip etme
LogShowPaywall → LogShowFlow
LogShowPaywall, LogShowFlow olarak yeniden adlandırıldı ve artık bir AdaptyFlow alıyor. Olay hâlâ aynı varyasyona karşı kaydedildiğinden, mevcut dönüşüm hunisi ve A/B testi metrikleri kontrol panelinde herhangi bir değişiklik yapılmadan çalışmaya devam eder.
- Adapty.LogShowPaywall(paywall, (error) => { /* ... */ });
+ Adapty.LogShowFlow(flow, (error) => { /* ... */ });
v3’te olduğu gibi, Flow Builder veya Paywall Builder tarafından oluşturulan flow’ları ya da paywall’ları görüntülerken bu metodu çağırmanıza gerek yoktur — Adapty bu görüntülemeleri otomatik olarak takip eder.
Flow’ları Görüntüleme
CreatePaywallView → CreateFlowView
Factory metodunu yeniden adlandırın ve AdaptyFlow’u iletin. Döndürülen view türü AdaptyUIPaywallView’dan AdaptyUIFlowView’a yeniden adlandırıldı, ancak metodları (Present, Dismiss) değişmedi ve isteğe bağlı parametreler nesnesi aynı alanları (LoadTimeout, PreloadProducts, CustomTags, CustomTimers, CustomAssets, ProductPurchaseParameters) yeni AdaptyUICreateFlowViewParameters adıyla korur, ayrıca iki yeni alan eklenmiştir — Locale ve EnableSafeAreaPaddings:
- AdaptyUI.CreatePaywallView(paywall, parameters, (view, error) => {
+ AdaptyUI.CreateFlowView(flow, parameters, (view, error) => {
if (error != null) {
// handle the error
return;
}
view.Present((error) => { /* handle the error */ });
});
CreateFlowView, flow’da yapılandırılmış bir görünüm yoksa hata döndürür — bu, v3’teki HasViewConfiguration kontrolünün yerini alır:
- if (paywall.HasViewConfiguration) {
- AdaptyUI.CreatePaywallView(paywall, null, (view, error) => { /* ... */ });
- }
+ AdaptyUI.CreateFlowView(flow, (view, error) => {
+ if (error != null) {
+ // the flow has no view configured, or view creation failed
+ return;
+ }
+ view.Present((error) => { /* handle the error */ });
+ });
Flow view tek kullanımlıktır: Dismiss çağrıldıktan sonra view yok edilir; flow’u tekrar göstermek için CreateFlowView fonksiyonunu tekrar çağırmanız gerekir.
Android güvenli alan dolguları
AdaptyUICreateFlowViewParameters, Android güvenli alan dolgularını çalışma zamanında kontrol eden EnableSafeAreaPaddings özelliğini ekler. iOS’ta yok sayılır ve varsayılan değeri true’dur:
var parameters = new AdaptyUICreateFlowViewParameters()
.SetEnableSafeAreaPaddings(false);
Olayları İşleme
Dinleyici arayüzleri artık C# I- ön eki kuralını takip ediyor ve eski takma adlar korunmuyor — bunları uyguladığınız her yerde AdaptyEventListener yerine IAdaptyEventListener, AdaptyOnboardingsEventsListener yerine ise IAdaptyOnboardingsEventsListener olarak yeniden adlandırın.
Flow events listener, AdaptyPaywallsEventsListener’dan IAdaptyFlowsEventsListener’a yeniden adlandırıldı; kayıt metodu SetPaywallsEventsListener’dan SetFlowsEventsListener’a, callback’ler ise PaywallView önekinden FlowView önekine değiştirildi. Mevcut handler gövdelerinde kod değişikliği gerekmez — sadece arayüz ve metotları yeniden adlandırın:
- public class MyListener : MonoBehaviour, AdaptyPaywallsEventsListener {
- public void PaywallViewDidFinishPurchase(
- AdaptyUIPaywallView view,
+ public class MyListener : MonoBehaviour, IAdaptyFlowsEventsListener {
+ public void FlowViewDidFinishPurchase(
+ AdaptyUIFlowView view,
AdaptyPaywallProduct product,
AdaptyPurchaseResult purchasedResult
) {
// custom logic after purchase
}
// ...
}
- Adapty.SetPaywallsEventsListener(myListener);
+ Adapty.SetFlowsEventsListener(myListener);
Bir callback yeniden adlandırıldı: PaywallViewDidFailRendering, FlowViewDidReceiveError oldu. Bu callback, önceki gibi rendering hatalarında tetiklenmeye devam eder; buna ek olarak satın alma dışındaki diğer çalışma zamanı hatalarında da tetiklenir:
- public void PaywallViewDidFailRendering(AdaptyUIPaywallView view, AdaptyError error) { }
+ public void FlowViewDidReceiveError(AdaptyUIFlowView view, AdaptyError error) { }
Tüm callback listesi için Flow & paywall olaylarını yönetme bölümüne bakın.
Yeni API’lar
Adapty.SetObserverModeResolver(...)veIAdaptyUIObserverModeResolver— SDK Observer mode çalışırken flow’lardan başlatılan satın alma ve geri yüklemeleri yönetir. Daha önce bu yalnızca iOS ve Android’in yerel SDK’larında mevcuttu. Bkz. Flow’ları Observer mode’da sunma.Adapty.SetSystemRequestsHandler(...)veIAdaptyUISystemRequestsHandler— bir flow’dan gelen sistem istekleri için ayrılmıştır: işletim sistemi izin istemleri (FlowViewDidAskPermission) ve uygulama değerlendirme istekleri (FlowViewDidRequestAppReview). Flow’lar henüz bu istekleri tetiklemediğinden bir handler kaydetmenize gerek yoktur.AdaptyUICreateFlowViewParameters.Locale(SetLocaleile ayarlayın) — Adapty’nin cihazdan belirlediği yerelleştirme yerine belirli bir Builder yerelleştirmesi kullanarak bir flow veya paywall’u render eder. Bir flow, görünümü oluşturulurken yerelleştirilir; bu nedenle yerelleştirmeyi seçmek için yalnızca bu yer kullanılır ve oluşturulan görünüm, hangi yerelleştirmeyle oluşturulduğunuview.Localeüzerinden bildirir. Bkz. Yerelleştirmeleri ve yerel ayar kodlarını kullanma.IAdaptyFlowsEventsListenerüzerindeki yeniFlowViewDidReceiveAnalyticEventgeri çağrısı, bir flow’dan gelen özel analitik olaylar için ayrılmıştır. Flow’lar henüz bu olayları kodunuza iletmediğinden boş bir gövdeyle uygulayın.AdaptyUI.OpenUrl(url, openIn, ...)veAdaptyUI.RequestAppReview(...)—open_urleylemleri ve uygulama değerlendirme isteklerinin arkasındaki yerel işleme. Varsayılan URL davranışını korumak içinFlowViewDidPerformActioniçindenOpenUrl’i çağırın;RequestAppReviewise flow’ların henüz tetiklemediği varsayılan uygulama değerlendirme istemini destekler.
Varsayılan davranış değişiklikleri
Bu değişiklikler derleme hatası oluşturmaz, dolayısıyla bunları çalışma zamanında test edin:
- Satın alma tamamlama: v3’te, başarılı bir satın almanın ardından görünüm otomatik olarak kapatılıyordu. v4’te, bir flow satın alma veya hata sonrasında siz kapatana kadar açık kalır — SDK herhangi bir varsayılan davranış uygulamaz. Kullanıcı erişim kazandıktan sonra
FlowViewDidFinishPurchaseiçindeview.Dismiss(...)metodunu kendiniz çağırın. - Android sistem geri tuşu: Sistem geri tuşu (veya geri kaydırma hareketi),
FlowViewDidPerformAction’aSystemBackaksiyonu olarak iletilir ve artık flow’u kendiliğinden kapatmaz — bu durum iOS ile tutarlıdır; iOS’ta bir flow sistem hareketi ile kapatılamaz. Kullanıcılara açık bir çıkış yolu sunun (bir Close düğmesi veyaon_device_backaksiyonu) ya da aksiyonu işlerken görünümü kendiniz kapatın. - Görünümler tek kullanımlıktır:
Dismissçağrısından sonra görünüm yok edilir. Flow’u tekrar göstermek içinCreateFlowViewmetodunu yeniden çağırın. - Observer mode işlemleri:
ReportTransactionartık başarı durumunda kod çözme hatası döndürmez — v3’te başarı yanıtı hatalı şekilde ayrıştırılıyordu, bu yüzden başarılı bir rapor her zaman hatayla tamamlanıyordu.
Onboarding API’sinin kullanımdan kaldırılması
Eski onboarding API’si, v4.0’da Flow Builder lehine kullanımdan kaldırılmıştır. Hâlâ çalışmaya devam etmektedir ancak gelecekteki bir sürümde kaldırılacaktır; bu nedenle onboarding’lerinizi Flow Builder’a geçirmek için plan yapın.
Kullanımdan kaldırılan semboller: GetOnboarding, GetOnboardingForDefaultAudience, AdaptyUI.CreateOnboardingView, AdaptyUI.PresentOnboardingView, AdaptyUI.DismissOnboardingView ve Adapty.SetOnboardingsEventsListener.