iOS 구독 그룹 만들기
이 플러그인의 설치 단계와 전체 마크다운 가이드를 포함한 설정 프롬프트를 복사하세요.
iOS 앱에서 여러 구독 수준을 관리하고 조직하기 위한 구독 그룹이 중요합니다. 구독 그룹이 어떻게 작동하는지 이해하는 것은 업그레이드, 다운그레이드 및 크로스 그레이드 기능을 구현하는 데 필수적입니다.
구독 그룹이란 무엇인가?
구독 그룹이란 무엇인가?구독 그룹은 사용자가 선택할 수 있는 관련된 구독의 집합입니다. 사용자는 한 그룹 내에서 한 번에 하나의 구독만 구독할 수 있습니다. 구독을 변경할 때 Apple은 자동으로 전환을 처리합니다.
구독 그룹이 중요한 이유
구독 그룹이 중요한 이유구독 그룹은 다음과 같은 기능을 제공합니다:
- 가격 계층제: 기본, 프리미엄, 및 최종 계획 제공
- 다양한 기간: 월, 년, 및 영구 옵션
- 업그레이드/다운그레이드 논리: 구독 변경을 자동으로 처리
- 간소화된 관리: 관련 구독을 그룹화
구독 등급
구독 등급 섹션그룹 내에서 각 구독은 가장 높은 가치 (등급 1) 에서 가장 낮은 가치 (등급 n) 로 등급付け되어야 합니다. 이 등급付け은 구독 변경을 분류하는 데 사용됩니다.

레벨 예시
레벨 예시 섹션 제목레벨 1 (가장 높은 값)
- 프리미엄 연간 ($99.99/년)
- 최고 월 ($19.99/월)
레벨 2 (중간 값)
- 표준 연간 ($49.99/년)
- 프리미엄 월 ($9.99/월)
레벨 3 (가장 낮은 값)
- __CAPGO_KEEP_0__
- __CAPGO_KEEP_1__
__CAPGO_KEEP_2__
__CAPGO_KEEP_3____CAPGO_KEEP_4__
__CAPGO_KEEP_5__
애플은 등급 순위에 따라 3 가지 유형의 구독 변경을 자동으로 처리합니다.__CAPGO_KEEP_6__ __CAPGO_KEEP_7__ __CAPGO_KEEP_8__
__CAPGO_KEEP_9__
- 이동 __CAPGO_KEEP_0__
- __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__
- __CAPGO_KEEP_4__
__CAPGO_KEEP_5__
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time2. 구독 등급 하락
낮은 등급으로의 전환 (예: 등급 1 → 등급 2)낮은 등급의 구독으로 이동 __CAPGO_KEEP_6__ __CAPGO_KEEP_7__
행동:
- 효과가 시작되는 날짜: 다음 갱신일
- 사용자는 현재 구독을 기간이 끝날 때까지 유지합니다.
- 구독이 만료된 후 자동으로 새로운 구독이 시작됩니다.
예시:
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Cross급
Cross급 섹션 제목: “3. Cross급”다른 구독으로 전환 같은 티어 레벨에서.
행동은 기간에 따라 달라집니다:
다양한 기간 → 기간이 같으면 다운그레이드
- 다음 갱신일부터 적용
- 예시: 월간 프리미엄 (레벨 1) → 연간 프리미엄 (레벨 1)
같은 기간 → 기간이 같으면 업그레이드
- 즉시 적용
- 예시: 프리미엄 월간 (레벨 1) → 얼티밋 월간 (레벨 1)
구독 그룹 만들기
구독 그룹 만들기 섹션-
Navigate to Subscriptions
App Store Connect에서 앱을 선택하고 Monetize > 구독.
-
그룹 만들기
클릭 + '구독 그룹' 옆에 있는 '새 그룹 만들기'를 클릭합니다.
-
그룹 이름
구독 그룹에 포함된 구독을 반영하는 설명적인 이름을 선택하세요.
- '프리미엄 접근'
- '클라우드 스토리지 플랜'
- '프로 기능'
-
구독 추가
__CAPGO_KEEP_0__ 후에 개인 구독을 그룹에 추가하세요. 각 구독은 등급 순위를 가집니다.
-
__CAPGO_KEEP_1__ 등급
__CAPGO_KEEP_2__ 구독을 가장 높은 가격 (1)부터 가장 낮은 가격까지 정렬하세요. 고려하세요:
- 년간 계획은 월간 계획보다 등급이 높습니다.
- 가격이 높은 구독은 가격이 낮은 구독보다 위에 있습니다.
- 최상위/프리미엄 구독은 가장 높은 등급을 가집니다.
__CAPGO_KEEP_3__
__CAPGO_KEEP_4____CAPGO_KEEP_5__
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});__CAPGO_KEEP_7__
__CAPGO_KEEP_8__변경 유형 감지
변경 유형 감지 섹션import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});사용자 커뮤니케이션
사용자 커뮤니케이션 섹션변경 동작을 명확하게 항상 전달하세요:
업그레이드:
“You’ll get immediate access to Premium features. We’ll prorate your current subscription.”
다운그레이드:
“You’ll keep Premium access until [renewal date], then switch to Standard.”
크로스 그레이드:
“Your plan will change to Annual billing at the next renewal on [date].”
서버 모니터링
서버 모니터링 섹션__CAPGO_KEEP_0__의 App Store Server Notifications v2 또는 __CAPGO_KEEP_0__의 자체 수신증명 백엔드 사용하여 StoreKit 변경 사항을 데이터베이스에 반영하십시오. 서버通知와 __CAPGO_KEEP_0__를 pair하여 클라이언트와 백엔드가 동기화되도록 하십시오. transactionUpdated 최선의 방법
최선의 방법 섹션
관련 구독을 동일한 그룹에 유지하십시오비관련 기능을 혼합하지 마십시오 (예: 저장소 및 광고 제거)
다른 기능 세트에 대한 별도의 그룹을 생성하십시오- 등급 순위 전략
- Don’t mix unrelated features (e.g., storage and ad removal)
- Create separate groups for different feature sets
Level Ranking Strategy
등급 순위 전략 섹션- 연간 계획 → 월간 계획보다 높은 등급 (같은 등급)
- 가격이 높은 등급 → 높은 등급
- 가격 외에 가치도 고려하십시오
사용자 경험
사용자 경험 섹션- 현재 구독을 명확하게 표시하십시오
- 그룹 내 모든 옵션을 표시하십시오
- 즉시 적용되는 변경 사항과 갱신 시 적용되는 변경 사항을 명확하게 표시하십시오
- 계획 간 쉽게-switching을 허용하십시오
테스트
테스트 섹션- 모든 업그레이드 시나리오를 테스트하십시오
- 모든 다운그레이드 시나리오를 테스트하십시오
- 크로스 그레이드 동작을 확인하십시오
- 웹훅 발동을 확인하십시오
일반적인 시나리오
일반적인 시나리오 제목시나리오 1: 월간 3계층 계획
시나리오 1: 3계층 월간 계획 제목Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- 기본 → 프리미엄: 즉시 업그레이드
- 프리미엄 → 최고급: 즉시 업그레이드
- 최고급 → 프리미엄: 갱신 시 다운그레이드
- 기본 → 최고급: 업그레이드 (즉시)
Scenario 2: 혼합 지속 기간 계획
Scenario 2: 혼합 지속 기간 계획Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- 월 → 연: 교급 (재정기)
- 연 → 월: 다운그레이드 (재정기)
Scenario 3: 다중 층 다중 지속 기간
Scenario 3: 다중 층 다중 지속 기간Level 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)__CAPGO_KEEP_0__
이 설정은 최대 유연성을 제공하면서 명확한 업그레이드/다운그레이드 논리를 유지합니다.
문제 해결구독이 그룹에 나타나지 않습니다:
- 정확한 그룹에 할당되어 있는지 확인하세요
- 최소 '제출 준비' 상태 이상인지 확인하세요
- 제품 ID가 정확한지 확인하세요
업그레이드/다운그레이드 동작이 잘못된 경우:
- 레벨 순위 검토 (1 = 가장 높은 순위)
- 구독 등급이 합리적인지 확인하세요
- 레벨이 정확하게 설정되어 있는지 확인하세요
다른 그룹의 제품:
- 사용자는 동시에 여러 그룹에 구독할 수 있습니다
- 관련 제품을 동일한 그룹에 유지하는 것이 의도된 것입니다
getActiveProducts에서 여러 구독이 표시되는 경우:
- __CAPGO_KEEP_0__
- __CAPGO_KEEP_1__
- __CAPGO_KEEP_2__
__CAPGO_KEEP_3__
__CAPGO_KEEP_4____CAPGO_KEEP_5__ __CAPGO_KEEP_6__.
__CAPGO_KEEP_7__
__CAPGO_KEEP_8____CAPGO_KEEP_9__ __CAPGO_KEEP_10__ __CAPGO_KEEP_11__ @capgo/capgo-native-구매 for the native capability in @capgo/capgo-native-구매, @capgo/capacitor-앱리뷰 for the implementation detail in @capgo/capacitor-앱리뷰, Using @capgo/capacitor-앱리뷰 for the native capability in Using @capgo/capacitor-앱리뷰, @capgo/capacitor-네이티브-마켓 for the implementation detail in @capgo/capacitor-네이티브-마켓, and Using @capgo/capacitor-네이티브-마켓 for the native capability in Using @capgo/capacitor-네이티브-마켓.