Here are the answers to frequently asked questions about Apphud.

Common Questions

What does Apphud do?

Apphud is a platform for developers to integrate and analyze subscriptions in iOS apps.

  • Implement subscriptions in your mobile app in a few lines of code.

  • Non-renewing purchases are also supported.

  • View and analyze subscription metrics. Add Integrations with analytics and marketing tools: Amplitude, Mixpanel, AppsFlyer, Branch, Adjust etc.

  • Increase app revenue up to 5% by sending automated discounts for lapsed customers.

  • Learn why customers cancel trials and subscriptions.

  • Fix failed renewals by sending Push notifications and in-app reminders to update billing info.

Do I need to rewrite my purchase flow using Apphud SDK?

No. You don’t need to replace your existing code with Apphud SDK. Basically, our purchase methods are just wrapper methods around StoreKit, so you can use whatever library you like most.

Can I use Apphud just for analytics?

Yes, you can. In this case all you need is to integrate SDK in just one line of code:

Apphud.start(apiKey: "APPHUD_API_KEY")

You will be able to view Dashboard and Users list. However, if you want to use Integrations, you need to add more code. See docs describing how to add desired integration. If you would like to use Rules, implement Push Notifications, as described here.

What timezone is used in Apphud?

For dashboard we use UTC timezone. However, when viewing user page, all dates are displayed in your browser's timezone.

How do you convert currencies?

US Dollar is a base currency in Apphud. All transactions are automatically converted to USD by the exchange rates at the time of event using OpenExchangeRates. We update conversion rates several times a day.

What currency do you use for sending revenue in Integrations?

When sending revenue to 3rd party analytics platforms, we send local currency where applicable. In particular, we send revenue in local currency to AppsFlyer, Branch and Adjust and send revenue in USD to Amplitude and Mixpanel.

How does Apple charge users for subscription upgrades?

It depends on subscription level and subscription duration of current and purchasing subscription. For example, if the user purchased promo offer of the same subscription, user will be charged only after current period is over. However, if the user purchased another subscription, he may be charged immediately with partial refund of remainder of current subscription if new subscription duration is the same or subscription level is higher. Read more about subscription levels here.

What is the difference between “In Billing Grace Period” and “In Billing Retry Period”?

Billing Grace Period is Apple’s new feature. With Billing Grace Period turned on, Apple tries to charge subscriber within 16 days maximum. Developer must grant premium access to subscriber during this time. Once subscriber enters grace period, his subscription goes to Grace state, and Apphud SDK isActive() method still returns true. With Billing Grace Period turned off, subscription goes to Expired state and isActive() method returns false. However, Apple still attempts to recover subscription within up to 60 days but less aggressively. In both cases when subscription is reactivated, it will change to Regular state. You can manage Billing Grace Period feature in your app’s “Features” tab in App Store Connect.

What will happen if your server is down? Is Apphud stable?

Apphud is absolutely stable. Most of the data is cached on device, even SKProduct objects. However, if there are issues with receipt validation, our SDK tries to re-submit receipt until success.

Apphud SDK

How does your Apphud SDK work?

Our SDK listens to any purchases or restorations being made and automatically uploads customer receipt to Apphud. Purchase methods are just wrapper methods around StoreKit. You can purchase subscription with your own code or other library, and you will still be able to use Apphud.subscription(), Apphud.hasActiveSubscription() and other subscription related methods.

Where User ID is being stored?

User ID is generated on device if not specified directly. It is being saved to current device Keychain. However, if the user restores purchases from their another device, user ID will change to one from the first device. It will be also saved in Keychain of second device.

Apphud automatically merges users into an original user in this case.

What platforms do you support?

Currently, we have only iOS SDK written in Swift. You can install Apphud SDK via CocoaPods, Swift Package Manager or manually.

Can I use Apphud to sign my subscription offers?

Yes, you can. Just follow this guide.

I have problems with sandbox In-App Purchase testing.

Please read our In-App Purchase Testing Tips.

How to test integrations?

Please read here.


What are Screens? How to use Screens?

Screens are a part of Rules. As for now, you can only present Screens in your app by using Rules. There are 4 types of Screens are available now:

  • Promo offer screen. To show a discount for lapsed or existing customers.

  • Survey screen. To ask a customer a question with a set of available options.

  • Feedback screen. To ask a customer for a text feedback.

  • Billing issue screen. To ask a user to update their billing info. Typically, used in case of billing issue.

Can I combine Screens?

Yes. You can combine different screens to implement complex scenarios. For example, you may create a survey with a set of options. You may also push another screen if user selects certain option. For example, you may push Promo offer screen with a discount for lapsed subscriber after a user selects “Too expensive” option when answering to a “Why did you cancel a subscription?” question.

Gross revenue inside Rule Analyze section is less than expected.

There may be three reasons:

  • If user purchased free trial offer, he won't be charged immediately.

  • If user upgraded to another subscription, he won't be charged immediately in some cases. See: "How does Apple charge users for subscription upgrades? "

  • User still may cancel auto renewal before actually being charged.

My customer purchased promo offer from your Screen but wasn't charged.

See "Gross revenue inside Rule Analyze section is less than expected." above.

Do you have REST API?

Yes. We have REST API to get current customer by their user ID. REST API is available on paid plans.

What are Webhooks? Do you have any?

Apphud can send POST requests to your server about subscription events. These requests are called Webhooks (server-to-server notifications). They are available on paid plans. You can use these events to implement custom logics or send data to in-house analytics. Read more about webhooks here.


I can’t see my events in AppsFlyer or not all events are shown.

AppsFlyer shows events in “Events” tab according to app installation date. Let imagine, you select certain date range in AppsFlyer. It will show all events occurred to users who installed the app within this date range. However, under "Activity > Activity Summary > In App Events" AppsFlyer shows all events occurred within selected date range regardless app installation date.

Facebook ad campaigns installs are shown as organic.

Apphud only shows data received from attribution platform. If you face this issue, please make sure you accepted Facebook Advanced Mobile Measurement Terms. If you have done this already, but attribution still not showing in Apphud, please check documentation of your attribution platform.


What will happen if I exceed the free plan limit, i.e. my MTR is over $10K? Will Apphud continue working?

Once you exceed the free plan limit, 14-days grace period will start. During this time you should choose and activate paid plan. Otherwise, Integrations and Rules will stop working. Nonetheless, the core functionality of Apphud won’t be disabled. Thus, in-app purchases will continue working in your app.