RevenueCat: postavljanje pretplate u iOS aplikaciji
Autor: Mehdi Azizi
Ažurirano , 7 min
RevenueCat povezuje tvoje proizvode iz App Store Connecta s aplikacijom i upravlja pravima pristupa. Koraci za prvu in-app pretplatu na iOS-u.
Zašto RevenueCat, a ne samo StoreKit
StoreKit, Appleov framework, omogućuje prodaju pretplate bez ikakve vanjske usluge. Ali za početnika je pisanje cijele logike kupnje, vraćanja kupnji i provjere prava pristupa puno koda za održavanje, s rubnim slučajevima koje je lako zaboraviti: promjena uređaja, istek, povrat novca.
RevenueCat stoji između App Store Connecta i tvoje aplikacije: čita tvoje proizvode, upravlja aktivnim pretplatama i štedi te pisanja tog sloja. Cijenu i ponude kontroliraš s nadzorne ploče, bez ponovnog objavljivanja aplikacije pri svakoj promjeni.
Korak 1: napravi proizvode u App Store Connectu
Prije RevenueCata, proizvodi moraju postojati kod Applea. U App Store Connectu napravi grupu pretplata, pa jednu ili više razina s trajanjem, na primjer mjesečnu ili godišnju, i cijenom po teritoriju. Ispuni i tekstove koje korisnik vidi za svaku razinu: Apple ih traži prije nego prihvati proizvod na pregledu.
Česta greška u ovoj fazi: proizvod je napravljen, ali nikad nije poslan na prvi pregled aplikacije zajedno s pripadajućom verzijom. Proizvod na čekanju koji nikad nije bio uključen u slanje aplikacije ostaje nevidljiv tvojim korisnicima, čak i ako ga RevenueCat već vidi.
Korak 2: poveži RevenueCat sa svojom aplikacijom
U RevenueCatu napraviš projekt, povežeš svoj App Store Connect API ključ kako bi RevenueCat automatski sinkronizirao tvoje proizvode, a zatim definiraš "entitlements", odnosno prava pristupa. Entitlement predstavlja ono što pretplata otključava, na primjer puni pristup aplikaciji, neovisno o točnom proizvodu koji ga je aktivirao.
Ovaj međusloj je koristan: ako kasnije promijeniš strukturu ponuda, na primjer dodaš godišnju razinu, samo povežeš novi proizvod s istim entitlementom, bez diranja koda koji provjerava pristup u aplikaciji.
U aplikaciji se RevenueCat SDK za React Native instalira u Expo projekt pomoću posebnog plugina i nudi jednostavnu funkciju kojom saznaješ ima li trenutni korisnik aktivan entitlement.
Korak 3: napravi paywall
Paywall je ekran koji predstavlja ponudu i pokreće kupnju. RevenueCat nudi paywallove koje podešavaš s nadzorne ploče i mijenjaš bez ponovnog objavljivanja aplikacije, a možeš i napraviti svoj pomoću SDK-a ako želiš potpunu kontrolu nad dizajnom.
Položaj je jednako važan kao dizajn. Paywall prikazan prije nego što je osoba vidjela vrijednost aplikacije obično konvertira slabije od paywalla postavljenog odmah nakon prve uspješne radnje. Vodič o greškama s paywallom na iOS-u za početnike detaljno opisuje najčešće zamke u ovoj fazi, osim samog tehničkog povezivanja.
Korak 4: testiraj kupnju, vraćanje kupnji i istek
Ovo je korak koji se najčešće odradi na brzinu, a Apple ga provjerava najviše. Tri scenarija moraju raditi prije slanja:
Kupnja. S sandbox testnim računom kupnja mora odmah otključati entitlement, a aplikacija mora reagirati na tu promjenu bez ponovnog pokretanja.
Vraćanje kupnji. Na novom uređaju ili nakon ponovne instalacije, s istim Apple računom, gumb "Restore Purchases" mora pronaći aktivnu pretplatu. Apple taj tok uvijek provjerava na pregledu, a ako ga nema ili ne radi kako treba, to je čest razlog odbijanja prema guideline 3.1.1.
Istek. U sandbox okruženju pretplate istječu za nekoliko minuta umjesto nekoliko mjeseci, pa možeš provjeriti da se pristup ispravno zatvara kad razdoblje završi, bez čekanja pravog ciklusa naplate.
Što RevenueCat ne zamjenjuje
RevenueCat upravlja mehanikom kupnje, a ne usklađenošću tvoje stranice u App Storeu ni paywalla s guideline 3.1.2. I dalje je na tebi da pretplatu ispravno opišeš u App Store opisu, navedeš točnu cijenu i trajanje te uneseš uvjete korištenja. Stranica pretplata ili jednokratna kupnja na iOS-u pomaže ti odabrati pravi model i prije nego što dođeš do ovog tehničkog koraka.
RevenueCat uz to uzima proviziju na prihode iznad određenog mjesečnog praga, povrh Appleove provizije na pretplate prodane u aplikaciji. Provjeri trenutne razine na njihovoj stranici prije nego što izgradiš poslovni model oko tih dviju provizija.
Najčešće greške početnika
Zaboraviti stanje učitavanja. Pri pokretanju RevenueCatu treba kratak trenutak da dohvati korisnikova prava pristupa. Ako aplikacija prema zadanom prikazuje plaćeni sadržaj prije tog odgovora, korisnik bez pretplate može na trenutak vidjeti sadržaj koji nije platio. Predvidi jasno stanje učitavanja umjesto optimističnog zadanog prikaza.
Provjeravati prava na krivom mjestu. Aktivan entitlement treba ponovno provjeriti pri svakom otvaranju plaćenog ekrana, a ne samo jednom pri pokretanju. Ako korisnik otkaže ili mu pretplata istekne dok koristi aplikaciju, sljedeći ekran mora odražavati tu promjenu.
Brkati sandbox i produkciju. Identifikatori proizvoda i sandbox testni računi odvojeni su od produkcije. Test koji radi u sandboxu s krivim Apple računom, ili proizvod napravljen samo u produkciji, može stvoriti lažan dojam da je sve spremno.
Provjerena aplikacija, a ne samo aplikacija koja se kompajlira
Pretplata koja "radi" u brzom testu na tvom računu ne jamči da će preživjeti vraćanje kupnje na drugom uređaju ili stvarni istek. Upravo to provjerava Appleov reviewer. Stranica in-app pretplata na iOS-u detaljno opisuje cijeli taj lanac, od izrade proizvoda do završne provjere.
Ako želiš krenuti od osnove u kojoj su paywall i pretplate već u kodu, to sadrži početni kod iz iOS Kita. Da provjeriš pretplatu onako kako će to napraviti reviewer, Apple Review Kit sadrži moju checklistu prije slanja i bilješke koje ostavljaš testeru za in-app kupnju.
Česta pitanja
Kako postaviti RevenueCat pretplatu na iOS-u?
U četiri koraka. Najprije napravi proizvode u App Store Connectu. Zatim poveži RevenueCat svojim App Store Connect API ključem i definiraj entitlements (prava pristupa), pa napravi paywall. Na kraju testiraj kupnju, vraćanje kupnji i istek: to je korak koji se često odradi na brzinu, a Apple ga provjerava.
Je li RevenueCat obavezan za prodaju pretplate na iOS-u?
Nije. StoreKit, Appleov framework, omogućuje prodaju pretplate bez vanjske usluge. Ali tada sam pišeš cijelu logiku kupnje, vraćanja kupnji i provjere prava pristupa, s rubnim slučajevima koje je lako zaboraviti: promjena uređaja, istek, povrat novca. RevenueCat stoji između App Store Connecta i tvoje aplikacije i štedi te tog sloja.
Što je entitlement u RevenueCatu?
Entitlement je pravo pristupa: predstavlja ono što pretplata otključava, na primjer puni pristup aplikaciji, bez obzira na točan proizvod koji ga je aktivirao. Ako kasnije dodaš godišnju razinu, samo povežeš novi proizvod s istim entitlementom. Kod koji provjerava pristup u aplikaciji ne treba mijenjati.
Kako testirati RevenueCat pretplatu prije slanja Appleu?
Tri scenarija moraju raditi prije slanja. Kupnja: sa sandbox testnim računom pristup se odmah otključava, bez ponovnog pokretanja aplikacije. Vraćanje kupnji: na novom uređaju ili nakon ponovne instalacije, s istim Apple računom, gumb za vraćanje pronalazi aktivnu pretplatu. Istek: u sandboxu pretplate istječu za nekoliko minuta, pa možeš provjeriti da se pristup zatvara.
Zašto proizvod vidljiv u RevenueCatu ostaje nevidljiv korisnicima?
Često zato što proizvod nikad nije bio uključen u slanje aplikacije. Proizvod napravljen u App Store Connectu, ali nikad poslan na prvi pregled s pripadajućom verzijom, ostaje nevidljiv tvojim korisnicima, čak i ako ga RevenueCat već vidi. To je česta greška u fazi izrade proizvoda.
Uzima li RevenueCat proviziju na pretplate?
RevenueCat uzima proviziju na prihode iznad određenog mjesečnog praga. Ona se dodaje na Appleovu proviziju na pretplate prodane u aplikaciji. Provjeri trenutne razine na stranici RevenueCata prije nego što izgradiš poslovni model oko tih dviju provizija.