StoreKit 2 refinements, App Store Server API notification history, IAP testing improvements, benchmarks in app analytics, and Apple Pay improvements. Everything you need to know about IAP payments and monetization from WWDC 2022.
Table of Contents:
WWDC22 wrapped up this week and we've got you covered on the key announcements relating to payments, monetization, and in-app purchases from Apple WWDC22:
Apple Pay received major new capabilities to will help merchants remove purchase friction and do more. Let’s take a look:
Apps that accept payments via an approved payments partner such as Stripe or Square can now accept contactless payments. This way, no extra hardware is required to accept payments from customers using Apple Pay, Apple Watch, contactless credit or debit cards, or other digital wallets.
BNPL - buy now, pay layer - is coming to Apple Pay. Customers can now split a purchase across four equal payments over six weeks. No additional interest or fees are applied, and merchants don’t have to do anything.
Once an Apple Pay payment is complete, merchants can how add additional order details that will show up seamlessly in the Wallet. For example, surface order tracking details, order changes, or provide easy access to customer service options.
Automatic or recurring payments can now happen independent of a device using merchant tokens. This means if a user upgrades to a new iPhone, their payment information will remain active even if they remove a card from their old device.
Merchants can also support new transaction types to fine-tune the payment experience with the Payment Request API.
👉Read more: Setup Apple Offer Codes
App Store App Analytics will soon have new App Benchmarks so you can see how your app’s performance compares to your peers. Peers are determined by Apple based upon your category (e.g. Travel) and business model (e.g. subscription). This is done in a way to protect end user privacy and to protect your app’s specific performance. Benchmark results are shown via a percentile distribution.
Here are the metrics available for comparing your app to others:
Conversion rate is the rate at which users download or re-download your app after seeing it on the App Store. This metric will let you compare your user acquisition to your competitors.
Benchmark your app’s retention on Day 1, Day 7, and Day 28 post-download compared to your competitors. Strong retention over time is a good measurement for how well your app is doing in keeping users engaged.
See how well your app avoids crashes versus your peers. Crashes are a negative user experience that can cause users to find alternatives.
Apple’s privacy-focused click measurement solution is taking another leap forward. SKAdNetwork 4.0 will support new capabilities and is coming later this year. Advancements include:
Advertises will be able to attribute web-based ad interactions that lead to an app download from Apple’s App Store. This will give app publishers are more holistic view of their app campaigns.
Postbacks from multiple conversion windows will help advertisers and ad networks better understand user app engagement over time.
Advertising becomes more flexible and gets more attribution information while still maintaining end user privacy.
Similar to the App Store's in-app events, LiveOps will include an Events feature. Events will be surfaced throughout the Play Store to give you more exposure.
Bring App Store Connect IAP products to Xcode for testing without manually re-entering data.
Test new scenarios such as code redemptions, refund requests, price increases, or grace periods. This makes it much easier to validate certain previously hard to test scenarios.
The IAP sandbox is getting better. At last, Apple is making it easier to add sandbox testers and to test certain complex scenarios in the sandbox environment. This is a welcome addition as you advance your IAP implementation from development to App Store release.
Introduced last year at WWDC21, StoreKit 2 was a major step forward for app monetization via in-app purchases or subscriptions. This year, Apple is further refining StoreKit 2 to make it even easier for developers to work with.
App developers now have the ability to get more transaction detail via the AppTransaction API in StoreKit 2. Developers can more easily access the transaction history in-app. Additionally, transitioning an app from a paid to freemium business model is now easier than ever.
Now app developers can have a history of notifications and in-app purchase transactions sent to their backend via the App Store Server API. This is useful when your backend server has an outage or if you need to replay events for scenario testing. The new API also allows you to look up IAP purchase history.
Lastly, Apple is extending more StoreKit 2 APIs such as presenting an offer sheet to SwiftUI apps. This is a welcome addition as SwiftUI matures and more and more developers adopt SwiftUI as their first choice for building apps for Apple platforms.
👉Read more: IAP Updates WWDC20
WWDC22 made a lot significant announcements for app publishers related to payments, monetization, and in-app purchases. From Apple Pay merchant improvements, to App Store Benchmarks, to IAP improvements, developers can look forward to having access to the most robust commerce capabilities yet.
Combine Apple’s commerce advancements with Nami’s entitlement engine, native paywall manager, and paywall A/B testing , and it’s easier than ever to grow and optimize your app revenue. If you’re interested in giving Nami a spin for your own app, you can create a free account here.
if(window.strchfSettings === undefined) window.strchfSettings = {};
window.strchfSettings.stats = {url: "https://nami.storychief.io/en/iap-payments-wwdc-2022?id=513887180&type=26",title: "Payments, Monetization & In-App Purchases at WWDC 2022",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
(function(d, s, id) {
var js, sjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {window.strchf.update(); return;}
js = d.createElement(s); js.id = id;
js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
js.async = true;
sjs.parentNode.insertBefore(js, sjs);
}(document, 'script', 'storychief-jssdk'))