iOS SDK'da mobil uygulamada satın alma yapma

Mobil uygulamanızda paywall’ları göstermek, kullanıcılara premium içerik veya hizmetlere erişim sunmanın temel adımlarından biridir. Ancak paywall’larınızı özelleştirmek için Paywall Builder kullanıyorsanız, bu paywall’ları görüntülemek satın almaları desteklemek için yeterlidir.

Paywall Builder kullanmıyorsanız, satın alma işlemini tamamlamak ve istenen içeriğin kilidini açmak için .makePurchase() adlı ayrı bir metot kullanmanız gerekir. Bu metot, kullanıcıların paywall’larla etkileşime girmesini ve istedikleri işlemleri gerçekleştirmesini sağlar.

Paywall’ınızda kullanıcının satın almaya çalıştığı ürün için aktif bir promosyon teklifi varsa, Adapty bunu satın alma anında otomatik olarak uygular.

Başlangıç teklifinin otomatik uygulanabilmesi için paywall’larınızın Paywall Builder ile oluşturulmuş olması gerektiğini unutmayın.

Diğer durumlarda, iOS’ta kullanıcının başlangıç teklifine uygunluğunu doğrulamanız gerekir. Bu adımı atlamak uygulamanızın yayın sırasında reddedilmesine yol açabilir. Üstelik, başlangıç teklifine hak kazanan kullanıcıların tam fiyat ödenmesine neden olabilir.

Tek bir adımı bile atlamadan başlangıç yapılandırmasını tamamladığınızdan emin olun. Bu yapılmadan satın almaları doğrulayamayız.

Satın alma yapma

Paywall Builder kullanıyor musunuz? Satın almalar otomatik olarak işlenir—bu adımı atlayabilirsiniz.

Adım adım rehber mi arıyorsunuz? Tam bağlamlı uçtan uca uygulama talimatları için hızlı başlangıç kılavuzuna bakın.

İstek parametreleri:

ParametreZorunlulukAçıklama
ProductzorunluPaywall’dan alınan bir AdaptyPaywallProduct nesnesi.

Yanıt parametreleri:

ParametreAçıklama
Profile

İstek başarılıysa yanıt bu nesneyi içerir. Bir AdaptyProfile nesnesi, kullanıcının uygulamadaki access level’ları, abonelikleri ve abonelik dışı satın almaları hakkında kapsamlı bilgi sağlar.

Kullanıcının uygulamaya gerekli erişime sahip olup olmadığını belirlemek için access level durumunu kontrol edin.

Not: Hâlâ Apple’ın StoreKit v2.0’dan düşük sürümünü ve Adapty SDK v2.9.0’dan düşük sürümünü kullanıyorsanız, bunun yerine Apple App Store paylaşılan gizli anahtarını sağlamanız gerekir. Bu yöntem Apple tarafından artık kullanımdan kaldırılmıştır.

App Store’dan uygulama içi satın almalar

Bir kullanıcı App Store’da satın alma başlattığında ve işlem uygulamanıza taşındığında iki seçeneğiniz vardır:

  • İşlemi hemen gerçekleştirin: shouldAddStorePayment içinde true döndürün. Bu, Apple satın alma sistem ekranını hemen gösterir.
  • Ürün nesnesini sonraki işlem için saklayın: shouldAddStorePayment içinde false döndürün, ardından saklanan ürünle makePurchase’i daha sonra çağırın. Bu, satın almayı tetiklemeden önce kullanıcıya özel bir şey göstermeniz gerektiğinde işe yarar.

Tam kod parçacığı şöyle:

final class YourAdaptyDelegateImplementation: AdaptyDelegate {
    nonisolated func shouldAddStorePayment(for product: AdaptyDeferredProduct) -> Bool {
        // 1a.
        // Return `true` to continue the transaction in your app. The Apple purchase system screen will show automatically.

        // 1b.
        // Store the product object and return `false` to defer or cancel the transaction.
        false
    }
    
    // 2. Continue the deferred purchase later on by passing the product to `makePurchase` when the timing is appropriate
    func continueDeferredPurchase() async {
        let storedProduct: AdaptyDeferredProduct = // get the product object from 1b.
        do {
            try await Adapty.makePurchase(product: storedProduct)
        } catch {
            // handle the error
        }
    }
}

iOS’ta teklif kodlarını kullanma

Teklif kodları hakkında

Teklif kodları, belirli kullanıcılara indirim veya ücretsiz deneme sunmanıza olanak tanır. Otomatik uygulanan normal tekliflerin aksine, teklif kodları uygulama dışında — e-posta kampanyaları, sosyal medya veya basılı materyaller aracılığıyla — dağıtılır. Kullanıcılar bu kodları App Store’a girerek, bir kullanım URL’si aracılığıyla veya uygulama içi bir iletişim kutusu üzerinden kullanabilir.

Teklif kodlarını ayarlamak için App Store Connect’te bir abonelik açın ve Offer Codes bölümüne gidin. Üç tür teklif kodu oluşturabilirsiniz:

  • Free — abonelik belirli bir süre boyunca ücretsizdir ve bir sonraki yenileme tam fiyat üzerinden gerçekleşir.
  • Pay as you go — kullanıcı, belirli bir süre boyunca her faturalandırma döngüsünde indirimli fiyat öder; ardından abonelik tam fiyatla yenilenir.
  • Pay up front — kullanıcı, teklif süresi boyunca tek seferlik indirimli bir fiyat öder; ardından abonelik tam fiyatla yenilenir.

Teklif kodlarını Adapty’ye eklemenize gerek yoktur. Apple, teklif süresi boyunca gerçekleşen her işlemi teklif kodu kategorisiyle etiketler. Bu etiket; ilk kullanımı ve sonraki tüm indirimli yenilemeleri kapsar. Adapty bu etiketi algılar ve her işlemi offer_code teklif kategorisiyle kaydeder. Teklif süresi sona erip abonelik tam fiyatla yenilendiğinde, etiket artık yer almaz. Adapty Kontrol Paneli’nde Offer Code teklif türüne göre analitikleri filtreleyebilirsiniz.

Gelir tutarsızlığı sorunlarını giderme

Adapty’de bir teklif kodu işleminin indirimli teklif fiyatı yerine tam ürün fiyatıyla göründüğünü fark ederseniz App Store Connect’te aşağıdakileri doğrulayın:

  • Teklif kodunun, kullanıcıların kodu kullanabileceği tüm bölgeler için doğru fiyatlandırma yapılandırılmış olmalıdır.
  • Teklif fiyatı, kullanıcının bulunduğu ülke veya bölge için ayrıca ayarlanmış olmalıdır. Apple, işlemde bölgesel fiyatı gönderir. Teklif için belirli bir bölgeye ait fiyat yapılandırılmamışsa Apple tam ürün fiyatını gönderebilir.

Teklif kodu işlemlerini Adapty Kontrol Paneli’nde Offer Code teklif türü ve Offer Discount Type filtreleri aracılığıyla filtreleyip doğrulayabilirsiniz.

Eski promosyon kodları (kullanımdan kaldırıldı)

Apple, uygulama içi satın almalar için promosyon kodlarını Mart 2026’da kullanımdan kaldırdı. Teklif kodları, daha fazla özellikle bunların yerini alıyor: yapılandırılabilir uygunluk kriterleri, son kullanma tarihleri ve üç ayda 1 milyona kadar kod. Uygulama içi satın almalar için daha önce promosyon kodu kullandıysanız App Store Connect’te teklif kodlarına geçiş yapın.

Eski promosyon kodları (uygulama başına sürüm başına en fazla 100 adet) bir aboneliğe ücretsiz erişim sağlıyordu. Teklif kodlarının aksine, Apple promosyon kodu işlemlerine indirim bilgisi eklemiyordu — makbuza tam ürün fiyatını gönderiyordu. Bunun sonucunda Adapty bu işlemleri tam fiyat üzerinden kaydediyordu ve bu durum Adapty analitikleri ile App Store Connect arasında gelir tutarsızlıklarına yol açıyordu.

Ücretsiz olması gereken ancak tam fiyatla görünen geçmişe ait işlemler görüyorsanız bunlar büyük olasılıkla eski promosyon kodlarından kaynaklanmaktadır. Bu kodlar artık kullanımdan kaldırıldığından, doğru gelir takibi için teklif kodlarına geçiş yapın.

Uygulamanızda kod kullanım sayfasını göstermek için:

Adapty.presentCodeRedemptionSheet()

Gözlemlerimize göre bazı uygulamalarda Teklif Kodu Kullanım sayfası güvenilir şekilde çalışmayabilir. Kullanıcıyı doğrudan App Store’a yönlendirmenizi öneririz.

Bunu yapmak için şu formattaki URL’yi açmanız gerekir: https://apps.apple.com/redeem?ctx=offercodes&id={apple_app_id}&code={code}