In-App Purchase (IAP) — mobil tətbiq daxilində istifadəçilərə rəqəmsal mallar və xidmətlər almağa imkan verən proqramdaxili alış mexanizmidir. iOS və Android platformaları bank kartı məlumatlarını tərtibatçıya ötürmədən ödənişlərin aparılması üçün daxili API-lər təqdim edir. Apple StoreKit sənədləşməsinə görə, IAP hər il App Store və Google Play vasitəsilə 500 milyard dollardan çox əməliyyat emal edir.
Əsas məqamlar
In-App Purchase (IAP) — mobil tətbiq daxilində rəqəmsal mallar və xidmətlər satmağa imkan verən texnologiyadır. Ödənişlər App Store (iOS-da) və ya Google Play (Android-də) tərəfindən emal edilir, onlar əməliyyatın aparılmasına görə komissiya alırlar. Tərtibatçı mağaza komissiyası çıxılmaqla vəsait alır.
Apple 30% komissiya alır (gəliri 1 milyon dollara qədər olan kiçik biznes üçün 15%). Google Play də 30% komissiya alır (tərtibatçı gəlirinin ilk 1 milyon dollarından 15%). 2024-cü ildən Google alternativ ödəniş sistemlərindən istifadə etməyə imkan verən User Choice Billing proqramını sınaqdan keçirir.
App Store və Google Play siyasətlərinə görə tətbiqlərdə rəqəmsal malların satışı üçün IAP məcburidir. Fiziki mallar, xidmətlər (taksi sifarişi, yemək çatdırılması) və peer-to-peer ödənişlər üçüncü tərəf ödəniş sistemlərindən istifadə edə bilər.
App Store və Google Play üç əsas In-App Purchase növünü dəstəkləyir. Hər növ müxtəlif monetizasiya modelləri üçün nəzərdə tutulub. Məhsul növünün seçimi alışların bərpası məntiqinə, abunə idarəçiliyinə və tətbiqin yenidən quraşdırılması zamanı davranışa təsir edir.
Consumable — dəfələrlə alına bilən və istifadə zamanı sərf olunan mallardır. Tipik nümunələr: oyun valyutası (sikkələr, almazlar), əlavə canlar, sürətləndiricilər, sərf olunan gücləndiricilər. Consumable məhsullar tətbiq yenidən quraşdırıldıqda bərpa olunmur — tərtibatçı öz serverində hər bir istifadəçinin balansını idarə edir.
Non-Consumable — bir dəfə alınan və həmişəlik əlçatan qalan mallardır. Nümunələr: tətbiqin tam versiyası, premium səviyyələr, filtrlərin açılması, reklamların silinməsi. Non-consumable məhsullar Restore Purchases API vasitəsilə bərpa olunur: yenidən quraşdırmadan sonra istifadəçi əvvəllər aldığı malları təkrar ödəniş etmədən qaytara bilər.
Auto-Renewable Subscription — müəyyən müddətə (həftə, ay, il) məzmun və ya xidmətə giriş üçün müntəzəm ödənişlərdir. Abunə istifadəçi onu hesab parametrlərində ləğv edənə qədər avtomatik yenilənir. Mağazalar abunə statusunun dəyişməsi barədə server bildirişləri təqdim edir: yeniləmə, müddətin bitməsi, geri qaytarma.
Konfiqurasiya In-App Purchase tərtibatçı panellərində başlayır: iOS üçün App Store Connect və Android üçün Google Play Console. Hər bir məhsul üçün identifikator (Product ID), ad, təsvir, növ və avtomatik regional valyutalara konvertasiya ilə ABŞ dollarında qiymət göstərilir. Yaradıldıqdan sonra məhsul mağaza moderasiyasından keçir.
App Store Connect-də IAP məhsulları Features → In-App Purchases bölməsində yaradılır. Hər bir məhsul üçün növ (consumable, non-consumable, auto-renewable subscription, non-renewing subscription) seçilir və lokalizasiya olunmuş adlar doldurulur. Abunəliklər üçün əlavə olaraq qruplar (Subscription Groups) konfiqurasiya edilir — bir-birini əvəz edən abunə qrupları.
Google Play Console-da managed products Monetise → Products → In-app products bölməsində konfiqurasiya edilir. Google Managed Product (non-consumable analoqu) və Subscription terminlərindən istifadə edir. Android-də consumable alışları üçün məhsulu təkrar alış üçün sıfırlayan ayrıca consume flag istifadə olunur.
IAP məhsullarının moderasiyası App Store-da orta hesabla 24–48 saat, Google Play-də isə bir neçə saat çəkir. Qiymət dəyişiklikləri təkrar moderasiya olmadan dərhal tətbiq edilir. Product ID yaradıldıqdan sonra dəyişdirilə bilməz — yalnız silinib yenidən yaradıla bilər.
Receipt validation (qəbzin yoxlanılması) — In-App Purchase emalının məcburi mərhələsidir. Müştəri tətbiqi qəbzi (receipt) öz serverinə göndərir, server onu Apple (https://buy.itunes.apple.com) və ya Google (https://androidpublisher.googleapis.com) API-si vasitəsilə yoxlayır və yalnız uğurlu validasiyadan sonra məhsulu istifadəçiyə təqdim edir.
Server tərəfində validasiya olmadan hücumçu mağazanın cavabını saxtalaşdıraraq məhsulu pulsuz əldə edə bilər. Client-side validation təhlükəsiz deyil, çünki istifadəçi tərəfindən idarə olunan mühitdə icra olunur. Server yoxlaması qəbzin həqiqi olduğunu və ödənişin uğurla keçdiyini təmin edir. Apple üçün yoxlama verifyReceipt endpoint-i (production və ya sandbox), Google üçün isə Android Publisher API vasitəsilə aparılır. Hər iki mağaza JSON formatında təsdiq qaytarır.
Apple qəbzdə alış məlumatlarını qaytarır: product_id, transaction_id, purchase_date, expiration_date (abunəliklər üçün). Google API Purchases.products.get və ya Purchases.subscriptions.get vasitəsilə oxşar sahələri qaytarır. Server hər bir qəbzin transaction_id-ni saxlamalı və replay hücumlarından qorunmaq üçün eyni ID ilə təkrar sorğuları rədd etməlidir.
İnteqrasiya In-App Purchase platforma kitabxanalarının qoşulmasını tələb edir: iOS-da StoreKit 2 və Android-də Billing Library 7+. API məhsul siyahısını əldə etməyə, alışı başlatmağa, nəticəni emal etməyə və əvvəllər alınmış məhsulları bərpa etməyə imkan verir.
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) {
// Çek təsdiqləndi — malı hesablayırıq
await grantProduct(data.receipt.product_id)
}
Monetizasiya In-App Purchase vasitəsilə düşünülmüş qiymət strategiyası və UX tələb edir. İstifadəçilərə aşağı qiymətə cəlbedici başlanğıc paketi (starter pack) təklif edildikdə ilk alışa daha çox meylli olurlar. Apple və Google ödənişi təsdiqləməzdən əvvəl məhsulun qiymətini göstərməyi tövsiyə edir.
Subscription onboarding — konversiyanın kritik mərhələsidir. Ödəniş tələb etməzdən əvvəl istifadəçiyə abunənin dəyərini göstərin: pulsuz sınaq müddəti, tariflərin müqayisəsi, üstünlüklərin siyahısı. Tədqiqatlara görə, pulsuz sınaq müddəti (free trial) ödəyici istifadəçilərin konversiyasını 25–40% artırır.
Restore Purchases non-consumable məhsullar və abunəliklər üçün məcburidir. Bərpa düyməsi tətbiqin parametrlərində və ya ödəniş ekranında əlçatan olmalıdır. Google və Apple müvafiq IAP növləri üçün alışların bərpası tətbiq edilmədikdə tətbiqi rədd edə bilər.
Grace Period — ödəniş uğursuz olduqdan sonra istifadəçinin girişini saxladığı abunəliklər üçün təxirə salma müddətidir. iOS və Android 30 günə qədər grace period-u dəstəkləyir. Grace period-un aktivləşdirilməsi imtina nisbətini (churn rate) 10–15% azaldır.
IAP qiymətlərinin A/B testi — monetizasiyanın vacib təcrübəsidir. App Store Connect məhsulun təkrar moderasiyası olmadan qiyməti dəyişmək imkanı ilə yerli qiymətləri (Price Tiers) dəstəkləyir. Google Play Console bir abunə məhsulu üçün müxtəlif qiymətlərlə 5-ə qədər baza planı konfiqurasiya etməyə imkan verir. Hər qiymət nöqtəsi üçün ən azı 1000 istifadəçi nümunəsində 2–4 həftə ərzində ən azı iki qiymət nöqtəsini test etmək tövsiyə olunur.
Store Review və rədd cavabının idarə edilməsi — IAP ilə tətbiqin nəşrinin məcburi mərhələsidir. Apple auto-renewable subscriptions olan tətbiqləri xüsusilə diqqətlə yoxlayır: aktiv abunə ilə test hesabı təqdim etmək, abunəni ləğv etmə ekranını göstərmək və Restore Purchases-ı tətbiq etmək lazımdır. Google Play daha az sərtdir, lakin rəqəmsal məzmun hüquqlarının təsdiqini tələb edir. IAP məntiqinin təsviri ilə rəyçi üçün qeyd (Review Notes) əlavə etmək tövsiyə olunur.
Tez-tez verilən suallar
In-App Purchase (IAP) — mobil tətbiq daxilində rəqəmsal malların alış mexanizmidir. Ödəniş App Store və ya Google Play tərəfindən emal edilir, onlar 30% (kiçik biznes üçün 15%) komissiya götürür və qalan məbləği tərtibatçıya köçürür.
IAP-ın üç növü var: consumable (sərf olunan — sikkələr, canlar), non-consumable (daimi — reklamların silinməsi, tam versiya) və auto-renewable subscription (avtomatik yeniləmə — müddət ərzində məzmuna giriş). Non-consumable alışların bərpasını dəstəkləyir.
Əsas qorunma üsulu — server-side receipt validation. Müştəri qəbzi sizin serverinizə göndərir, server onu Apple və ya Google API-si vasitəsilə yoxlayır. Server yoxlaması olmadan hücumçu mağazanın cavabını saxtalaşdıraraq məhsulu pulsuz əldə edə bilər.
IAP konfiqurasiyası daxildir: App Store Connect və ya Google Play Console-da məhsulların yaradılması, StoreKit (iOS) və ya Billing Library (Android) qoşulması, alışın tətbiqi və server tərəfində qəbzin yoxlanılması. Hər bir məhsul mağaza moderasiyasından keçir.
Apple 30% komissiya alır (gəliri 1 milyon dollara qədər olan tərtibatçılar üçün 15%). Google Play də 30% alır (ilk 1 milyondan 15%). 2024-cü ildən Google User Choice Billing vasitəsilə alternativ ödəniş sistemlərini sınaqdan keçirir. Tərtibatçı üçüncü tərəf ödəniş provayderini seçə bilər, lakin Google-a 11–12% xidmət haqqı ödəməlidir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun