Old McStopher Old McStopher - 3 months ago 34
iOS Question

From Paid to FREE w/IAP: Preventing double-charging

This is a conceptual workflow problem. I'm converting an app with an existing user base from Paid to Free with an in-app purchase (FWIAP) to remove ads. The problem I'm trying to avoid is having the existing paid customers updating the app and now suddenly seeing ads and being insulted/assaulted with the "option" to pay again to remove the ads they never bought in the first place.

Luckily, I do have some breadcrumbs in the form of persistent data (

) that will indicate whether the app was already installed. So my thought is to have the new version check for existing installs before deciding whether to proceed with displaying the ads.

One problem I foresee is later updates then considering all those first-generation users as now eligible for ads again, so I'd have to then add another persistent flag (
) to identify the two groups of users and then hope to remember for even later updates (i.e. third-gen., etc.) to check against the
instead of the
, as the
values would have long changed by then.

Does this seem like a sound approach or is there another good known solution to this?


The problem with breadcrumb schemes is with users who upgrade, or have to get a replacement device, and don't have backups to restore from. When they re-download your app, there will be no breadcrumb.