Skip to main content
Version: 3.0

Migration from Glassfy

Glassfy services will be ending in December 2024. We worked with them to make the transition as easy as possible for you. This guide will help you migrate your subscribers to Adapty in less than a day. Most importantly, the migration will be 100% seamless for your customers; they will continue using the app without interruptions.

info

Moving from Glassfy? Get 6 months free of Pro+ plan

When you migrate from Glassfy to Adapty, you can use all our features, including Paywall Builder, A/B tests, ML predictions, and Targeting for free for the first 6 months — no strings attached. Just use this link to sign up. Try it for yourself and see why thousands of apps use Adapty to grow their revenue.

Here are the 3 easy steps to migrate your app from Glassfy to Adapty:

  1. Learn the core differences (very few of them) and set up an Adapty account (15 minutes);
  2. Install Adapty SDK for your platform – iOS, Android, React Native, Flutter, Unity (1 hour);
  3. Test and release the new version of your app (30 minutes).
info

Your subscribers will migrate automatically

All users who have ever activated a subscription will instantly move to Adapty as soon as they open a new version of your app with the Adapty SDK. Subscription status validation and premium access will be restored automatically.

Learn the core differences and set up an Adapty account

Adapty and Glassfy SDKs are similarly designed. Adapty allows you to show different paywalls to different audiences, but it's optional.

Naming is slightly different:

GlassfyAdapty
SKUProduct
PermissionAccess level
OfferingPaywall

Creating an Adapty account

Create an account using a special link . You can also invite your colleagues.

Set up integration with the App Store and/or Google Play

You've done it at least once already, so we'll just leave the link to the docs. You will have to provide a Bundle ID and subscription keys and set up server notifications so that Adapty can work with purchases.

Create products

To sell the product in Adapty SDK, you have to create it in the dashboard first. This process is very similar to how SKUs are created in Glassfy. Just give it a name, choose the access level (aka permission), and product IDs for the App Store / Google Play. You can read more about the products here.

Create paywalls

Once you created the products, you should create the paywalls (aka offerings). A paywall can have one or more products. It can also have remote configuration, which allows you to customize the paywalls without new releases, localize the paywalls and onboarding and much more. You can even design and create paywalls without any coding with the Adapty paywall builder.

Create placements

Adapty has a concept of placement. It's a logical place inside your app where the user can make a purchase. In most cases, you have one or two placements:

  • Onboarding (because 80% of all purchases take place there)
  • General (you show it in settings or inside the app after the onboarding)

With the placements, you can dynamically change which Paywall or A/B test should be displayed in the designated place of your application. You can even show different paywalls to different audiences in your application.

Well done, now you can integrate Adapty SDK into your app!

Install Adapty SDK to replace Glassfy SDK

Install Adapty SDK for your platform ([iOS](sdk-installation-ios, Android, React Native, Flutter, Unity).

SDK activation

Glassfy

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

Glassfy.initialize(apiKey: "YOUR_API_KEY", watcherMode: false)

[...]

// optionally login your user
Glassfy.login(user: "youruser")

}

Adapty

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

let configurationBuilder =
Adapty.Configuration
.Builder(withAPIKey: "PUBLIC_SDK_KEY")
.with(customerUserId: "YOUR_USER_ID") // optionally add your internal user id

Adapty.activate(with: configurationBuilder) { error in
// handle the error
}
}

Fetch offerings (paywalls)

Glassfy

Glassfy.offerings { (offerings, err) in
if let offering = offerings?["premium"] {
// display your offering's skus
for sku in offering.skus {
// sku.extravars
// sku.product.localizedTitle
// sku.product.localizedDescription
// sku.product.price
}
}
}

Adapty

Adapty.getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in
switch result {
case let .success(paywall):
// the requested paywall
// call getPaywallProducts here
case let .failure(error):
// handle the error
}
}
Adapty.getPaywallProducts(paywall: paywall) { result in    
switch result {
case let .success(products):
// the requested products array
for product in products {
// product.localizedTitle
// product.localizedDescription
// product.localizedPrice
// product.localizedSubscriptionPeriod
// product.price
}
case let .failure(error):
// handle the error
}
}

In Adapty, you always request the paywall via placement id. If you want to see conversions, learn how to log paywall views.

Check permissions (access level)

Glassfy

Glassfy.permissions { permissions, err in
guard let permissions = permissions else { return }
for p in permissions.all {
switch (p.permissionId) {
case "aPermission":
if (p.isValid) {
// unlock aFeature
}
break;
default:
print("Permission not handled");
break;
}
}
}
Adapty.getProfile { result in
if let profile = try? result.get() {
// check the access
profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
// grant access to premium features
}
}
}

Adapty

Make a purchase

Glassfy

Glassfy.purchase(sku: premiumSku) { (transaction, e) in
// update app status accondingly
if let p = transaction?.permissions["aPermission"] {
if p.isValid {
// unlock aFeature
} else {
// lock aFeature
}
}
}

Adapty

Adapty.makePurchase(product: product) { result in
switch result {
case let .success(info):
if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
// successful purchase
}
case let .failure(error):
// handle the error
}
}

Test and release a new version of your app

If you're reading this, you've already:

  • Configured integration with the App Store / Google Play
  • Configured Adapty Dashboard
  • Installed Adapty SDK
  • Replaced Glassfy with Adapty functions
  • Made a sandbox purchase
  • Made a new app release

If you checked the points above, just make a test purchase in the Sandbox and then release the app.

info

Go through release checklist

Make the final check using our list to validate the existing integration or add additional features such as attribution or analytics integrations.

FAQ

I successfully installed Adapty SDK and released a new app version with it. What will happen to my legacy subscribers who did not update to a version with Adapty SDK?

Most users charge their phones overnight, it's when the App Store usually auto-updates all their apps, so it shouldn't be a problem. There may still be a small number of paid subscribers who did not upgrade, but they will still have access to the premium content. You don't need to worry about it and force them to update.

Do I need to request historical data from Glassfy as quickly as possible, or will I lose it?

You don't need to make it super fast; make a release with Adapty SDK first, and then give us your historical data. We will restore the history of your users' payments and fill in profiles and charts.

I use MMP (AppsFlyer, Adjust, etc.) and analytics (Mixpanel, Amplitude, etc.). How do I make sure that everything will work?

You first need to pass us the IDs of such 3rd party services via our SDK that you want us to send data to. Read the guide for attribution integration and for analytics integration.