Nákupy v aplikaci — podstata, typy nákupů a jak funguje monetizace

Autor: IT Sectr Publikováno: 2026-04-22 Doba čtení: 9 min

In-App Purchase (IAP) — je mechanismus nákupů v aplikaci, který umožňuje uživatelům nakupovat digitální zboží a služby přímo v mobilní aplikaci. Platformy iOS a Android poskytují vestavěná API pro provádění plateb bez předávání údajů o bankovní kartě vývojáři. Podle dokumentace Apple StoreKit zpracovává IAP ročně přes 500 miliard dolarů transakcí prostřednictvím App Store a Google Play.

Hlavní body

  • In-App Purchase — mechanismus nákupu digitálního zboží v mobilní aplikaci přes API obchodu.
  • Consumable — jednorázové nákupy, které lze nakupovat opakovaně (mince, životy, energie).
  • Non-Consumable — trvalé nákupy dostupné po jednorázovém zakoupení (úrovně, filtry, prémiové funkce).
  • Automatické obnovení (Auto-Renewable Subscription) — pravidelné platby za přístup k obsahu nebo službě na určité období.
  • Server-side receipt validation — povinné ověření účtenky na vlastním serveru pro ochranu před podvody.

Co je In-App Purchase?

In-App Purchase (IAP) — je technologie umožňující prodej digitálního zboží a služeb v rámci mobilní aplikace. Platby jsou zpracovávány prostřednictvím App Store (na iOS) nebo Google Play (na Android), které si účtují provizi za provedení transakce. Vývojář obdrží prostředky po odečtení provize obchodu.

Apple si účtuje provizi 30% (15% pro malé podniky s příjmem do 1 milionu dolarů). Google Play si také účtuje 30% (15% z prvního 1 milionu dolarů příjmu vývojáře). Od roku 2024 Google testuje program User Choice Billing, který umožňuje vývojářům používat alternativní platební systémy.

IAP je povinný pro prodej digitálního zboží v aplikacích podle zásad App Store a Google Play. Fyzické zboží, služby (objednání taxíku, doručení jídla) a peer-to-peer platby mohou používat platební systémy třetích stran.

Typy In-App Purchase: consumable, non-consumable a subscription

App Store a Google Play podporují tři hlavní typy In-App Purchase. Každý typ je určen pro různé modely monetizace. Volba typu produktu ovlivňuje logiku obnovení nákupů, správu předplatného a chování při přeinstalaci aplikace.

Consumable (spotřební nákupy)

Consumable — je zboží, které lze nakupovat opakovaně a které se spotřebovává při používání. Typické příklady: herní měna (mince, diamanty), další životy, zrychlovače, spotřební posilovače. Consumable se neobnovují při přeinstalaci aplikace — vývojář sám spravuje zůstatek každého uživatele na svém serveru.

Non-Consumable (nespotřební nákupy)

Non-Consumable — je zboží, které se nakupuje jednou a zůstává trvale dostupné. Příklady: plná verze aplikace, prémiové úrovně, odemknutí filtrů, odstranění reklam. Produkty non-consumable se obnovují prostřednictvím Restore Purchases API: po přeinstalaci může uživatel získat dříve zakoupené zboží zpět bez opětovné platby.

Auto-Renewable Subscription (předplatné s automatickým obnovením)

Auto-Renewable Subscription — jsou pravidelné platby za přístup k obsahu nebo službě na určité období (týden, měsíc, rok). Předplatné se automaticky obnovuje, dokud uživatel nezruší v nastavení účtu. Obchody poskytují serverová oznámení (App Store Server Notifications, Google Play Developer Notifications) o změně stavu předplatného: obnovení, vypršení, vrácení peněz.

Nastavení IAP v App Store Connect a Google Play Console

Nastavení In-App Purchase začíná v panelech vývojáře: App Store Connect pro iOS a Google Play Console pro Android. Pro každý produkt se uvádí identifikátor (Product ID), název, popis, typ a cena v amerických dolarech s automatickým převodem na regionální měny. Po vytvoření produkt prochází moderací obchodu.

V App Store Connect se produkty IAP vytvářejí v sekci Features → In-App Purchases. Pro každý produkt se vybírá typ (consumable, non-consumable, auto-renewable subscription, non-renewing subscription) a vyplňují se lokalizované názvy. Pro předplatná se dodatečně konfigurují skupiny (Subscription Groups) — skupiny vzájemně zaměnitelných předplatných.

V Google Play Console se spravované produkty (managed products) konfigurují v sekci Monetise → Products → In-app products. Google používá termíny Managed Product (obdoba non-consumable) a Subscription. Pro nákupy consumable na Androidu se používá samostatný příznak consume, který resetuje produkt pro opětovný nákup.

Moderace produktů IAP trvá v průměru 24–48 hodin v App Store a několik hodin v Google Play. Změny cen se uplatňují okamžitě bez opětovné moderace. Product ID nelze po vytvoření změnit — lze pouze smazat a znovu vytvořit.

Server-side receipt validation a ochrana před podvody

Receipt validation (ověření účtenky) — povinná fáze zpracování In-App Purchase. Klientská aplikace odešle účtenku (receipt) na vlastní server, server ji ověří prostřednictvím API Apple (https://buy.itunes.apple.com) nebo Google (https://androidpublisher.googleapis.com) a teprve po úspěšné validaci přidělí produkt uživateli.

Bez serverového ověření může útočník zfalšovat odpověď obchodu a získat produkt zdarma. Client-side validation je nebezpečná, protože se provádí v prostředí kontrolovaném uživatelem. Serverové ověření zaručuje, že účtenka je autentická a platba proběhla úspěšně. Pro Apple se ověření provádí přes endpoint verifyReceipt (production nebo sandbox), pro Google — přes Android Publisher API. Oba obchody vracejí potvrzení ve formátu JSON.

Apple vrací v účtence údaje o nákupu: product_id, transaction_id, purchase_date, expiration_date (pro předplatná). Google vrací podobná pole přes API Purchases.products.get nebo Purchases.subscriptions.get. Server by měl ukládat transaction_id každé účtenky a odmítat opakované požadavky se stejným ID pro ochranu před replay útoky.

Integrace IAP do mobilní aplikace v Swift a Kotlin

Integrace In-App Purchase vyžaduje připojení platformních knihoven: StoreKit 2 na iOS a Billing Library 7+ na Android. API umožňují vyžádat seznam produktů, zahájit nákup, zpracovat výsledek a obnovit dříve zakoupené produkty.

Swift — StoreKit 2 na iOS 17+

swift
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
    }
}

Kotlin — Billing Library 7

kotlin
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)

Server-side receipt validation (Node.js)

js
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) {
    // Účtenka potvrzena — přidělujeme produkt
    await grantProduct(data.receipt.product_id)
}

Nejlepší postupy monetizace prostřednictvím In-App Purchase

Monetizace prostřednictvím In-App Purchase vyžaduje promyšlenou cenovou strategii a UX. Uživatelé jsou náchylnější k prvnímu nákupu, pokud je jim nabídnut atraktivní startovací balíček (starter pack) za nízkou cenu. Apple a Google doporučují zobrazovat cenu produktu před potvrzením nákupu.

Subscription onboarding — kritická fáze konverze. Ukažte uživateli hodnotu předplatného před žádostí o platbu: bezplatná zkušební doba, srovnání tarifů, seznam výhod. Podle výzkumů zvyšuje bezplatná zkušební doba (free trial) konverzi platících uživatelů o 25–40%.

Restore Purchases je povinný pro produkty non-consumable a předplatná. Tlačítko obnovení by mělo být dostupné v nastavení aplikace nebo na obrazovce platby. Google a Apple mohou odmítnout aplikaci, pokud obnovení nákupů není implementováno pro odpovídající typy IAP.

Grace Period — lhůta odkladu pro předplatná, po kterou uživatel zachovává přístup po neúspěšné platbě. iOS a Android podporují grace period až 30 dnů. Zapnutí grace period snižuje míru odchodu (churn rate) o 10–15%.

A/B testování cen IAP — důležitá praktika monetizace. App Store Connect podporuje místní ceny (Price Tiers) s možností změnit cenu bez opětovné moderace produktu. Google Play Console umožňuje konfigurovat až 5 základních plánů s různými cenami pro jeden předplatitelský produkt. Doporučuje se testovat alespoň dva cenové body: aktuální a nový. Testování se provádí po dobu 2–4 týdnů na vzorku nejméně 1000 uživatelů na každý cenový bod.

Kontrola obchodu a správa odmítnutí — povinná fáze publikování aplikace s IAP. Apple obzvláště pečlivě kontroluje aplikace s automaticky obnovitelnými předplatnými: je třeba poskytnout testovací účet s aktivním předplatným, zobrazit obrazovku zrušení předplatného a implementovat Restore Purchases. Google Play je méně přísný, ale vyžaduje potvrzení práv k digitálnímu obsahu. Doporučuje se přidat poznámku pro recenzenta (Review Notes) s popisem logiky IAP.

Často kladené dotazy

Co je In-App Purchase a jak funguje?

In-App Purchase (IAP) — je mechanismus nákupu digitálního zboží v mobilní aplikaci. Platba je zpracována prostřednictvím App Store nebo Google Play, které si ponechávají provizi 30% (15% pro malé podniky) a převádějí zbytek vývojáři.

Jaké typy In-App Purchase existují?

Existují tři typy IAP: consumable (spotřební — mince, životy), non-consumable (trvalé — odstranění reklam, plná verze) a auto-renewable subscription (automatické obnovení — přístup k obsahu na období). Non-consumable podporuje obnovení nákupů.

Jak chránit In-App Purchase před hackováním?

Hlavní metoda ochrany — server-side receipt validation. Klient odešle účtenku na váš server, server ji ověří přes API Apple nebo Google. Bez serverového ověření může útočník zfalšovat odpověď obchodu a získat produkt zdarma.

Jak nastavit In-App Purchase v aplikaci?

Nastavení IAP zahrnuje: vytvoření produktů v App Store Connect nebo Google Play Console, připojení StoreKit (iOS) nebo Billing Library (Android), implementaci nákupu a serverové ověření účtenky. Každý produkt prochází moderací obchodu.

Jaká je provize obchodů za In-App Purchase?

Apple si účtuje 30% (15% pro vývojáře s příjmem do 1 milionu dolarů). Google Play si také účtuje 30% (15% z prvního 1 milionu). Od roku 2024 Google testuje alternativní platební systémy prostřednictvím User Choice Billing. Vývojář si může vybrat externího poskytovatele plateb, ale musí platit Googlu servisní poplatek 11–12%.

Shrnutí

  • In-App Purchase — mechanismus prodeje digitálního zboží v mobilní aplikaci přes API App Store a Google Play.
  • Tři typy IAP: consumable (spotřební), non-consumable (trvalé) a auto-renewable subscription (automatické obnovení).
  • Provize obchodů činí 30% (15% pro malé podniky).
  • Server-side receipt validation — povinná ochrana proti zfalšování účtenky na straně klienta.
  • Moderace produktů IAP trvá 24–48 hodin v App Store a několik hodin v Google Play.
  • Subscription onboarding s bezplatnou zkušební dobou zvyšuje konverzi platících uživatelů o 25–40%.
  • Grace Period až 30 dnů snižuje míru odchodu předplatitelů o 10–15% při selhání platby.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také