Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Coupons for In-app Billing

We are about to release an application on the Android Market, with In-app Billing for subscription that unlocks certain features for a the subscription period.

My boss now wants me to implement varying number of "free subscriptions" in the sense that:

  1. The "lucky user" downloads & installs the application from the Android Market like any other customer (always free to install, but premium features require payment via In-app Billing).
  2. The "lucky user" receives some key via email that allows him or her to avoid going through the In-app Billing checkout process (i.e. actually pay).
  3. The key can only be used once.
  4. Entering the key via a menu item, enables subscription for X months, as if he actually paid via In-app Billing.

The "key" basically acts like a coupon, but I haven't found any such option in the Publisher's Console.

Do you know of any such feature or a simple way to implement the above without duplicating the customer database on our (the publishers) server?

like image 814
Bill The Ape Avatar asked Mar 22 '12 14:03

Bill The Ape


People also ask

How can I get discounts on in app purchases?

Use a promo code for an in-app purchase You can redeem promotional codes for some in-app purchases using the Play Store app on an Android device. To redeem a promotional code for an in-app item: Find the in-app purchase you want to apply the promo code to. Start the check-out process.

How many promo codes can you give away for each of your in app purchases?

Set Up Offer Codes You can have up to 10 active offers per subscripton, and create a maximum of 150,000 codes per app, per quarter. Download the offer codes from App Store Connect to distribute them to your customers.


2 Answers

I actually dove into this subject maybe 2, 3 months ago. My conclusion was that currently there's no way of setting up this system, without using your own server.

Generating unique coupon-codes and expiring them on use is pretty straightforward. Let the user enter the code, send a POST-request to your server, hash the code both client- and server-side and see if they match. Next, expire the code serverside and you're set. It does however make your app vulnerable to piracy (if it isn't already); if you have a high-profile app, make sure to implement security checks (e.g. check SSL certificates to prevent a man-in-the-middle attack).

The hard part is reinstating previously acquired 'freebies' when users reinstall your app or change phones/firmware. For this purpose you're going to need a stable and reliable (cross-device) form of identification (e.g. access to the user's main Google-account on the phone). If you use user-provided e-mailaddresses, it's too easy to just enter someone else's e-mailaddress. If you were to implement a coupon-system, I would advise against reinstating 'freebies'.

like image 140
Reinier Avatar answered Oct 17 '22 03:10

Reinier


I know this is a really old thread, but I had a similar need and found an official solution. For anyone who comes here for a solution:

Google introduced Promotional Codes couple of years ago and that is exactly what you're looking for. You can create Promo Codes on the Play Console under Your App -> User Acquisition -> Promotion.

You can use promotions to give users a paid app or in-app product for free with a promo code. You can create promotions to reward loyal fans, acquire new users, and reconnect with previous users. Learn more.

like image 29
Divins Mathew Avatar answered Oct 17 '22 02:10

Divins Mathew