In-App Purchase (IAP) — είναι ο μηχανισμός αγορών εντός εφαρμογής που επιτρέπει στους χρήστες να αγοράζουν ψηφιακά προϊόντα και υπηρεσίες απευθείας μέσα στην εφαρμογή κινητού. Οι πλατφόρμες iOS και Android παρέχουν ενσωματωμένα API για τη διεξαγωγή πληρωμών χωρίς μεταφορά δεδομένων τραπεζικής κάρτας στον προγραμματιστή. Σύμφωνα με την τεκμηρίωση του Apple StoreKit, το IAP επεξεργάζεται πάνω από 500 δισεκατομμύρια δολάρια σε συναλλαγές ετησίως μέσω του App Store και του Google Play.
Κύρια σημεία
In-App Purchase (IAP) — είναι μια τεχνολογία που επιτρέπει την πώληση ψηφιακών προϊόντων και υπηρεσιών εντός εφαρμογής κινητού. Οι πληρωμές υποβάλλονται σε επεξεργασία μέσω του App Store (σε iOS) ή του Google Play (σε Android), τα οποία χρεώνουν προμήθεια για τη διεξαγωγή της συναλλαγής. Ο προγραμματιστής λαμβάνει τα χρήματα μετά την αφαίρεση της προμήθειας του καταστήματος.
Η Apple χρεώνει προμήθεια 30% (15% για μικρές επιχειρήσεις με έσοδα έως 1 εκατομμύριο δολάρια). Το Google Play χρεώνει επίσης 30% (15% για το πρώτο 1 εκατομμύριο δολάρια εσόδων του προγραμματιστή). Από το 2024, η Google δοκιμάζει το πρόγραμμα User Choice Billing, το οποίο επιτρέπει στους προγραμματιστές να χρησιμοποιούν εναλλακτικά συστήματα πληρωμών.
Το IAP είναι υποχρεωτικό για την πώληση ψηφιακών προϊόντων σε εφαρμογές σύμφωνα με τις πολιτικές του App Store και του Google Play. Τα φυσικά προϊόντα, οι υπηρεσίες (παραγγελία ταξί, παράδοση φαγητού) και οι peer-to-peer πληρωμές μπορούν να χρησιμοποιούν συστήματα πληρωμών τρίτων.
App Store και Google Play υποστηρίζουν τρεις κύριους τύπους In-App Purchase. Κάθε τύπος προορίζεται για διαφορετικά μοντέλα δημιουργίας εσόδων. Η επιλογή του τύπου προϊόντος επηρεάζει τη λογική επαναφοράς αγορών, τη διαχείριση συνδρομών και τη συμπεριφορά κατά την επανεγκατάσταση της εφαρμογής.
Consumable — είναι προϊόντα που μπορούν να αγοραστούν πολλές φορές και καταναλώνονται κατά τη χρήση. Τυπικά παραδείγματα: νόμισμα παιχνιδιού (νομίσματα, διαμάντια), επιπλέον ζωές, επιταχυντές, αναλώσιμοι ενισχυτές. Τα consumable δεν επαναφέρονται κατά την επανεγκατάσταση της εφαρμογής — ο προγραμματιστής διαχειρίζεται ο ίδιος το υπόλοιπο κάθε χρήστη στον διακομιστή του.
Non-Consumable — είναι προϊόντα που αγοράζονται μία φορά και παραμένουν διαθέσιμα για πάντα. Παραδείγματα: πλήρης έκδοση της εφαρμογής, επίπεδα premium, ξεκλείδωμα φίλτρων, αφαίρεση διαφημίσεων. Τα προϊόντα non-consumable επαναφέρονται μέσω του Restore Purchases API: μετά την επανεγκατάσταση, ο χρήστης μπορεί να ανακτήσει προηγουμένως αγορασμένα προϊόντα χωρίς εκ νέου πληρωμή.
Auto-Renewable Subscription — είναι τακτικές πληρωμές για πρόσβαση σε περιεχόμενο ή υπηρεσία για μια συγκεκριμένη περίοδο (εβδομάδα, μήνα, έτος). Η συνδρομή ανανεώνεται αυτόματα έως ότου ο χρήστης την ακυρώσει στις ρυθμίσεις λογαριασμού. Τα καταστήματα παρέχουν ειδοποιήσεις διακομιστή (App Store Server Notifications, Google Play Developer Notifications) για την αλλαγή κατάστασης συνδρομής: ανανέωση, λήξη, επιστροφή χρημάτων.
Ρύθμιση Το In-App Purchase ξεκινά στους πίνακες προγραμματιστή: App Store Connect για iOS και Google Play Console για Android. Για κάθε προϊόν καθορίζεται ένα αναγνωριστικό (Product ID), όνομα, περιγραφή, τύπος και τιμή σε δολάρια ΗΠΑ με αυτόματη μετατροπή σε περιφερειακά νομίσματα. Μετά τη δημιουργία, το προϊόν περνά από τη διαδικασία ελέγχου του καταστήματος.
Στο App Store Connect τα προϊόντα IAP δημιουργούνται στην ενότητα Features → In-App Purchases. Για κάθε προϊόν επιλέγεται ο τύπος (consumable, non-consumable, auto-renewable subscription, non-renewing subscription) και συμπληρώνονται τα τοπικοποιημένα ονόματα. Για τις συνδρομές, διαμορφώνονται επιπλέον ομάδες (Subscription Groups) — ομάδες εναλλάξιμων συνδρομών.
Στο Google Play Console τα διαχειριζόμενα προϊόντα (managed products) διαμορφώνονται στην ενότητα Monetise → Products → In-app products. Η Google χρησιμοποιεί τους όρους Managed Product (ανάλογο του non-consumable) και Subscription. Για αγορές consumable σε Android, χρησιμοποιείται μια ξεχωριστή σημαία consume που επαναφέρει το προϊόν για εκ νέου αγορά.
Ο έλεγχος προϊόντων IAP διαρκεί κατά μέσο όρο 24–48 ώρες στο App Store και μερικές ώρες στο Google Play. Οι αλλαγές τιμών εφαρμόζονται αμέσως χωρίς εκ νέου έλεγχο. Το Product ID δεν μπορεί να αλλάξει μετά τη δημιουργία — μπορεί μόνο να διαγραφεί και να δημιουργηθεί ξανά.
Receipt validation (επαλήθευση απόδειξης) — υποχρεωτικό στάδιο επεξεργασίας του In-App Purchase. Η εφαρμογή πελάτη στέλνει την απόδειξη (receipt) στον δικό σας διακομιστή, ο διακομιστής την επαληθεύει μέσω του API της Apple (https://buy.itunes.apple.com) ή της Google (https://androidpublisher.googleapis.com) και μόνο μετά από επιτυχή επικύρωση χορηγεί το προϊόν στον χρήστη.
Χωρίς επαλήθευση από τον διακομιστή, ένας εισβολέας μπορεί να πλαστογραφήσει την απάντηση του καταστήματος και να λάβει το προϊόν δωρεάν. Η Client-side validation δεν είναι ασφαλής επειδή εκτελείται σε περιβάλλον που ελέγχεται από τον χρήστη. Η επαλήθευση από τον διακομιστή εγγυάται ότι η απόδειξη είναι γνήσια και η πληρωμή ήταν επιτυχής. Για την Apple, η επαλήθευση γίνεται μέσω του τελικού σημείου verifyReceipt (production ή sandbox), για την Google — μέσω του Android Publisher API. Και τα δύο καταστήματα επιστρέφουν επιβεβαίωση σε μορφή JSON.
Η Apple επιστρέφει στην απόδειξη τα δεδομένα αγοράς: product_id, transaction_id, purchase_date, expiration_date (για συνδρομές). Η Google επιστρέφει παρόμοια πεδία μέσω του API Purchases.products.get ή Purchases.subscriptions.get. Ο διακομιστής πρέπει να αποθηκεύει το transaction_id κάθε απόδειξης και να απορρίπτει επαναλαμβανόμενα αιτήματα με το ίδιο αναγνωριστικό για προστασία από επιθέσεις replay.
Ενσωμάτωση Το In-App Purchase απαιτεί τη σύνδεση βιβλιοθηκών πλατφόρμας: StoreKit 2 σε iOS και Billing Library 7+ σε Android. Τα API επιτρέπουν την αίτηση λίστας προϊόντων, την έναρξη αγοράς, την επεξεργασία αποτελέσματος και την επαναφορά προηγουμένως αγορασμένων προϊόντων.
import StoreKit
func purchaseProduct(productID: String) async throws {
guard let product = try await Product.products(for: [productID]).first else { return }
let result = try await product.purchase()
switch result {
case .success(let verification):
let transaction = try verification.payloadValue
await validateReceipt(transaction)
await transaction.finish()
default:
break
}
}
import com.android.billingclient.api.BillingClient
import com.android.billingclient.api.BillingFlowParams
val billingClient = BillingClient.newBuilder(context)
.setListener { billingResult, purchases ->
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
purchases?.forEach { purchase ->
validateReceipt(purchase)
}
}
}
.build()
val params = BillingFlowParams.newBuilder()
.setProductDetails(productDetails)
.build()
billingClient.launchBillingFlow(activity, params)
const response = await fetch('https://buy.itunes.apple.com/verifyReceipt', {
method: 'POST',
body: JSON.stringify({
'receipt-data': receiptBase64,
'password': 'SHARED_SECRET'
})
})
const data = await response.json()
if (data.status === 0) {
// Η απόδειξη επιβεβαιώθηκε — χορήγηση προϊόντος
await grantProduct(data.receipt.product_id)
}
Δημιουργία εσόδων μέσω In-App Purchase απαιτεί καλά μελετημένη στρατηγική τιμολόγησης και UX. Οι χρήστες είναι πιο διατεθειμένοι για την πρώτη αγορά αν τους προσφερθεί ένα ελκυστικό αρχικό πακέτο (starter pack) σε χαμηλή τιμή. Η Apple και η Google συνιστούν την εμφάνιση της τιμής του προϊόντος πριν από την επιβεβαίωση της αγοράς.
Subscription onboarding — κρίσιμο στάδιο μετατροπής. Δείξτε στον χρήστη την αξία της συνδρομής πριν ζητήσετε πληρωμή: δωρεάν δοκιμαστική περίοδος, σύγκριση πακέτων, λίστα πλεονεκτημάτων. Σύμφωνα με έρευνες, η δωρεάν δοκιμαστική περίοδος (free trial) αυξάνει τη μετατροπή πληρωτικών χρηστών κατά 25–40%.
Restore Purchases είναι υποχρεωτική για προϊόντα non-consumable και συνδρομές. Το κουμπί επαναφοράς πρέπει να είναι διαθέσιμο στις ρυθμίσεις της εφαρμογής ή στην οθόνη πληρωμής. Η Google και η Apple μπορούν να απορρίψουν την εφαρμογή εάν η επαναφορά αγορών δεν έχει υλοποιηθεί για τους αντίστοιχους τύπους IAP.
Grace Period — περίοδος χάριτος για συνδρομές κατά την οποία ο χρήστης διατηρεί πρόσβαση μετά από αποτυχημένη πληρωμή. Τα iOS και Android υποστηρίζουν grace period έως 30 ημέρες. Η ενεργοποίηση του grace period μειώνει το ποσοστό εγκατάλειψης (churn rate) κατά 10–15%.
Δοκιμή A/B τιμών IAP — σημαντική πρακτική δημιουργίας εσόδων. Το App Store Connect υποστηρίζει τοπικές τιμές (Price Tiers) με δυνατότητα αλλαγής τιμής χωρίς εκ νέου έλεγχο προϊόντος. Το Google Play Console επιτρέπει τη διαμόρφωση έως 5 βασικών προγραμμάτων με διαφορετικές τιμές για ένα προϊόν συνδρομής. Συνιστάται η δοκιμή τουλάχιστον δύο σημείων τιμής: του τρέχοντος και του νέου. Η δοκιμή διεξάγεται για 2–4 εβδομάδες σε δείγμα τουλάχιστον 1000 χρηστών ανά σημείο τιμής.
Έλεγχος καταστήματος και διαχείριση απόρριψης — υποχρεωτικό στάδιο δημοσίευσης εφαρμογής με IAP. Η Apple ελέγχει ιδιαίτερα προσεκτικά εφαρμογές με αυτόματα ανανεούμενες συνδρομές: πρέπει να παρέχετε δοκιμαστικό λογαριασμό με ενεργή συνδρομή, να εμφανίσετε την οθόνη ακύρωσης συνδρομής και να υλοποιήσετε το Restore Purchases. Το Google Play είναι λιγότερο αυστηρό, αλλά ζητά επιβεβαίωση δικαιωμάτων ψηφιακού περιεχομένου. Συνιστάται η προσθήκη σημείωσης για τον αξιολογητή (Review Notes) με περιγραφή της λογικής IAP.
Συχνές Ερωτήσεις
In-App Purchase (IAP) — είναι ο μηχανισμός αγοράς ψηφιακών προϊόντων εντός εφαρμογής κινητού. Η πληρωμή υποβάλλεται σε επεξεργασία μέσω του App Store ή του Google Play που παρακρατούν προμήθεια 30% (15% για μικρές επιχειρήσεις) και μεταφέρουν το υπόλοιπο στον προγραμματιστή.
Υπάρχουν τρεις τύποι IAP: consumable (αναλώσιμα — νομίσματα, ζωές), non-consumable (μόνιμα — αφαίρεση διαφημίσεων, πλήρης έκδοση) και auto-renewable subscription (αυτόματη ανανέωση — πρόσβαση σε περιεχόμενο για περίοδο). Τα non-consumable υποστηρίζουν επαναφορά αγορών.
Η κύρια μέθοδος προστασίας — server-side receipt validation. Ο πελάτης στέλνει την απόδειξη στον διακομιστή σας, ο διακομιστής την επαληθεύει μέσω του API της Apple ή της Google. Χωρίς επαλήθευση από τον διακομιστή, ένας εισβολέας μπορεί να πλαστογραφήσει την απάντηση του καταστήματος και να λάβει το προϊόν δωρεάν.
Ρύθμιση IAP περιλαμβάνει: δημιουργία προϊόντων στο App Store Connect ή στο Google Play Console, σύνδεση StoreKit (iOS) ή Billing Library (Android), υλοποίηση αγοράς και επαλήθευση απόδειξης στον διακομιστή. Κάθε προϊόν περνά από τον έλεγχο του καταστήματος.
Apple χρεώνει 30% (15% για προγραμματιστές με έσοδα έως 1 εκατομμύριο δολάρια). Google Play χρεώνει επίσης 30% (15% για το πρώτο 1 εκατομμύριο). Από το 2024, η Google δοκιμάζει εναλλακτικά συστήματα πληρωμών μέσω του User Choice Billing. Ο προγραμματιστής μπορεί να επιλέξει πάροχο πληρωμών τρίτου μέρους, αλλά πρέπει να πληρώνει στην Google τέλος υπηρεσίας 11–12%.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης