# App Store Connect Subscriptions: Offer Codes, Family Sharing, Winback
App Store Connect'in subscription management sistemi her yıl güçleniyor. 2026 itibariyle: offer codes (redeemable promotional), family sharing (1 purchase 6 family), winback offers (canceled users), multi-tier pricing (165 ülke), intro offer policies. Bu yazı her feature'ın nasıl set edildiğini, StoreKit 2 entegrasyonunu, best practice'leri ve dashboard navigation'ı kapsar.
💡 Pro Tip: Offer codes $0 marketing bütçesiyle user acquisition'ın best yolu. Influencer'lara özel kod ver, traceable attribution al.
İçindekiler
- Subscription Setup Basics
- Introductory Offers
- Promotional Offers (Signed)
- Winback Offers (iOS 18+)
- Offer Codes (Redeemable)
- Family Sharing
- Pricing ve Region
- Analytics Dashboard
Subscription Setup Basics
App Store Connect → My Apps → [Your App] → Subscriptions:
- Subscription Group oluştur (same group members mutual exclusive)
- Her group'a subscription products ekle
- Her product'a pricing (165 region) + localized display names + description
Auto-Renewable vs Consumable
- Auto-renewable: Monthly, yearly — auto-renew (default)
- Non-renewable: Fixed term (3 month access) — manual renew
- Consumable: One-time (coins, tokens)
Introductory Offers
Yeni abone olanlara giriş:
- Free trial: 3/7/14/30 gün ücretsiz
- Pay as you go: İlk X ay discount price
- Pay up front: Tek-seferlik lower price (ilk 3 ay $9.99)
swift
1// StoreKit 2'de access2if let offer = product.subscription?.introductoryOffer {3 print("First \(offer.period.formatted): \(offer.displayPrice)")4 // UI'da göster: "7 gün ücretsiz, sonra ayda $9.99"5}Eligibility: Daha önce free trial veya intro offer kullanmamış.
Promotional Offers (Signed)
Mevcut veya expired subscribers'a target:
- App Store Connect'te offer oluştur (ID + price + duration)
- Private key download (one-time)
- Server'da JWT sign
- App'te
.promotionalOffer()parameter ile purchase
Server JWT Signing
typescript
1import crypto from 'crypto';2 3function signPromoOffer(4 offerID: string,5 productID: string,6 subscribeID: string // user's Apple ID hash7): string {8 const nonce = crypto.randomUUID();9 const timestamp = Math.floor(Date.now() / 1000);10 11 const data = `${bundleID}\u2063${keyID}\u2063${productID}\u2063${offerID}\u2063${subscribeID}\u2063${nonce}\u2063${timestamp}`;12 13 const signature = crypto.sign('sha256', Buffer.from(data), privateKey);14 return signature.toString('base64');15}iOS Client
swift
1let signed = await myBackend.signPromoOffer(offerID: "winter_discount")2 3let result = try await product.purchase(options: [4 .promotionalOffer(5 offerID: signed.offerID,6 keyID: signed.keyID,7 nonce: signed.nonce,8 signature: signed.signature,9 timestamp: signed.timestamp10 )11])Use case: Current subscribers'a discount ile upgrade.
Winback Offers (iOS 18+)
iOS 18'te eklendi — canceled users'a özel offer:
- App Store Connect'te winback offer oluştur
- User cancel ettiğinde App Store automatic shows winback
- App içinde de trigger edilebilir
App içi winback tetikleme
swift
1let winbackOffers = product.subscription?.winBackOffers ?? []2 3if let offer = winbackOffers.first {4 let result = try await product.purchase(options: [5 .winBackOfferID(offer.id)6 ])7}Churn reduction için altın. %15-25 canceled user'ı geri getiriyor.
Offer Codes (Redeemable)
App Store Connect → Subscriptions → Generate Custom Codes:
- Single-use codes (50,000'e kadar batch)
- Fixed-use (same code 10x use)
- Custom expiration
- Tied to specific offer
Distribute
- Influencer marketing: "Code: TECHSARAH for 50% first year"
- Customer support: "Here's 30-day trial extension"
- Press/reviewers: Full free access
User redeem: Settings > Apple ID > Subscriptions > Redeem Code.
Tracking
Dashboard'da per-code:
- Redeemed count
- Revenue attributed
- Conversion to paid (after trial)
Family Sharing
"Family Sharing Enabled" toggle'ı App Store Connect'te aktif et.
Impact
- 1 satın alma → 6 family member aynı pro'ya sahip
- User purchase receipt'inde
ownershipType: familySharedgörünür
swift
1for await entitlement in Transaction.currentEntitlements {2 if case .verified(let transaction) = entitlement {3 if transaction.ownershipType == .familyShared {4 print("Family sharing")5 } else {6 print("Direct")7 }8 }9}Decision
- Enable: User-friendly, premium feature signal
- Disable: Revenue maksimize (6 family member ayrı öde)
Default öneri: Enable — user satisfaction, word-of-mouth.
Pricing ve Region
165 region'da pricing:
- Dashboard → Pricing tab → "Add pricing for [region]"
- Default: App Store'un currency conversion önerisi
- Custom: Ülke-spesifik discount (India %50 cheaper, Turkey %40 cheaper)
Custom Pricing Strategies
- Emerging markets: India, Brazil, Turkey — %40-60 daha ucuz
- High-income markets: US, UK, Germany — full price
- Developing markets: Vietnam, Philippines — %60 discount
PPP (Purchasing Power Parity) adjusted pricing, conversion %50-200 artırabiliyor.
Analytics Dashboard
App Store Connect → Analytics:
- Subscriptions: Active count, new subscribers, renewals, churn
- Revenue: Daily, monthly — by product, region
- Offer performance: Intro/promo/winback conversion
- User cohorts: Day 1, 7, 30, 90 retention
Export CSV for deeper analysis.
Key Metrics to Track
- MRR: (monthly recurring revenue)
- LTV: (lifetime value)
- Churn rate: (monthly)
- Conversion rate: (free → paid)
- Trial-to-paid
- Offer uptake %
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
Yeni subscription product launch ederken: 1. ✅ Product ID: consistent cross-platform (`pro_monthly`) 2. ✅ Subscription group tanımla (tier structure için) 3. ✅ Pricing 165 region (PPP-adjusted) 4. ✅ Localized display name + description (8+ dil) 5. ✅ App Store screenshot (subscription features showcasing) 6. ✅ Intro offer (7-gün trial default) 7. ✅ Family Sharing toggle (öneri: aktif) 8. ✅ Offer codes (launch marketing için 100 unit) 9. ✅ Winback offer setup (iOS 18+ required) 10. ✅ Analytics dashboard'da custom segments 11. ✅ Webhook (RevenueCat veya self-built) 12. ✅ Paywall UX (SwiftUI + RevenueCatUI önerilir) **External Resources:** - [App Store Connect Help](https://help.apple.com/app-store-connect/) - [Subscriptions guide](https://developer.apple.com/app-store/subscriptions/) - [Offer codes guide](https://help.apple.com/app-store-connect/#/devf711f2ad2) - [Winback offers](https://developer.apple.com/documentation/appstoreserverapi/win-back_offer) - [Family Sharing](https://developer.apple.com/documentation/storekit/in-app_purchase/testing_in-app_purchases_with_family_sharing)
Sonuç
App Store Connect subscription management mature tool. Intro + promo + winback offers + offer codes + family sharing + regional pricing — hepsi production için kritik. PPP-adjusted pricing + winback offers %30+ revenue artışı yaratabiliyor. Dashboard analytics ile data-driven decisions. Manuel self-build zor; RevenueCat orchestration için ideal complement.
*İlgili yazılar: StoreKit 2, RevenueCat, $1M App Story.*

