Відкритий SDK для інтеграції покупок в застосунку на iOS

Здійсніть покупки в застосунку за 30 хвилин.

Готовий до використання бекенд для iOS покупок у застосунках

Інтеграція покупок у застосунках вимагає створення бекенд-інфраструктури та сервера для подій підписки. Це може зайняти сотні годин роботи та бути складним для утримання.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
Adapty SDK дозволяє вам інтегрувати підписки в застосунках у вашому iOS застосунку за допомогою нашої готової інфраструктури, яка обробляє всі події підписки та пропонує можливості для росту доходу.
// Your app's code
import Adapty
Adapty.activate("PUBLIC_SDK_KEY")
 
// Make a purchase, Adapty handles the rest
do {
	let purchasedInfo = try await Adapty.makePurchase(product)
	// successful purchase
} catch {
	// handle the error
}
Від інтеграції до обслуговування – Adapty створено, щоб спростити роботу з IAP.
Запросити демонстрацію

Чому обрати Adapty SDK?

Правильний стан підписки в будь-який момент

Будьте впевнені, що ви завжди отримаєте правильний стан підписника на всіх платформах.

Валіднація чеку на сервері

Не потрібно турбуватися про правильність та безпеку валідації покупок.

Обробка всіх видів станів підписки

Безкоштовні випробування, оновлення, промо-пропозиції, сімейний доступ, продовження та інше.

Платформа готова до роботи із підприємствами з коротким циклом випуску

>99.99% надійності SLA та регулярні оновлення продукту.
Налаштування платформ
Встановлення Adapty SDK
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Обробка подій покупки

Швидка та легка інтеграція

Потратьте лише кілька годин на інтеграцію Adapty SDK у вашому iOS застосунку, а ми подбаємо про усе інше.

Просто 5 методів SDK для реалізації iOS покупок у застосунках

// Your app's code
import Adapty
  
Adapty.activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")
 
 
 
 
 
 
 
// Your app's code
Adapty.getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in
    switch result {
        case let .success(paywall):
            // the requested paywall
        case let .failure(error):
            // handle the error
    }
}
 
 
// Your app's code
Adapty.makePurchase(product: product) { result in
    switch result {
    case let .success(info):
      if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
        // successful purchase
      }
    case let .failure(error):
        // handle the error
    }
}
// Your app's code
Adapty.getProfile { result in
    if let profile = try? result.get() {
        // check the access
    }

 
 
 
 
 
// Your app's code
Adapty.restorePurchases { [weak self] result in
    switch result {
        case let .success(profile):
            if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
	            // successful access restore
            }
        case let .failure(error):
            // handle the error
    }
}
Спробуйте безкоштовно

Люди з усіх видів бізнесу звертаються до Adapty, щоб збільшити свій дохід

Що ви отримуєте з Adapty?

Adapty SDK забезпечує величезні можливості для зростання доходу застосунку

Аналітика в реальному часі для вашого iOS Застосунку

Покладайтеся на дані з точністю 99.5% з App Store Connect.
Почати
App Icon Gravity
Gravity Fit
Здоров'я та фітнес
“Прозорі та розширені аналітичні панелі допомагають нам приймати рішення швидше без використання додаткових інструментів. Це економить нам багато часу і, отже, грошей.”
Єкатерина К,
PM у Gravity Fit
Accuracy Adapty Appstore
ABC testing

A/B тестування пейволів

Знайдіть найбільш прибутковий пейвол та збільшіть доходи вашого застосунку.
Досліджуйте A/B тестування
MentalGrowth
MentalGrowth
Додаток про здоров'я та добробут
“Швидка аналітика Adapty та легка у запуску функція A/B тестування дозволили нам швидко перевіряти гіпотези та досягати чудових результатів.”
Вадим Нємченко,
Продуктовий менеджер у MentalGrowth

Віддалене налаштування для пейволів

Змінюйте свій пейвол віддалено, не перевипускаючи застосунок.
Спробуйте це зараз
Smitten
Smitten - Знайомства
Стиль життя
“Наша команда зростання та доходу може швидко впроваджувати та управляти пейволами, продуктовими пропозиціями та тестувати цінові рівні в багатьох різних ринках.”
Кайл Сміт,
Керівник даних у Smitten Dating
Table Json Table Locale

Нам довіряють за зручність та якісну підтримку клієнтів

На основі 500+ відгуків
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025

Шукаєте SDK для інших платформ?