Flashy Substance Blog

Tips and Tricks in Cross Platform Mobile Development

the In-App Store in FlowBen's Music Trivia
1

The Not So Obvious Downside to Using Consumable iAPs on any mobile platform

When you’re planning your strategy for in-app purchases, it’s important to understand the implications of the choices that you make.

WHAT YOU SHOULD ALREADY KNOW

Make sure you know the difference between the following:

  • Consumables (aka Unmanaged Items) – Can be bought multiple times.  Often a virtual currency (coins, gems, etc)
  • Non-Consumables (aka Managed Items or Entitlements) – one time purchase.  An example would be additional levels in a game.
  • Subscriptions

Corona’s iAP Guide talks about this a little bit, and you can view the explanations/caveats for each type of iAP at the vendors’ respective links:

THE NOT-SO-OBVIOUS DOWNSIDE TO USING CONSUMABLES

It’s important early on to ask yourself whether you need users to be able to restore iAPs after uninstall/reinstall or on other devices that the same person owns.  This can have a significant impact on your iAP strategy. 

Real-life example: In FlowBen there are 4 eras of music, and each era has 5 episodes of question.  Episodes 3-5 of each era must be purchased.  My original plan was to allow the end user to purchase consumable coins.  Something like this:

2 coins= $0.99

6 coins= $1.99

12 coins= $2.99

Users would then be able to selectively unlock premium episodes – if they bought 2 coins, they could unlock 2 of the premium episodes from the 1990’s music era, or they could do one from the 1990’s era and one from the New Millennium era. 

I started to implement this approach, but quickly ran into an obstacle with it.  If they delete FlowBen and later re-download it, OR if they download FlowBen on another device tied to the same iTunes/Google Play/Amazon account, I couldn’t easily give them a mechanism to restore their purchase.  I felt like some users would be willing to re-purchase, but that most would be irritated and some would leave negative reviews.

So, I decided to simply create 4 non-consumable iAPs that could easily be restored using store.restore()

Unlock Era 1 (50s 60s) content: $0.99

Unlock Era 2 (70s 80s) content: $0.99

Unlock Era 3 (90s) content: $0.99

Unlock Era 4 (2000s aka New Millenium) content: $0.99

Unlock Eras 1-4 content with a single purchase: $2.99

IF YOU INSIST ON USING CONSUMABLES

If you really want to use consumables, and you want users to be able to restore them, you’ll need to find a way to hook into a backend.

Some options:

  • If you only care about Amazon devices, you can use the gameCircle plugin’s WhisperSync for Games functionality

ROLLING YOUR OWN BACKEND

Rolling your own backend is far beyond the scope of this note, but the key thing to know is how to uniquely identify players on each platform – here’s how.

  • Amazon: gamecircle.GetLocalPlayerProfile(callback)
  • Apple: gameNetwork.request( “loadLocalPlayer”, { listener=requestCallback } ) —event.data.playerID
  • Google:  gameNetwork.request( “loadLocalPlayer”, { listener=requestCallback } )  —event.data.playerID

TWO POPULAR, SIMILAR GAMES THAT HAVE DIFFERENT CROSS-PLATFORM ACCOUNT MANAGEMENT STYLES

If you want to study two different ways to handle cross platform account management, check out Clash of Clans (which uses an interesting Device Linking strategy) and Game of War (which has you create a MachineZone account)

in-app purchase

Joe • November 26, 2014


Previous Post

Next Post

Comments

  1. Miriam November 27, 2014 - 7:55 pm Reply

    This is. Great!!!

Leave a Reply

Your email address will not be published / Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>