Integration with the App Store Connect is required to use this reward type.
Log in to your project in WinWinKit, click Settings -> Integrations -> App Store Connect -> Connect and follow the instructions.
Offer codes is a type of subscription and in-app purchase offers on the App Store. You can use them to acquire, retain, and re-acquire paying users by providing a discount or for free offer for a limited time. With WinWinKit you can create a peer-to-peer referral program that enables current users to share and receive an offer code as a reward for promoting your app. App Store Subscription Offers

Examples

  • Discounted Start: Give a user discounted first three months of a monthly subscription.
  • Cheaper First Year: Attract a user with a lower price for the first year of a yearly subscription.
  • Free Month: Reward with a free month of their active subscription for each invited user.
  • Trial Period: Enable a trial period on a subscription that otherwise is not available.

Guides

Configuring in the App Store Connect

To start rewarding users with Offer Codes, you must first create them in App Store Connect. To create an Offer Code: 1. Sign in to App Store Connect. 2. Navigate to Your App -> Subscriptions. 3. Choose the subscription group containing your subscription. 4. Select the subscription from the list. 5. In the Subscription Prices section, click the add button (+). Subscription Prices 6. From the menu, click Create Offer Codes. 7. Enter a reference name for the offer. You’ll use this reference name to manage the offer in App Store Connect and to select it in WinWinKit when linking it to a reward. 8. Select the Customer Eligibility for your offer.
  • New subscribers: Customers who have never subscribed to any subscription product within the group.
  • Existing subscribers: Customers who are currently subscribed to a product within the group.
  • Expired subscribers: Customers who were previously subscribed to a product within the group, but whose subscription has expired.
All options are supported by WinWinKit.
Note that WinWinKit does not store or provide any information about your user’s current or past subscriptions.
You might want to apply custom logic when displaying rewards for new, existing or expired subscribers.
Create Offer Code 9. Configure Introductory Offers compatibility. If your subscription has an introductory offer, determine whether people redeeming your codes should be eligible to redeem both a code and the introductory offer by choosing from the following options:
  • Yes: Eligible customers will redeem your app’s introductory offer first, then automatically renew to the offer they redeemed with the code.
  • No: Eligible customers will redeem the offer code first, then automatically renew to the standard subscription price without using the introductory offer. If they cancel and resubscribe at any point, they’re still eligible to redeem an introductory offer.
All options are supported by WinWinKit.
10. Click Next. 11. Select the countries or regions where you want to make your offer available, then click Next.
WinWinKit does not fetch or filter availability by countries or regions. If your app is available globally, we recommend you select all. If you have custom requirements to availability you need to handle it on your side.
12. Select Type of Offer.
  • Pay as you go: If you select Pay as you go, customers pay a discounted price for each billing period for a selected duration.
  • Pay up front: If you select Pay up front, customers pay a one-time discounted price for a selected duration.
  • Free: If you select Free, customers access the subscription for free for a selected duration. Learn more about offer types.
All options are supported by WinWinKit.
Type of Offer 13. Choose the appropriate duration, and if applicable, the discounted price for a base country or region, then click Next. 14. Make sure the details of your offer are correct and click Confirm. 15. Congrats, your Offer Code is ready!
You can create multiple Offer Codes for the same or different subscriptions.
Once you create an Offer Code, you won’t be able to edit it. If changes are needed, create a new one.
Be careful when deactivating an Offer Code if it is used with WinWinKit. Deactivating makes it unusable and will cause disturbance for rewards.
For more information please refer to the App Store Connect documentation:

Creating a reward

Let’s create a reward that rewards users with a free month of a subscription. 1. Type Select type “Offer Code"". Reward Type 2. Name and Description Enter name and description.
Name and Description of the reward are shown on Code Link and Affiliate Form pages if enabled, and also shown to Affiliates in their dashboard if configured as part of the User Rewards.
Reward General 3. Key The key value is auto-filled based on the entered name and if is precise enough can be kept as is.
The key is a stable and machine-readable string value meant to be used for granting users access to their rewards. Cannot be changed once the reward is saved.
4. Offer Code Select the Offer Code that is loaded from the App Store Connect. Once the reward is saved, its Offer Code value cannot be changed. Reward Offer Code 5. Metadata This allows you to provide extra configuration and metadata making it flexible to meet your specific needs. Must be a valid JSON object.

Supporting in the app

Once everything is set up in App Store Connect and WinWinKit, you need to add support for Offer Codes in your app. When a user is rewarded with an Offer Code, there is two ways they can redeem it:
  • through a redemption URL, which opens the App Store
  • directly in your app.
WinWinKit supports both ways, so you can choose which one to use. However, we recommend you implement support for both ways.

Redemption URL

Follow the Apple’s documentation to implement support for Offer Codes redeemed outside of your app: Support offer codes redeemed outside of your app
If you use RevenueCat, you don’t need to implement this, as their SDK listens for updates on Transaction already.

Inside app

Follow the Apple’s documentation to implement support for Offer Codes redeemed in your app: Redeem offer codes in your app
Essentially you only need to present a native sheet where user can enter the Offer Code value.

Retrieve and Redeem Offer Code

WinWinKit provides Offer Code value for active rewards for the user. Available Offer Code reward and value can be retrived on the User object. Retrieving Offer Code value with Swift SDK:
let offerCodeRewards = Referrals.shared.user?.rewards.active.offerCode
let offerCodeReward = offerCodeRewards?.first

// The value that can be presented to the user, and they can redeem in the app.
let offerCodeValue = offerCodeReward?.value.value

// The redemption URL that can be used to redeem the Offer Code in the App Store.
// You can open this URL to prompt the user to redeem it.
let offerCodeRedemptionURL = offerCodeReward?.value.link

// The expiration date of the Offer Code value.
// After the expiration date, a new value will be assigned, unless the reward is expired before.
let offerCodeExpirationDate = offerCodeReward?.value.expiresAt
For new users, redeeming an Offer Code is starting a subscription in your app.
For existing users, redeeming an Offer Code is starting, adding, changing, renewing or getting temporary discount on a subscription in their account. What happens depends on the subscription type and the Offer Code they redeem.
For more information please refer to the App Store Connect documentation: Supporting offer codes | Design Guidelines Supporting subscription offer codes in your app Implementing offer codes in your app