---
title: "iOS SDK'da web paywalllarını uygulama"
description: "App Store ücretleri ve denetimleri olmadan ödeme almak için bir web paywall kurun."
---

:::important
Başlamadan önce [kontrol panelinde web paywallınızı yapılandırdığınızdan](web-paywall) ve Adapty SDK 3.6.1 veya sonraki bir sürümünü yüklediğinizden emin olun.
:::

## Web paywalllarını açma \{#open-web-paywalls\}

Kendiniz geliştirdiğiniz bir paywall üzerinde çalışıyorsanız, web paywalllarını SDK metodu aracılığıyla ele almanız gerekir. `.openWebPaywall` metodu:
1. Adapty'nin belirli bir kullanıcıya gösterilen paywallı yönlendirildikleri web sayfasıyla ilişkilendirebilmesi için benzersiz bir URL oluşturur.
2. Kullanıcılarınızın uygulamaya ne zaman döndüğünü izler ve ardından profil erişim haklarının güncellenip güncellenmediğini belirlemek için kısa aralıklarla `.getProfile` isteği gönderir.

Bu sayede ödeme başarılı olup erişim hakları güncellendiğinde, abonelik uygulamada neredeyse anında etkinleşir.

```swift showLineNumbers title="Swift"
do {
    try await Adapty.openWebPaywall(for: product)
} catch {
    print("Failed to open web paywall: \(error)")
}
```

:::note
`openWebPaywall` metodunun iki versiyonu vardır:
1. `openWebPaywall(product)`: URL'leri paywalla göre oluşturur ve ürün verilerini de URL'lere ekler.
2. `openWebPaywall(paywall)`: URL'leri paywalla göre oluşturur ancak ürün verilerini eklemez. Adapty paywallındaki ürünler web paywallındakilerden farklı olduğunda bunu kullanın.
:::

## Hataları ele alma \{#handle-errors\}

| Hata                                    | Açıklama                                                   | Önerilen işlem                                                                    |
|-----------------------------------------|------------------------------------------------------------|-----------------------------------------------------------------------------------|
| AdaptyError.paywallWithoutPurchaseUrl   | Paywall için web satın alma URL'si yapılandırılmamış       | Paywallın Adapty Kontrol Paneli'nde doğru şekilde yapılandırılıp yapılandırılmadığını kontrol edin |
| AdaptyError.productWithoutPurchaseUrl   | Ürünün web satın alma URL'si yok                           | Adapty Kontrol Paneli'nde ürün yapılandırmasını doğrulayın                        |
| AdaptyError.failedOpeningWebPaywallUrl  | URL tarayıcıda açılamadı                                   | Cihaz ayarlarını kontrol edin veya alternatif bir satın alma yöntemi sunun        |
| AdaptyError.failedDecodingWebPaywallUrl | URL'deki parametreler düzgün şekilde kodlanamadı           | URL parametrelerinin geçerli ve doğru biçimde olduğunu doğrulayın                |

## Uygulama örneği \{#implementation-example\}
```swift showLineNumbers title="Swift"
class SubscriptionViewController: UIViewController {
    var paywall: AdaptyPaywall?
    
    @IBAction func purchaseButtonTapped(_ sender: UIButton) {
        guard let paywall = paywall, let product = paywall.products.first else { return }
         Task {
            await offerWebPurchase(for: product)
         }
    }
    
    func offerWebPurchase(for paywallProduct: AdaptyPaywallProduct) async {
        do {
            // Attempt to open web paywall
            try await Adapty.openWebPaywall(for: paywallProduct)
        } catch let error as AdaptyError {
            
            switch error {
            case .paywallWithoutPurchaseUrl, .productWithoutPurchaseUrl:
                showAlert(message: "Web purchase is not available for this product.")
            case .failedOpeningWebPaywallUrl:
                showAlert(message: "Could not open web browser. Please try again.")
            default:
                showAlert(message: "An error occurred: \(error.localizedDescription)")
            }
        } catch {
            showAlert(message: "An unexpected error occurred.")
        }
    }
    
    // Helper methods
    private func showAlert(message: String) { /* ... */ }
}
```
:::note
Kullanıcılar uygulamaya döndükten sonra, profil güncellemelerini yansıtmak için arayüzü yenileyin. `AdaptyDelegate`, profil güncelleme olaylarını alıp işleyecektir.
:::

## Web paywalllarını uygulama içi tarayıcıda açma \{#open-web-paywalls-in-an-in-app-browser\}

:::important
Web paywalllarını uygulama içi tarayıcıda açma özelliği Adapty SDK v. 3.15'ten itibaren desteklenmektedir.
:::

Web paywalllar varsayılan olarak harici tarayıcıda açılır.

Kesintisiz bir kullanıcı deneyimi sunmak için web paywallları uygulama içi tarayıcıda açabilirsiniz. Bu, web satın alma sayfasını uygulamanızın içinde görüntüler ve kullanıcıların uygulama değiştirmeden işlemleri tamamlamasına olanak tanır.

Bunu etkinleştirmek için `in` parametresini `.inAppBrowser` olarak ayarlayın:

```swift showLineNumbers title="Swift"
do {
    try await Adapty.openWebPaywall(for: product, in: .inAppBrowser) // default – .externalBrowser
} catch {
    print("Failed to open web paywall: \(error)")
}
```