Skip to main content

Hi,

On iOS (and eventually Mac)

  • I would like my app to **immediately begin a free trial the first time it is used** without prompting the user to subscribe. 
  • During the trial I would like the UI to show how long is left before the trial expires. 
  • During and after the trial I would like the user to be able to purchase a subscription.
(I want to do this because I believe there is a barrier to starting a free trial that rolls in to a subscription, even though it can be freely cancelled.)
 
Is this use scenario possible? Or do I need the user to actively choose to start a trial? 
 
If the user does have to start a trial, do trials have to automatically subscribe, or can they just run out, and then the user can choose to subscribe?
 
If this is documented, I’d be very happy to be referred to a link, but I’ve not found a description of exactly which scenarios are and aren’t supported.
 
Thanks!

Hi, You have a few options for implementing something like this:

  1. you could just calculate this separate free trial based on the First Seen attribute of the customer
  2. you could automatically apply a temporary Granted Entitlement upon a user’s creation through the API endpoint to do so by pinging your backend to do so
  3. you could offer a zero-price non-consumable purchase and calculate the free trial via its purchase date. This would require the user going through the purchase flow of the store for it. If you don’t want to have to make the calculation with the purchase date, you could also use a temporary Granted Entitlement for this option as well that is applied when you get a purchase webhook event for this non-consumable purchase.

 


Hello Wes, thank you for replying!

Probably relevant here – this app does not currently have any form of backend and I want to keep it this way for the initial release.

  1. Is “first seen” something in the iOS API?
  2. I don’t have a backend for this app at all. Does your iOS API let me apply a temporary Grant Entitlement? It seems like a feature more set up for manual intervention?
  3. I’m comfortable with the calculation, but would either of these approaches work with the iOS API?

Thank you,

Benjohn

 

… edit – just looking at the First Seen, this seems pretty ideal for the use case, as far as I can tell? If the user deletes the app and re-installs, would “first seen” been reset? Are there other ways for a user to reset it?

 

It also looks like StoreKit’s OriginalPurchaseDate might suit this use case. Can you advise on whether that would be set for a free app?


Thanks for the context regarding your backend! I am assuming that this means that you will also be only using anonymous app user IDs generated by the SDK. In that case, I think that the non-consumable purchase option will be the best one for you. Like you mentioned, there is a possibility that the First Seen attribute will get reset if the user re-installs, while the non-consumable purchase will persist on their App Store account and you will be able to check it again upon them redownloading the app.


Thank you Wes, that makes sense. Are you able to comment on the `originalPurchaseDate` option from StoreKit, and whether this works for a free download? This _seems_ like it might be ideal as it seems to be asking Apple when the App was first acquired, which would be a good enough proxy for the start of a trial, I think?


You’re welcome. Sorry about forgetting to touch on that aspect. You can also use the original purchase date of the app. We actually include it in the CustomerInfo object for iOS: documentation link. One negative that I will mention about this option is that, if a user downloads the app, but then does not begin to use it for a few day, they may miss out on utilizing your free trial 


👍 Right – that makes sense. Thank you.


Reply