In-App Purchase (IAP) — ay mekanismo ng pagbili sa loob ng app na nagpapahintulot sa mga user na bumili ng mga digital na produkto at serbisyo nang direkta sa loob ng mobile app. Ang mga platform na iOS at Android ay nagbibigay ng mga built-in na API para sa pagsasagawa ng mga pagbabayad nang hindi inililipat ang data ng bank card sa developer. Ayon sa dokumentasyon ng Apple StoreKit, ang IAP ay nagpoproseso ng mahigit 500 bilyong dolyar na transaksyon taun-taon sa pamamagitan ng App Store at Google Play.
Mga Pangunahing Punto
In-App Purchase (IAP) — ay isang teknolohiya na nagpapahintulot sa pagbebenta ng mga digital na produkto at serbisyo sa loob ng mobile app. Ang mga pagbabayad ay pinoproseso sa pamamagitan ng App Store (sa iOS) o Google Play (sa Android), na naniningil ng komisyon para sa pagsasagawa ng transaksyon. Ang developer ay tumatanggap ng pondo pagkatapos ibawas ang komisyon ng tindahan.
Ang Apple ay naniningil ng komisyon na 30% (15% para sa maliliit na negosyo na may kita hanggang 1 milyong dolyar). Ang Google Play ay naniningil din ng 30% (15% para sa unang 1 milyong dolyar ng kita ng developer). Mula noong 2024, sinusubukan ng Google ang programang User Choice Billing na nagpapahintulot sa mga developer na gumamit ng mga alternatibong sistema ng pagbabayad.
Ang IAP ay sapilitan para sa pagbebenta ng mga digital na produkto sa mga app ayon sa mga patakaran ng App Store at Google Play. Ang mga pisikal na produkto, serbisyo (pag-order ng taxi, paghahatid ng pagkain) at mga peer-to-peer na pagbabayad ay maaaring gumamit ng mga sistema ng pagbabayad ng third-party.
App Store at Google Play ay sumusuporta sa tatlong pangunahing uri ng In-App Purchase. Ang bawat uri ay para sa iba't ibang modelo ng monetization. Ang pagpili ng uri ng produkto ay nakakaapekto sa lohika ng pag-restore ng mga pagbili, pamamahala ng subscription at pag-uugali sa muling pag-install ng app.
Consumable — ay mga produkto na maaaring bilhin nang maraming beses at nauubos sa paggamit. Mga tipikal na halimbawa: pera sa laro (mga barya, diyamante), karagdagang buhay, pampabilis, nauubos na booster. Ang Consumable ay hindi nire-restore sa muling pag-install ng app — pinamamahalaan ng developer ang balanse ng bawat user sa kanyang sariling server.
Non-Consumable — ay mga produkto na binibili nang isang beses at nananatiling available magpakailanman. Mga halimbawa: buong bersyon ng app, premium na level, pag-unlock ng mga filter, pag-alis ng mga ad. Ang mga produktong non-consumable ay nire-restore sa pamamagitan ng Restore Purchases API: pagkatapos ng muling pag-install, maaaring makuha muli ng user ang mga dating biniling produkto nang walang karagdagang bayad.
Auto-Renewable Subscription — ay regular na pagbabayad para sa access sa content o serbisyo para sa isang tiyak na panahon (linggo, buwan, taon). Ang subscription ay awtomatikong nire-renew hanggang kanselahin ito ng user sa mga setting ng account. Ang mga tindahan ay nagbibigay ng mga notipikasyon sa server (App Store Server Notifications, Google Play Developer Notifications) tungkol sa pagbabago ng status ng subscription: pag-renew, pag-expire, pag-refund.
Pag-configure ng In-App Purchase ay nagsisimula sa mga panel ng developer: App Store Connect para sa iOS at Google Play Console para sa Android. Para sa bawat produkto ay tinutukoy ang identifier (Product ID), pangalan, paglalarawan, uri at presyo sa US dollars na may awtomatikong conversion sa rehiyonal na pera. Pagkatapos gawin, ang produkto ay dumadaan sa moderasyon ng tindahan.
Sa App Store Connect ang mga produktong IAP ay ginagawa sa seksyong Features → In-App Purchases. Para sa bawat produkto ay pinipili ang uri (consumable, non-consumable, auto-renewable subscription, non-renewing subscription) at pinupunan ang mga naka-localize na pangalan. Para sa mga subscription, karagdagang naka-configure ang mga grupo (Subscription Groups) — mga grupo ng mga mapagpapalit na subscription.
Sa Google Play Console ang mga managed na produkto ay naka-configure sa seksyong Monetise → Products → In-app products. Ginagamit ng Google ang mga terminong Managed Product (analog ng non-consumable) at Subscription. Para sa mga consumable na pagbili sa Android, ginagamit ang hiwalay na consume flag na nagre-reset ng produkto para sa muling pagbili.
Ang moderasyon ng mga produktong IAP ay tumatagal ng average na 24–48 oras sa App Store at ilang oras sa Google Play. Ang mga pagbabago sa presyo ay agad na inilalapat nang walang muling moderasyon. Ang Product ID ay hindi mababago pagkatapos gawin — maaari lamang tanggalin at muling likhain.
Receipt validation (pag-verify ng resibo) — sapilitang yugto ng pagproseso ng In-App Purchase. Ang client app ay nagpapadala ng resibo (receipt) sa sariling server, sine-verify ito ng server sa pamamagitan ng Apple (https://buy.itunes.apple.com) o Google (https://androidpublisher.googleapis.com) API at pagkatapos lamang ng matagumpay na validation ay ibinibigay ang produkto sa user.
Kung walang server-side validation, maaaring palsipikahin ng attacker ang tugon ng tindahan at makuha ang produkto nang libre. Ang Client-side validation ay hindi ligtas dahil isinasagawa ito sa kapaligiran na kontrolado ng user. Tinitiyak ng server-side verification na ang resibo ay tunay at ang pagbabayad ay matagumpay. Para sa Apple ang pag-verify ay ginagawa sa pamamagitan ng verifyReceipt endpoint (production o sandbox), para sa Google — sa pamamagitan ng Android Publisher API. Ang parehong tindahan ay nagbabalik ng kumpirmasyon sa JSON format.
Ang Apple ay nagbabalik sa resibo ng data ng pagbili: product_id, transaction_id, purchase_date, expiration_date (para sa mga subscription). Ang Google ay nagbabalik ng mga katulad na field sa pamamagitan ng API Purchases.products.get o Purchases.subscriptions.get. Ang server ay dapat mag-imbak ng transaction_id ng bawat resibo at tanggihan ang mga paulit-ulit na kahilingan na may parehong ID para sa proteksyon laban sa mga replay attack.
Pagsasama ng In-App Purchase ay nangangailangan ng pagkonekta ng mga platform library: StoreKit 2 sa iOS at Billing Library 7+ sa Android. Ang mga API ay nagpapahintulot sa pag-request ng listahan ng mga produkto, pagsisimula ng pagbili, pagproseso ng resulta at pag-restore ng mga dating biniling produkto.
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) {
// Ang resibo ay nakumpirma — ibinibigay ang produkto
await grantProduct(data.receipt.product_id)
}
Monetization sa pamamagitan ng In-App Purchase ay nangangailangan ng pinag-isipang diskarte sa pagpepresyo at UX. Ang mga user ay mas hilig sa unang pagbili kung inaalok sila ng kaakit-akit na starter pack sa mababang presyo. Ang Apple at Google ay nagrerekomenda na ipakita ang presyo ng produkto bago ang kumpirmasyon ng pagbili.
Subscription onboarding — kritikal na yugto ng conversion. Ipakita sa user ang halaga ng subscription bago humingi ng pagbabayad: libreng trial period, paghahambing ng mga plano, listahan ng mga benepisyo. Ayon sa pananaliksik, ang libreng trial period (free trial) ay nagpapataas ng conversion ng mga nagbabayad na user ng 25–40%.
Restore Purchases ay sapilitan para sa mga produktong non-consumable at subscription. Ang button ng pag-restore ay dapat available sa mga setting ng app o sa screen ng pagbabayad. Ang Google at Apple ay maaaring tumanggi sa app kung ang pag-restore ng mga pagbili ay hindi naipatupad para sa mga kaukulang uri ng IAP.
Grace Period — panahon ng palugit para sa mga subscription kung saan pinananatili ng user ang access pagkatapos ng hindi matagumpay na pagbabayad. Ang iOS at Android ay sumusuporta ng grace period hanggang 30 araw. Ang pag-activate ng grace period ay nagpapababa ng churn rate ng 10–15%.
A/B testing ng mga presyo ng IAP — mahalagang kasanayan sa monetization. Ang App Store Connect ay sumusuporta sa mga lokal na presyo (Price Tiers) na may kakayahang baguhin ang presyo nang walang muling moderasyon ng produkto. Ang Google Play Console ay nagpapahintulot sa pag-configure ng hanggang 5 base plan na may iba't ibang presyo para sa isang subscription product. Inirerekomenda na subukan ang hindi bababa sa dalawang price point: ang kasalukuyan at ang bago. Ang pagsubok ay isinasagawa sa loob ng 2–4 na linggo sa sample na hindi bababa sa 1000 user bawat price point.
Pagsusuri ng Tindahan at Pamamahala ng Pagtanggi — sapilitang yugto ng pag-publish ng app na may IAP. Ang Apple ay partikular na maingat na sinusuri ang mga app na may auto-renewable subscriptions: kailangang magbigay ng test account na may aktibong subscription, ipakita ang screen ng pagkansela ng subscription at ipatupad ang Restore Purchases. Ang Google Play ay hindi gaanong mahigpit ngunit humihingi ng kumpirmasyon ng mga karapatan sa digital content. Inirerekomenda na magdagdag ng tala para sa reviewer (Review Notes) na may paglalarawan ng lohika ng IAP.
Mga Madalas Itanong
In-App Purchase (IAP) — ay mekanismo ng pagbili ng mga digital na produkto sa loob ng mobile app. Ang pagbabayad ay pinoproseso sa pamamagitan ng App Store o Google Play na nagpapanatili ng 30% (15% para sa maliliit na negosyo) na komisyon at naglilipat ng natitira sa developer.
May tatlong uri ng IAP: consumable (nauubos — mga barya, buhay), non-consumable (permanente — pag-alis ng ad, buong bersyon) at auto-renewable subscription (awtomatikong pag-renew — access sa content para sa isang panahon). Ang non-consumable ay sumusuporta sa pag-restore ng mga pagbili.
Pangunahing paraan ng proteksyon — server-side receipt validation. Ang client ay nagpapadala ng resibo sa iyong server, sine-verify ito ng server sa pamamagitan ng Apple o Google API. Kung walang server-side validation, maaaring palsipikahin ng attacker ang tugon ng tindahan at makuha ang produkto nang libre.
Pag-configure ng IAP ay kinabibilangan ng: paggawa ng mga produkto sa App Store Connect o Google Play Console, pagkonekta ng StoreKit (iOS) o Billing Library (Android), pagpapatupad ng pagbili at server-side na pag-verify ng resibo. Bawat produkto ay dumadaan sa moderasyon ng tindahan.
Apple ay naniningil ng 30% (15% para sa mga developer na may kita hanggang 1 milyong dolyar). Google Play ay naniningil din ng 30% (15% para sa unang 1 milyon). Mula noong 2024, sinusubukan ng Google ang mga alternatibong sistema ng pagbabayad sa pamamagitan ng User Choice Billing. Maaaring pumili ang developer ng third-party na provider ng pagbabayad ngunit dapat magbayad ng service fee na 11–12% sa Google.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din