<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Henning</title>
    <description>The latest articles on DEV Community by Henning (@henning).</description>
    <link>https://dev.to/henning</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1160079%2F092eade6-2219-4e7b-a44b-c9f2ee579240.png</url>
      <title>DEV Community: Henning</title>
      <link>https://dev.to/henning</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/henning"/>
    <language>en</language>
    <item>
      <title>Glassfy Foundation Is Now Entirely FREE</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Thu, 25 Jan 2024 08:27:14 +0000</pubDate>
      <link>https://dev.to/glassfy/glassfy-foundation-is-now-entirely-free-4md9</link>
      <guid>https://dev.to/glassfy/glassfy-foundation-is-now-entirely-free-4md9</guid>
      <description>&lt;p&gt;I am thrilled to announce an unprecedented milestone in the world of in-app revenue infrastructure: The first ever in-app revenue product that is entirely for free. It is called Glassfy Foundation.&lt;/p&gt;

&lt;p&gt;This momentous shift reflects our commitment to reduce financial constraints from high store commissions but also additional tool fees that chip away at profit margins. We believe that with reduced financial constraints, app creators can redirect their efforts toward what they do best - creating awesome apps!&lt;/p&gt;

&lt;h2&gt;
  
  
  What it was
&lt;/h2&gt;

&lt;p&gt;Previously, our Free plan provided users with our open-source SDK and subscription management platform but it was markedly capped at $10K MTR (monthly tracked revenue), meaning all Glassfy users earning more than $10K MTR had to pay at least our Build plan commission fee.&lt;/p&gt;

&lt;p&gt;Our legacy Build and Grow plans were available at respectively $5 per $1K MTR and $8 per $1K MTR, offering advanced analytics, webhooks, connectors, paywalls, and premium support. Certain features were restricted subject to whether you opted for the Build or Grow plan as highlighted below.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is now
&lt;/h2&gt;

&lt;p&gt;All features of the Free and Build plan and most Grow features are now included in our new product, called &lt;a href="https://glassfy.io/foundation/"&gt;Foundation&lt;/a&gt;. All features on Foundation are available for free without any limitations on monthly tracked revenue. We’ve eliminated entirely the need to measure monthly tracked revenue to make the whole process easier for you. There is no time limit on using the Foundation product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyrjoge34rbq69krmdp5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyrjoge34rbq69krmdp5.png" alt="Image description" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But we’re not stopping there. To sustain our commitment to you, we’re introducing Glassfy Insight, a new premium product. Subscribers will enjoy benefits like same-day priority support and tailored services to supercharge data analysis, consulting, user experience and A/B testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszyfup8ytzse1htmwsy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszyfup8ytzse1htmwsy7.png" alt="Image description" width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we are doing this
&lt;/h2&gt;

&lt;p&gt;In today’s competitive digital landscape, the costs associated with running a profitable app have surged. Every in-app purchase not only incurs high store commissions but also additional tool fees, such as a third-party SDK, to more easily handle your in-app purchases and subscriptions. Collectively, these costs chip away at profit margins, creating challenges for app developers and businesses aiming to sustainably grow and thrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Existing Users
&lt;/h2&gt;

&lt;p&gt;You’ll seamlessly transition to Glassfy Foundation, with the option to add Glassfy Insight if you desire more. Your trust and loyalty mean everything to us.&lt;/p&gt;

&lt;p&gt;This transformation is just the beginning. We’re on a mission to create something extraordinary, continuously innovating to meet your needs as app developers and teams.&lt;/p&gt;

&lt;p&gt;We look forward to grow with you!&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;/p&gt;

&lt;p&gt;Marco Pifferi&lt;/p&gt;

&lt;p&gt;CEO, Glassfy&lt;/p&gt;

</description>
      <category>mobile</category>
    </item>
    <item>
      <title>Restore Purchases: Quick guide for App Developers</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Fri, 10 Nov 2023 07:29:34 +0000</pubDate>
      <link>https://dev.to/glassfy/restore-purchases-quick-guide-for-app-developers-e6</link>
      <guid>https://dev.to/glassfy/restore-purchases-quick-guide-for-app-developers-e6</guid>
      <description>&lt;p&gt;This is your quick guide to understanding the what, why, and how of restoring purchases in-app and why it is critical for the user experience of your end users.&lt;/p&gt;

&lt;p&gt;In today’s competitive app market, providing a smooth and delightful user experience is crucial for app developers and businesses. One important aspect of user experience is the ability to restore in-app purchases seamlessly. In this blog post, we will look at several important things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What restoring purchases means and why it’s important&lt;/li&gt;
&lt;li&gt;Is it a requirement for your app?&lt;/li&gt;
&lt;li&gt;User Experience being the core reason for this functionality&lt;/li&gt;
&lt;li&gt;Handling customers switching phones&lt;/li&gt;
&lt;li&gt;How to add this feature to your app using Glassfy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does restore purchases mean?
&lt;/h2&gt;

&lt;p&gt;To restore a purchase means to enable users to regain access to their previously purchased content or features within an app. When users restore a purchase, it allows them to retrieve and unlock any in-app purchases they have made, such as removing ads, accessing premium content, or restoring subscriptions, without needing to make the purchase again. The restoration process ensures that users can seamlessly transfer their purchase history across devices, reinstallation, or account changes, providing a convenient and uninterrupted experience while maintaining the value of their prior investments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lNMFcKCt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h8u42hfptn1mcgyh3olz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lNMFcKCt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h8u42hfptn1mcgyh3olz.png" alt="restore purchase blinkist" width="250" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(source: Blinkist)&lt;/p&gt;

&lt;h2&gt;
  
  
  Cases for restoring purchases
&lt;/h2&gt;

&lt;p&gt;There are four cases users encounter in which they want to restore transactions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the app was deleted and reinstalled&lt;/li&gt;
&lt;li&gt;If the user has a new device &lt;/li&gt;
&lt;li&gt;If the user has multiple devices signed in the same account&lt;/li&gt;
&lt;li&gt;If the user resets their device to factory settings &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Relationship with the Store
&lt;/h2&gt;

&lt;p&gt;When working directly with StoreKit and Google Billing, the App Store and Play Store allow users to restore purchases made specifically on their respective platforms. This means that users can only regain access to the in-app purchases they made through the App Store on iOS devices or the Play Store on Android devices. The restoration process relies on the transaction history and receipts stored by each platform, ensuring that the appropriate purchases are retrieved and reactivated within the corresponding app store ecosystem. Therefore, users cannot restore purchases made on one platform through the other platform’s restoration mechanism.&lt;/p&gt;

&lt;p&gt;If you’re using Glassfy, and use a Custom Subscriber Id, you can make sure your users share the same purchases or level of access across all their devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it a requirement for my app?
&lt;/h2&gt;

&lt;p&gt;Having the restore purchase functionality in your app is required for all iOS apps published on the App Store that offer in-app purchases. This requirement is in place to protect user investments, maintain trust, and comply with Apple’s guidelines.&lt;/p&gt;

&lt;p&gt;For Android apps, while not required on Play Store, it’s still heavily recommended to implement this feature for the best user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What products can be restored?
&lt;/h2&gt;

&lt;p&gt;Three categories of In-App Purchases require a restore purchase feature:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Non-Consumables: These are one-time purchases that customers make and enjoy indefinitely, as they never expire.&lt;/li&gt;
&lt;li&gt;Auto-Renewable Subscriptions: Customers opt for these to access services or content on a recurring basis. Once purchased, they automatically renew until customers opt to cancel, ensuring uninterrupted access.&lt;/li&gt;
&lt;li&gt;Non-Renewing Subscriptions: These subscriptions grant access to services or content for a defined duration without automatic renewal. Customers have the flexibility to repurchase them as needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  User Experience is what matters
&lt;/h2&gt;

&lt;p&gt;When implementing the restore purchases feature in your app, prioritise the user experience by placing the restore purchases button in strategic locations. Consider including it in your app’s paywall section, as users expect it to be available alongside new purchase options. Additionally, provide a restore option in the settings or account management section to cater to users seeking account-related features.&lt;/p&gt;

&lt;p&gt;By making the restore purchases feature easily accessible in these key areas, you enhance usability, convenience, and overall user satisfaction.&lt;/p&gt;

&lt;p&gt;Tip: While tempting, avoid automatically restoring purchases, it’s better to ask for user permission first, as iOS and Android might require validating their ownership of the purchases through the store’s authentication system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handle customers switching devices
&lt;/h2&gt;

&lt;p&gt;As mentioned earlier, the restoration process is a store process, meaning iOS and Android users can only restore purchases made from the App Store and Play Store respectively.&lt;/p&gt;

&lt;p&gt;This process works perfectly when a customer gets a new phone and stays on the same platform (ie. upgrades from an iPhone to a new iPhone).&lt;br&gt;
The same goes for users uninstalling and reinstalling the app on the same phone.&lt;/p&gt;

&lt;p&gt;However, as it is often the case, a customer might switch from Android to iOS or vice versa.&lt;br&gt;
In that case, having purchased on the store of another platform, the restoration process will have no effect. With Glassfy, you can get around this by using a Custom Subscriber Id, which will allow permissions and entitlements to be shared between platform, according to your configuration!&lt;/p&gt;

&lt;p&gt;For Consumables, such as in-game currencies, additional data might be saved in Glassfy Customer Attributes, your backend, CloudKit, or other solutions, depending on your exact use case. iOS user purchasing a subscription, then switching to Android, will need to continue paying the subscription via the App Store, as there is no way to cancel the subscription server-side.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to add this feature to your app using Glassfy
&lt;/h2&gt;

&lt;p&gt;The Glassfy SDK offers a simple way to restore a user’s purchases. It also gives you right a way the list of permissions for the current user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RVQ-nCwO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfec7ef7bs0r8h7peohl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RVQ-nCwO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfec7ef7bs0r8h7peohl.png" alt="Glassfy SDK restore purchase code" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For more information and code samples, please &lt;a href="https://docs.glassfy.io/docs/sdk-usage"&gt;consult our SDK documentation&lt;/a&gt; This feature is available on all our SDKs (iOS, Android, React Native, Flutter and Capacitor.)&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>appmonetization</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Apple Fiscal Calendar 2024</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Mon, 23 Oct 2023 07:22:48 +0000</pubDate>
      <link>https://dev.to/glassfy/apple-fiscal-calendar-2024-1faf</link>
      <guid>https://dev.to/glassfy/apple-fiscal-calendar-2024-1faf</guid>
      <description>&lt;p&gt;Apple’s fiscal calendar is a unique schedule that the company uses for accounting, reporting, and paying its app developers. It is different from the standard calendar year.&lt;/p&gt;

&lt;p&gt;Overall, Apple’s fiscal calendar is an important tool for app developers to understand and use to their advantage. By being aware of the payment schedule and seasonal trends, developers can better manage their finances and grow their businesses.&lt;/p&gt;

&lt;p&gt;Below we are going to make you conversant with what exactly is Apple’s fiscal year and when you are getting paid.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Apple’s Fiscal Calendar
&lt;/h2&gt;

&lt;p&gt;Simply put, Apple’s fiscal calendar is a schedule in which Apple hands out the application’s revenue to each mobile app owner, withholding their cut of App Store fees and sales taxes, where it applies. &lt;/p&gt;

&lt;p&gt;Of course, if you are an iOS app developer, you can earn revenue from your products every day, but you will receive the actual earnings only on the chosen dates by Apple on their fiscal calendar. Here’s the 2024 calendar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uoJs17wM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57beuemi20v4rdrglthx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uoJs17wM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57beuemi20v4rdrglthx.png" alt="Apple Payout Date 2024" width="800" height="889"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Apple Fiscal Calendars works
&lt;/h2&gt;

&lt;p&gt;It’s important to note that a fiscal year isn’t the same as the typical calendar year. A fiscal year lasts one year, but may not necessarily start at the beginning of a calendar year.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Apple fiscal year starts on the last Sunday of September&lt;/li&gt;
&lt;li&gt;Apple’s fiscal calendar is divided into four quarters. Each quarter comprises 13 weeks&lt;/li&gt;
&lt;li&gt;Each period begins and ends on the same day of the week, and most payment dates come 33 days after the end of the previous fiscal month&lt;/li&gt;
&lt;li&gt;Apple uses the North American calendar for its fiscal year: a week starts on a Sunday and ends on a Saturday&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When You Are Getting Paid
&lt;/h2&gt;

&lt;p&gt;You are always getting paid on the same day of the week, which happens to be Thursday this fiscal year.&lt;br&gt;
Note, that you will get paid for the revenue generated 2 months prior to the payout date. We have written down the dates for you in the simplest way here:&lt;/p&gt;

&lt;p&gt;Revenue Generated During  &lt;strong&gt;Payout Date&lt;/strong&gt;&lt;br&gt;
August 4 – September 7, 2023  &lt;strong&gt;October 5, 2023&lt;/strong&gt;&lt;br&gt;
September 8 – October 5, 2023 &lt;strong&gt;November 2, 2023&lt;/strong&gt;&lt;br&gt;
October 6 – November 2, 2023  &lt;strong&gt;December 7, 2023&lt;/strong&gt;&lt;br&gt;
November 3 – December 7, 2023 &lt;strong&gt;January 4, 2024&lt;/strong&gt;&lt;br&gt;
December 8, 2023 – January 4, 2024    &lt;strong&gt;February 1, 2024&lt;/strong&gt;&lt;br&gt;
January 5 – February 1, 2024  &lt;strong&gt;March 7, 2024&lt;/strong&gt;&lt;br&gt;
February 2 – March 7, 2024    &lt;strong&gt;April 4, 2024&lt;/strong&gt;&lt;br&gt;
March 8 – April 4, 2024   &lt;strong&gt;May 2, 2024&lt;/strong&gt;&lt;br&gt;
April 5 – May 2, 2024 &lt;strong&gt;June 6, 2024&lt;/strong&gt;&lt;br&gt;
May 3 – June 6, 2024  &lt;strong&gt;July 4, 2024&lt;/strong&gt;&lt;br&gt;
June 7 – July 4, 2024 &lt;strong&gt;August 1, 2024&lt;/strong&gt;&lt;br&gt;
July 5 – August 1, 2024   &lt;strong&gt;September 5, 2024&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to best manage the impact of Apple’s fiscal calendar
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a budget and financial plan
&lt;/h3&gt;

&lt;p&gt;This will help you to track your income and expenses and make sure that you have enough money to cover your expenses, even during periods when your payments may be delayed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Save money for taxes
&lt;/h3&gt;

&lt;p&gt;Apple will withhold taxes from your payments, so it is important to set aside money for taxes throughout the year.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use a payment processor that supports Apple Pay.
&lt;/h3&gt;

&lt;p&gt;This will allow you to receive your payments more quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Track your sales and expenses
&lt;/h3&gt;

&lt;p&gt;This will help you to identify trends and make informed decisions about your business.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be prepared for seasonal fluctuations in sales
&lt;/h3&gt;

&lt;p&gt;If you know that your sales are typically lower during certain months, you can plan accordingly by reducing your expenses or increasing your marketing efforts during those months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Are Apple’s payment dates consistent?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple usually pays 33 days after the end of the fiscal month, but there have been exceptions on occasions, so it would be best to expect slight variations in the dates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does Apple occasionally include an extra week in its fiscal year?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Approximately every five years Apple adds an extra week to its financial year in order to maintain alignment with the standard calendar year. This way over time Apple’s FY stays up-to-date with the calendar the main part of the population is using.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are Apple’s fiscal calendar and payment dates the same worldwide?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, but local banks can have a different processing time and the payments might come a bit later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What requirements must be met to receive payments from Apple?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In order to receive payments for your application, you should have a Paid Applications Agreement in effect. You would also be asked to provide banking information in App Store Connect and exceed the minimum monthly payment threshold for each country or region you are selling your content and services. The last thing you would have to do is complete any monthly invoicing requirements based on your location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When are the quarters in the Apple fiscal calendar?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first quarter starts on the 1st of October and ends on the 31st of December.&lt;/li&gt;
&lt;li&gt;The second quarter starts on the 1st of January and ends on the 31st of March.&lt;/li&gt;
&lt;li&gt;The third quarter starts on the 1st of April and ends on the 30th of June.&lt;/li&gt;
&lt;li&gt;The fourth and last quarter starts on the 1st of July and ends on the 30th of September.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>applefiscalcalendar</category>
      <category>mobile</category>
      <category>ios</category>
    </item>
    <item>
      <title>3 reasons NOT to use StoreKit</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Fri, 13 Oct 2023 08:09:25 +0000</pubDate>
      <link>https://dev.to/glassfy/3-reasons-not-to-use-storekit-39lg</link>
      <guid>https://dev.to/glassfy/3-reasons-not-to-use-storekit-39lg</guid>
      <description>&lt;h2&gt;
  
  
  Reason 1: It doesn’t scale
&lt;/h2&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;h3&gt;
  
  
  S﻿caling limitations
&lt;/h3&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;A few other technical considerations when scaling with StoreKit for app startups;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;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. &lt;/li&gt;
&lt;li&gt;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. &lt;/li&gt;
&lt;li&gt;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. &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Scaling alternative
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reason 2: It doesn’t provide insights
&lt;/h2&gt;

&lt;p&gt;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 &amp;amp; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Insights limitations
&lt;/h3&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;h3&gt;
  
  
  Insights alternative
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Benefits of Cohort Retention Analysis on Glassfy;&lt;/p&gt;

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

&lt;p&gt;You may also like: &lt;a href="https://glassfy.io/blog/glassfy-watcher-mode/"&gt;App Analytics: Glassfy Watcher Mode Makes It Easy To Gain Insight Into Your App Revenue Performance&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reason 3: It hinders your app growth
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  G﻿row limitations
&lt;/h3&gt;

&lt;p&gt;What are some of the other additional drawbacks of iOS Offer Codes?&lt;/p&gt;

&lt;p&gt;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.&lt;br&gt;
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.&lt;br&gt;
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. &lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;You may also like: &lt;a href="https://glassfy.io/blog/leverage-promotional-offers/"&gt;How to leverage Promotional Offers on iOS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  G﻿row alternative
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Some of the benefits of using &lt;a href="https://glassfy.io/"&gt;Glassfy&lt;/a&gt; codes that can be used in conjunction with Offer codes or on their own including the following;&lt;/p&gt;

&lt;p&gt;Glassfy codes are Store agnostic, you can grant users access to your app both on iOS and Android. &lt;br&gt;
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. &lt;br&gt;
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.&lt;/p&gt;

</description>
      <category>storekit</category>
      <category>appsubscriptions</category>
      <category>apprevenue</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Countdown to mandatory move to Google Billing 5</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Thu, 21 Sep 2023 07:25:44 +0000</pubDate>
      <link>https://dev.to/glassfy/countdown-to-mandatory-move-to-google-billing-5-8je</link>
      <guid>https://dev.to/glassfy/countdown-to-mandatory-move-to-google-billing-5-8je</guid>
      <description>&lt;p&gt;The inevitable move to Google Billing 5 is coming in hot, here is a rundown and a reminder you do not have to handle that migration alone.&lt;/p&gt;

&lt;p&gt;Google Play Billing Library 5 is the latest version of Google’s in-app billing and subscriptions library. It was released in March 2023, and it includes a number of new features and improvements.&lt;/p&gt;

&lt;p&gt;One of the most significant changes in Google Play Billing Library 5 is the introduction of subscriptions. Subscriptions allow users to purchase access to your app or service on a recurring basis. This is the gold standard to generate recurring revenue from your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Play Billing Library 5 subscription architecture
&lt;/h2&gt;

&lt;p&gt;From this version of the Billing Library onwards, single subscriptions can now have multiple base plans, and base plans can have multiple offers. In this new architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscriptions refer to a set of benefits that users can access during a period of time (what you sell). For example, a “Gold tier”&lt;/li&gt;
&lt;li&gt;Base plans refer to a specific configuration of billing period, renewal type and price (how you sell). For example, “annual with auto-renew”, “prepaid monthly”&lt;/li&gt;
&lt;li&gt;Offers refer to discounts available to eligible users of your app (any modifications to the base price). For example, “20% for monthly to annual upgrade”, “free 14-day trial for new users”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Previously, every unique combination of benefits, billing period and discount or offer, required its own subscription.&lt;/p&gt;

&lt;p&gt;Another new feature in Google Play Billing Library 5 is the ability to offer prepaid plans. Prepaid plans are subscriptions that do not automatically renew. Instead, users must proactively extend their subscription before it expires. This can be a good option for apps that are targeting markets with limitations on auto-renewing subscriptions, such as India.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Google Play Billing Library 5 improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Improved support for multiple currencies&lt;/li&gt;
&lt;li&gt;Improved error handling&lt;/li&gt;
&lt;li&gt;Improved performance
If you’re developing an app that uses in-app billing or subscriptions, you &lt;strong&gt;must&lt;/strong&gt; upgrade to Google Play Billing Library 5 &lt;strong&gt;by October 2023&lt;/strong&gt;. It includes a number of new features and improvements that can help you improve your app’s monetisation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Google Play Billing Library 4 deprecation timeline
&lt;/h2&gt;

&lt;p&gt;As a rule, Google supports every version of their Play Billing Library for (at least) 2 years after it releases. This means that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Play Billing Library 4 can no longer be used in newly launched apps from August of 2023&lt;/li&gt;
&lt;li&gt;Play Billing Library 4 can no longer be used in updates to existing apps from November of 2023&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The timeline to switch over is fast approaching and Google has recommended that developers try and remain on the newest version of Play Billing Library at all times. That not every developer takes that advice to heart is clear when reviewing the &lt;a href="https://play.google.com/sdks/details/com-android-billingclient-billing"&gt;Google Play Billing Library adoption by version in the Google Play SDK index&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Upgrade to Google Play Billing Library 5
&lt;/h2&gt;

&lt;p&gt;Well, make it simple and offload all this work to Glassfy and let us seamlessly bring you over to Google Billing 5.&lt;/p&gt;

&lt;p&gt;Please upgrade your Glassfy SDK (&lt;strong&gt;Capacitor 3.2.0, Flutter 1.5.0, React Native 1.5.0 or Android SDK 1.5.0&lt;/strong&gt;) and you will have support to Google Billing 5. No changes are required to your app: just install the new SDK.&lt;/p&gt;

&lt;p&gt;In the coming weeks we will release another update of the SDK that further improve Billing 5 feature with BasePlan and offer support: stay tuned!&lt;/p&gt;

&lt;p&gt;In short, to upgrade to Google Play Billing Library 5, you’ll need to update your app’s dependencies. You can do this by editing your app’s build.gradle file and updating the version of the Google Play Billing Library dependency.&lt;/p&gt;

&lt;p&gt;Once you’ve updated your dependencies, you’ll need to rebuild your app. After your app has been rebuilt, you can test it to make sure that it’s working properly.&lt;/p&gt;

&lt;p&gt;Follow Googles guide &lt;a href="https://developer.android.com/google/play/billing/integrate"&gt;here&lt;/a&gt; if you are going down that route.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion and how Glassfy makes it easy
&lt;/h2&gt;

&lt;p&gt;Google Play Billing Library 5 is a major upgrade that includes a number of new features and improvements. If you’re developing an app that uses in-app billing or subscriptions, you must upgrade to Google Play Billing Library 5.&lt;/p&gt;

&lt;p&gt;If you would rather not have to deal with the complexities and overhead of moving to Google Billing 5, you can offload that to Glassfy - signup &lt;a href="https://glassfy.io/"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>googlebilling</category>
      <category>appsubscription</category>
      <category>appmonetization</category>
      <category>googleplaystore</category>
    </item>
    <item>
      <title>What iOS Developers Need to Know about Receipt Validation</title>
      <dc:creator>Henning</dc:creator>
      <pubDate>Wed, 13 Sep 2023 08:55:19 +0000</pubDate>
      <link>https://dev.to/glassfy/what-ios-developers-need-to-know-about-receipt-validation-2c15</link>
      <guid>https://dev.to/glassfy/what-ios-developers-need-to-know-about-receipt-validation-2c15</guid>
      <description>&lt;p&gt;Receipt validation, server-side verification, on-device validation and now transaction-side: We know it can be somewhat confusing at the best of times to truly grasp what your iOS stack should look like for your in-app purchases &amp;amp; subscriptions, not to mention the endless jargon adding to further complexity for app leaders.&lt;/p&gt;

&lt;p&gt;One thing is certain; it’s difficult to unpick if you haven’t the technical expertise or knowledge to know what to build and which solutions to implement for your in-app purchases &amp;amp; subscriptions. &lt;/p&gt;

&lt;p&gt;But what technical basics should you be aware of even if you’re not the most technically astute? Let’s dive in so you can help your engineers focus on what matters most: Building new features that drive more value for your customers and in turn, grow your subscription revenue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Receipt to transaction-side Validation: What’s the difference?
&lt;/h2&gt;

&lt;p&gt;Sounds complex, right? It can be but don’t overthink it. Developers still need to authenticate purchases server-side to ensure that purchases are made by legitimate users. It can of course be done ‘locally’ on-device, but for the purposes of this article we’re going to focus on server-side validation for your iOS in-app purchases and subscriptions. &lt;/p&gt;

&lt;p&gt;Having a server running in the background allows you to easily query the status of your subscribers, meaning you know exactly which piece of paid content they have unlocked within the app at any given moment. Without a server you might still have a fabulous front-end, a great product and revenue lining your pocket nicely but visibility into subscriber status’ and their entitlements will be almost impossible.&lt;/p&gt;

&lt;p&gt;Receipt validation involves the in-app purchase or subscription receipt being validated server-side to determine the authenticity of the user and subsequent purchase. Without getting too bogged down in the technical weeds, your server (on the backend of the app) communicates with Apple’s verifyreceipt endpoint, which in turn verifies the purchase as authentic or flags it as fraudulent in much rarer cases. &lt;/p&gt;

&lt;p&gt;It’s the best way to authenticate purchases on iOS version 14 and below using the original StoreKit - Apple’s technology for allowing developers to add in-app purchases and subscriptions to their app. However, after the release of StoreKit 2 in 2021, Apple announced that receipts can now be validated by StoreKit which marks the end of the verifyreceipt endpoint. &lt;/p&gt;

&lt;p&gt;Instead Apple now provides developers the option to validate purchases server-side using the App Store Server API, this API returns the latest transaction of a particular user as well as their full paginated history of purchases. This is where it might get confusing, we are now calling it transaction-side as opposed to receipt validation as a consequence of the deprecation of the verifyreceipt endpoint on Apple’s side. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why should you validate purchases server-side?
&lt;/h2&gt;

&lt;p&gt;The receipt no longer needs to be sent across various systems in order for it to be validated.  Although all of this is not compulsory, we recommend still validating purchases server-side for several reasons outlined below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increased Visibility: Similarly to receipt validation with the original StoreKit, transaction-side validation gives you insight into which subscriptions a user has unlocked inside your app. &lt;/li&gt;
&lt;li&gt;Better Data: Without validating purchases server-side using the App Store Server API, you’re unlikely to gain the full picture of what’s happening with your subscribers in real-time.&lt;/li&gt;
&lt;li&gt;Managing refunds: Historically a challenge on StoreKit, having a backend server allows you to manage, track and view refunds more easily.&lt;/li&gt;
&lt;li&gt;Cross-Platform Subscription Access: Validating purchases transaction-side gives you the ability to more easily manage premium access to subscriptions to the same user across the web and Stores.&lt;/li&gt;
&lt;li&gt;Real-time Event Notifications: Using the App Store Server Notifications API gives you granular visibility into purchase events in real-time. For example, when a subscriber turns off auto-renewal on their auto-renewable subscription, enters billing retry status or requests a refund. App Store Server Notifications V2 is significantly more sophisticated than the original App Store Server Notifications API V1. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Can everyone switch to transaction-Side validation?
&lt;/h2&gt;

&lt;p&gt;Of course, but we must remember that StoreKit 2 is only available on iOS version 15 and above coupled with the fact that it’s currently limited to the Swift programming language exclusively. We still recommend validating receipts server-side using the traditional verifyreceipt endpoint unless you’re only supporting iOS versions +15 as well as coding your app in Swift - This is where transaction-side comes beautifully into play and it might be a good time to update to the more advanced StoreKit if you’re ready to bin support for iOS 14 and below, but this is by no means a simple task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We recommend validating purchases server-side, regardless of whether you’re using the original StoreKit or the more advanced StoreKit 2 with the introduction of the App Store Server API - Which as we’ve seen in this year’s WWDC 2023, continues to offer greater functionality and sophistication in its quality of APIs. &lt;/p&gt;

&lt;p&gt;Setting up a server for managing your subscriptions and in-app purchases can be a complicated and arduous task, especially for those with little experience and in need to get to market quickly with subscriptions. &lt;/p&gt;

&lt;p&gt;You may also like: &lt;a href="https://glassfy.io/blog/the-storekit-alternative/"&gt;3 reasons NOT to use StoreKit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tools like Glassfy handle server-side validation for you, allowing you to focus on what matters most: Building new features and functionality to drive greater value for your users, which in turn generates you more revenue for your business.&lt;/p&gt;

</description>
      <category>receiptvalid</category>
      <category>ios</category>
    </item>
  </channel>
</rss>
