3 reasons NOT to use StoreKit
Tags: storekit, appsubscriptions, apprevenue, mobile
Published: 2023-10-13 08:09:25

## Reason 1: It doesn’t scale

For subscription app startups when you’re just starting out with subscriptions, it might seem easy to whack together a premium subscription offering, limiting certain features behind a paid subscription that provides additional value to an already engaged audience. Of course introducing subscriptions require you in most cases to have an already existing loyal user base, for the context of this article we are going to presume that you already have a healthy amount of daily active users frequenting your app and they see value in your existing freemium model; or certainly enough value to hang around in the app for an extended period. 

Once you’ve decided on your subscription tiering (basic/premium), initial pricing, billing cycles (monthly/annual) and the differing value that each subscription tier provides, app startups naturally look to which tools to implement to make the job of setting up subscriptions as easy as possible. Using native StoreKit APIs is by default, the natural way to go. For those unaware, StoreKit in a nutshell is an Apple framework for developers and app companies alike to handle in-app purchases and subscriptions in their iOS apps. StoreKit has greatly improved since the days of the original StoreKit API but nonetheless there are considerations to take firmly into account when opting to scale your app revenue with StoreKit from day 1. 

### S﻿caling limitations
StoreKit, as stated, is the natural default option for iOS developers building indie and side projects. For app startups, many also choose to build and scale their iOS app natively. StoreKit is a trusted environment with developers having built up a great deal of familiarity with the tooling over time. StoreKit also handles the fundamentals of billing issues, taxes and currency conversion as well as unsurprisingly having a seamless integration with the App Store. However, don’t be disappointed when your developers point to the significant amount of leg work involved in setting up and managing subscriptions in StoreKit when you begin to scale your subscription revenue. As app revenue grows, so does the complexity of managing thousands of subscribers and their subsequent subscription entitlements. Complexity also often arises when it comes to validating purchases server-side on the backend, with backend maintenance often distracting developers from building new features and other day to day development work. This is particularly acute for small app companies where the development team as a result of being small and without possessing a dedicated backend team has a requirement to prioritize building new features that drive further value for existing paying subscribers. 

A few other technical considerations when scaling with StoreKit for app startups;

1. Real-time purchase events: Building out Server to Server notifications for live purchase events (billingretry, trialnotconverted, autorenewalturnedoff) requires ongoing maintenance, this has been greatly improved with the introduction of the App Store Server Notifications API V2 in StoreKit 2. However, server maintenance will undoubtedly be inevitable. 
2. App Store Server API: Maintaining the API which gives you information on a customer’s in-app purchase, status of their subscription, renew date for auto-renewable subscriptions and refunds. 
3. Cross-platform: If you have an Android app as well as an iOS app, the architecture is of course totally different and thus requires you to set up the whole process on Android as well. This can delay getting your subscriptions up and running as developers have to complete the subscription set up for both apps. 

### Scaling alternative

Ultimately for app startups getting going with their subscriptions, tools like Glassfy can make this process easier for you. As opposed to having to set up subscriptions in StoreKit, Glassfy’s simple purchase code in our SDK coupled with advanced analytics, price experiments and growth tools can get you not only off the ground in the early days of your subscriptions but also as you begin to scale, grow revenue and drive more users to your app.

## Reason 2: It doesn’t provide insights

App Store Connect gives you a range of subscription metrics to track performance and understand what’s happening in your app. Moreover, it also provides insights into geographical and regional data of your purchases and downloads, allowing you to iterate on your marketing & ASO strategy if you’re just beginning to play around with attribution tools and determine where best to allocate your resources to improve visibility and conversion.

### Insights limitations

App Store Connect does feature a retention and conversions rate tab where you can view both your monthly retention rate and conversion rates resulting from introductory offers (trials or discounts). However, it’s of course limited to solely providing you data on your iOS subscriptions. 

### Insights alternative

On Glassfy, you can use our Cohort Retention Analysis to track the behavior and retention of user cohorts over time. Rather than looking at overall user retention rates like in App Store Connect, cohort analysis groups users based on common behaviors that you can then subsequently measure their retention and engagement within specific time frames.

Benefits of Cohort Retention Analysis on Glassfy;

1. It can help you pinpoint the exact moment in which a user experiences the most friction and churns.
2. It allows you to gain a granular insight into whether your marketing efforts are working in the way you want them to.
3. Breaking down different cohorts will give you areas for improvement.

You may also like: [App Analytics: Glassfy Watcher Mode Makes It Easy To Gain Insight Into Your App Revenue Performance]( https://glassfy.io/blog/glassfy-watcher-mode/)

## Reason 3: It hinders your app growth

Offer Codes are iOS promotional offers that provide developers a way to sell discounted or free access to a subscription. Subject to your use case, you can use them to acquire new subscribers, upsell current subscribers and also win-back churn. Offer codes can be redeemed in various ways including via the redeem Gift Card or within the app itself by entering the unique code. However, generating, tracking and distributing the codes via marketing channels can be tricky.

### G﻿row limitations

What are some of the other additional drawbacks of iOS Offer Codes?

If you haven’t got emails of current, existing or previous users, it may be tricky to distribute the codes in a marketing campaign without those stored in a CRM.
Visibility: Users receiving the codes may not know how to enter them and take advantage of the discount or period of free access without clearly knowing how to use them.
Traceability: As stated above, it can be tricky to understand which user has redeemed which code in the app and to which subscription they have unlocked. 
Cross-platform: It’s unique for iOS users and therefore for similar promotional/offer codes on Android, it requires you to completely use a different system to generate and track the codes.

You may also like: [How to leverage Promotional Offers on iOS](https://glassfy.io/blog/leverage-promotional-offers/)

### G﻿row alternative

Glassfy Universal codes can be used in a similar way to acquire new subscribers to your app, enabling them to purchase the app outside of it or alternatively, the user can be granted free access to content for a specific period of time. It’s important to clarify these are for non-renewable subscriptions in this case.

Some of the benefits of using [Glassfy](https://glassfy.io/) codes that can be used in conjunction with Offer codes or on their own including the following;

Glassfy codes are Store agnostic, you can grant users access to your app both on iOS and Android. 
You can grant and track in Glassfy the duration in which you want the code to expire by and see whether the code has been redeemed. 
You can use our REST API to check whether the code has been redeemed and which user has access to what and for which duration.