RevenueCat: συνδρομή in-app σε εφαρμογή iOS
Από Mehdi Azizi
Ενημερώθηκε στις , 7 λ.
Το RevenueCat συνδέει τα προϊόντα του App Store Connect με την εφαρμογή σου και διαχειρίζεται τα δικαιώματα πρόσβασης. Τα βήματα για την πρώτη σου συνδρομή iOS.
Γιατί να χρησιμοποιήσεις το RevenueCat και όχι μόνο το StoreKit
Το StoreKit, το framework της Apple, σου επιτρέπει να πουλήσεις συνδρομή χωρίς καμία υπηρεσία τρίτου. Για έναν αρχάριο όμως, το να γράψει μόνος του όλη τη λογική αγοράς, επαναφοράς και ελέγχου δικαιωμάτων πρόσβασης σημαίνει πολύ κώδικα για συντήρηση, με οριακές περιπτώσεις που ξεχνιούνται εύκολα: αλλαγή συσκευής, λήξη, επιστροφή χρημάτων.
Το RevenueCat μπαίνει ανάμεσα στο App Store Connect και την εφαρμογή σου: διαβάζει τα προϊόντα σου, διαχειρίζεται τις ενεργές συνδρομές και σε γλιτώνει από το να γράψεις αυτό το κομμάτι μόνος σου. Ελέγχεις την τιμή και τις προσφορές από ένα dashboard, χωρίς να ξαναδημοσιεύεις την εφαρμογή σε κάθε αλλαγή.
Βήμα 1: δημιούργησε τα προϊόντα σου στο App Store Connect
Πριν από το RevenueCat, τα προϊόντα πρέπει να υπάρχουν στην πλευρά της Apple. Στο App Store Connect, δημιούργησε ένα subscription group και μετά ένα ή περισσότερα επίπεδα με τη διάρκειά τους, για παράδειγμα μηνιαίο ή ετήσιο, και την τιμή τους ανά περιοχή. Συμπλήρωσε επίσης τα κείμενα που βλέπει ο χρήστης για κάθε επίπεδο: η Apple τα ζητά πριν δεχτεί το προϊόν σε έλεγχο.
Μια συχνή παράλειψη σε αυτό το σημείο: ένα προϊόν που δημιουργήθηκε αλλά δεν υποβλήθηκε ποτέ στον πρώτο έλεγχο της εφαρμογής μαζί με την αντίστοιχη έκδοση. Ένα προϊόν σε αναμονή που δεν συμπεριλήφθηκε ποτέ σε υποβολή εφαρμογής μένει αόρατο για τους χρήστες σου, ακόμα κι αν το RevenueCat το βλέπει ήδη.
Βήμα 2: σύνδεσε το RevenueCat με την εφαρμογή σου
Στο RevenueCat, δημιουργείς ένα project, συνδέεις το API key του App Store Connect ώστε το RevenueCat να συγχρονίζει αυτόματα τα προϊόντα σου, και μετά ορίζεις "entitlements", δηλαδή δικαιώματα πρόσβασης. Ένα entitlement αντιπροσωπεύει αυτό που ξεκλειδώνει η συνδρομή, για παράδειγμα πλήρη πρόσβαση στην εφαρμογή, ανεξάρτητα από το ακριβές προϊόν που το ενεργοποίησε.
Αυτή η έμμεση σύνδεση είναι χρήσιμη: αν αλλάξεις αργότερα τη δομή των προσφορών σου, για παράδειγμα προσθέτοντας ετήσιο επίπεδο, απλώς συνδέεις το νέο προϊόν με το ίδιο entitlement, χωρίς να αγγίξεις τον κώδικα που ελέγχει την πρόσβαση στην εφαρμογή σου.
Στην πλευρά της εφαρμογής, το SDK του RevenueCat για React Native εγκαθίσταται σε project Expo με ειδικό plugin και προσφέρει μια απλή συνάρτηση για να μάθεις αν ο τρέχων χρήστης έχει ενεργό entitlement.
Βήμα 3: φτιάξε το paywall σου
Το paywall είναι η οθόνη που παρουσιάζει την προσφορά και ξεκινά την αγορά. Το RevenueCat προσφέρει paywalls που ρυθμίζονται από το dashboard και αλλάζουν χωρίς νέα δημοσίευση της εφαρμογής, ή μπορείς να φτιάξεις το δικό σου με το SDK αν θέλεις πλήρη έλεγχο στο design.
Η θέση μετράει όσο και το design. Ένα paywall που εμφανίζεται πριν ο χρήστης δει την αξία της εφαρμογής συνήθως έχει χειρότερη μετατροπή από ένα paywall που εμφανίζεται αμέσως μετά από μια πρώτη επιτυχημένη ενέργεια. Ο οδηγός για τα λάθη paywall στο iOS για αρχάριους αναλύει τις πιο συχνές παγίδες σε αυτό το στάδιο, πέρα από το καθαρά τεχνικό κομμάτι.
Βήμα 4: δοκίμασε την αγορά, την επαναφορά και τη λήξη
Είναι το βήμα που γίνεται πιο συχνά στο πόδι, κι όμως αυτό που ελέγχει περισσότερο η Apple. Τρία σενάρια πρέπει να δουλεύουν πριν την υποβολή:
Η αγορά. Με έναν sandbox tester λογαριασμό, η αγορά πρέπει να ξεκλειδώνει αμέσως το entitlement, και η εφαρμογή σου πρέπει να αντιδρά σε αυτή την αλλαγή χωρίς επανεκκίνηση.
Η επαναφορά. Σε νέα συσκευή ή μετά από επανεγκατάσταση, με τον ίδιο λογαριασμό Apple, ένα κουμπί "Restore Purchases" πρέπει να βρίσκει την ενεργή συνδρομή. Η Apple ελέγχει πάντα αυτή τη διαδρομή στον έλεγχο, και η απουσία της ή η κακή λειτουργία της είναι συχνός λόγος απόρριψης με βάση την guideline 3.1.1.
Η λήξη. Στο sandbox, οι συνδρομές λήγουν σε λίγα λεπτά αντί για μήνες, οπότε μπορείς να ελέγξεις ότι η πρόσβαση κλείνει σωστά μόλις τελειώσει η περίοδος, χωρίς να περιμένεις έναν πραγματικό κύκλο χρέωσης.
Τι δεν αντικαθιστά το RevenueCat
Το RevenueCat διαχειρίζεται τον μηχανισμό αγοράς, όχι τη συμμόρφωση της σελίδας σου ή του paywall σου με την guideline 3.1.2. Εσύ πρέπει πάντα να περιγράφεις σωστά τη συνδρομή στην περιγραφή σου στο App Store, να αναφέρεις την ακριβή τιμή και διάρκειά της και να συμπληρώνεις τους όρους χρήσης σου. Η σελίδα συνδρομή ή εφάπαξ αγορά στο iOS σε βοηθά να διαλέξεις το σωστό μοντέλο πριν φτάσεις καν σε αυτό το τεχνικό βήμα.
Επιπλέον, το RevenueCat παίρνει προμήθεια από τα έσοδα πάνω από ένα ορισμένο μηνιαίο όριο, πέρα από την προμήθεια της Apple στις συνδρομές που πωλούνται μέσα στην εφαρμογή. Έλεγξε τα τρέχοντα κλιμάκια στο δικό τους site πριν χτίσεις το επιχειρηματικό σου μοντέλο γύρω από αυτές τις δύο προμήθειες.
Τα πιο συχνά λάθη ενός αρχάριου
Ξεχνάς την κατάσταση φόρτωσης. Στην εκκίνηση, το RevenueCat χρειάζεται μια στιγμή για να ανακτήσει τα δικαιώματα πρόσβασης του χρήστη. Αν η εφαρμογή σου δείχνει από προεπιλογή το επί πληρωμή περιεχόμενο πριν από αυτή την απάντηση, ένας χρήστης χωρίς συνδρομή μπορεί να δει για μια στιγμή περιεχόμενο που δεν πλήρωσε. Πρόβλεψε μια ρητή κατάσταση φόρτωσης αντί για μια αισιόδοξη προεπιλεγμένη εμφάνιση.
Ελέγχεις τα δικαιώματα σε λάθος σημείο. Ένα ενεργό entitlement πρέπει να ξαναελέγχεται κάθε φορά που ανοίγει μια οθόνη επί πληρωμή, όχι μόνο μία φορά στην εκκίνηση. Αν ο χρήστης ακυρώσει ή αν η συνδρομή του λήξει ενώ χρησιμοποιεί την εφαρμογή, η επόμενη οθόνη πρέπει να αντικατοπτρίζει αυτή την αλλαγή.
Μπερδεύεις sandbox και production. Τα αναγνωριστικά προϊόντων και οι sandbox tester λογαριασμοί είναι ξεχωριστά από το production. Ένα τεστ που δουλεύει στο sandbox με λάθος λογαριασμό Apple, ή ένα προϊόν που δημιουργήθηκε μόνο στο production, μπορεί να σου δώσει την ψευδή εντύπωση ότι όλα είναι έτοιμα.
Μια εφαρμογή που έχει ελεγχθεί, όχι απλώς μια εφαρμογή που κάνει compile
Μια συνδρομή που "δουλεύει" σε ένα γρήγορο τεστ στον δικό σου λογαριασμό δεν εγγυάται ότι αντέχει μια επαναφορά σε άλλη συσκευή ή μια πραγματική λήξη. Αυτό ακριβώς ελέγχει ένας reviewer της Apple. Η σελίδα συνδρομή in-app στο iOS αναλύει όλη αυτή την αλυσίδα, από τη δημιουργία των προϊόντων μέχρι τον τελικό έλεγχο.
Αν θέλεις να ξεκινήσεις από μια βάση όπου το paywall και οι συνδρομές είναι ήδη στον κώδικα, αυτό περιέχει ο αρχικός κώδικας του iOS Kit. Για να ελέγξεις τη συνδρομή σου όπως θα το κάνει ο reviewer, το Apple Review Kit συγκεντρώνει τη checklist μου πριν την υποβολή και τις σημειώσεις που αφήνεις στον tester για την αγορά μέσα στην εφαρμογή.
Συχνές ερωτήσεις
Πώς στήνω συνδρομή με RevenueCat στο iOS;
Σε τέσσερα βήματα. Πρώτα δημιούργησε τα προϊόντα σου στο App Store Connect. Μετά σύνδεσε το RevenueCat με το API key του App Store Connect και όρισε τα entitlements σου (τα δικαιώματα πρόσβασης), και φτιάξε το paywall. Τέλος, δοκίμασε την αγορά, την επαναφορά και τη λήξη: είναι το βήμα που συχνά γίνεται βιαστικά, κι όμως το ελέγχει η Apple.
Είναι υποχρεωτικό το RevenueCat για να πουλήσω συνδρομή στο iOS;
Όχι. Το StoreKit, το framework της Apple, σου επιτρέπει να πουλήσεις συνδρομή χωρίς υπηρεσία τρίτου. Τότε όμως γράφεις μόνος σου όλη τη λογική αγοράς, επαναφοράς και ελέγχου δικαιωμάτων πρόσβασης, με οριακές περιπτώσεις που ξεχνιούνται εύκολα: αλλαγή συσκευής, λήξη, επιστροφή χρημάτων. Το RevenueCat μπαίνει ανάμεσα στο App Store Connect και την εφαρμογή σου για να σε γλιτώσει από αυτό το κομμάτι.
Τι είναι ένα entitlement στο RevenueCat;
Ένα entitlement είναι ένα δικαίωμα πρόσβασης: αντιπροσωπεύει αυτό που ξεκλειδώνει η συνδρομή, για παράδειγμα πλήρη πρόσβαση στην εφαρμογή, όποιο κι αν είναι το ακριβές προϊόν που το ενεργοποίησε. Αν προσθέσεις αργότερα ετήσιο επίπεδο, απλώς συνδέεις το νέο προϊόν με το ίδιο entitlement. Ο κώδικας που ελέγχει την πρόσβαση στην εφαρμογή σου δεν χρειάζεται να αλλάξει.
Πώς δοκιμάζω μια συνδρομή RevenueCat πριν την υποβολή στην Apple;
Τρία σενάρια πρέπει να δουλεύουν πριν την υποβολή. Αγορά: με sandbox tester λογαριασμό, η πρόσβαση ξεκλειδώνει αμέσως, χωρίς επανεκκίνηση της εφαρμογής. Επαναφορά: σε νέα συσκευή ή μετά από επανεγκατάσταση, με τον ίδιο λογαριασμό Apple, το κουμπί επαναφοράς βρίσκει την ενεργή συνδρομή. Λήξη: στο sandbox, οι συνδρομές λήγουν σε λίγα λεπτά, οπότε μπορείς να ελέγξεις ότι η πρόσβαση κλείνει.
Γιατί ένα προϊόν που φαίνεται στο RevenueCat μένει αόρατο για τους χρήστες;
Συχνά επειδή το προϊόν δεν συμπεριλήφθηκε ποτέ σε υποβολή εφαρμογής. Ένα προϊόν που δημιουργήθηκε στο App Store Connect αλλά δεν υποβλήθηκε ποτέ στον πρώτο έλεγχο μαζί με την αντίστοιχη έκδοση μένει αόρατο για τους χρήστες σου, ακόμα κι αν το RevenueCat το βλέπει ήδη. Είναι συχνή παράλειψη στο βήμα δημιουργίας των προϊόντων.
Παίρνει το RevenueCat προμήθεια από τις συνδρομές;
Το RevenueCat παίρνει προμήθεια από τα έσοδα πάνω από ένα ορισμένο μηνιαίο όριο. Αυτή προστίθεται στην προμήθεια της Apple για τις συνδρομές που πωλούνται μέσα στην εφαρμογή. Έλεγξε τα τρέχοντα κλιμάκια στο site του RevenueCat πριν χτίσεις το επιχειρηματικό σου μοντέλο γύρω από αυτές τις δύο προμήθειες.