Apple want us to be able to restore Goods/upgrades bought by in game coins !!

I have game with cars you can upgrade to by coins ( the coins either bought as IAP or collected through game play ) anyways
apple asked for restore function to be added so user can sync their iOS devices .. here is the response from apple when i told them cons are consumable

Hello,

Thank you for the response and for providing the additional information.

In regards to the Restore mechanism, we are referring to the 'cars' users can purchase with their coins.

As the app facilitates the ability to purchase items that function as non-consumable products, through Consumable currency, it would be appropriate to include an optional user registration feature that allows users to restore their 'car' purchases to all of their iOS devices.

We recommend indicating that account registration is necessary to restore previously purchased In-App Purchase products, and providing a way for users to register later if they wish to access this content in the future.

this is going to be a major problems for all upgrade or level unlocks that can be purchased through coin system, i m not sure if we can create user accounts where players can sync their accounts, other games do it through facebook sync, i m thinking to make the car upgrade with in game coins but make it non consumable IAP with ( zero dollar purchase value ) and it unlock when the player use their coins .. what do you guys think any other suggestions ?

«1

Comments

  • jonmulcahyjonmulcahy Member, Sous Chef Posts: 10,408

    check out my signature on how to send and receive data from a custom server. You should be able to use that with some creative thinking/programming to create a custom registration system to restore your coin purchases. I have not done it, but I know of others who have.

  • lotte205lotte205 Tallinn, EstoniaMember, PRO Posts: 41
    edited December 2015

    @mshuraih Maybe you could add a free non-consumable IAP to every in-game coin purchase as you said. And then you can restore all the cars. I haven't tested it yet, but I have to do something similar in my next game. Or do you have your own server?

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @mshuraih

    we offer Cloud-Based variables,

    for storing and retrieving on different devices on APPFormative (link in signature).

  • MoikMoik Member, PRO Posts: 257

    @mshuraih did you get a submission rejection, or is this just a suggestion they made? If a rejection, did they specify what part of the submission guidelines it breaks?

  • HopscotchHopscotch Member, PRO Posts: 2,782

    This issue has become more strict throughout 2015 with numerous reports of Apple enforcing this.

    According to Apple's terms:

    If you buy an item for in-game use, it is only considered Consumable if each item expires after a single use. Everything else is considered Non-Consumable, and the user must have the option of restoring it (after a new installation, same device or other).

    Also, "In App Purchases received within Third-Party Products are deemed Third-Party Products", like the above example of Non-Consumable Cars being unlocked by Consumable Coins.

    Here the responsibility lies with the developer to maintain the data-set and offer a means to restore this item. Either through iCloud functionality (not currently a GS option) or a back-end solutions like your own registration server or APPFormative.

  • MoikMoik Member, PRO Posts: 257

    @Hopscotch Are they defining consumable as "consumed at the time of purchase"? Like, if I have a campfire building game, and the player can buy bags of firewood to use at their discretion, do I need a registration or are they fine letting that through?

  • HopscotchHopscotch Member, PRO Posts: 2,782
    edited December 2015

    @Moik, your "firewood" example is a consumable. And, no, it does not have to be consumed at the time of purchase.

    If it gets used up at the time of activating/using it, then it is consumable. According to Apple, consumables are tied to the device/installation they where purchased on, and thus do not need a restore option.

    However, unlocking permanent features like levels, skins, characters, etc. are non-consumables and need a restore option, if the unlocking is done through IAPs (directly or indirectly).

    Unlocking something, lets say a level, by experience gained (not tied to any IAPs), does not require a restore options. The decision lies with the developer to offer this courtesy.

  • MoikMoik Member, PRO Posts: 257

    According to Apple, consumables are tied to the device/installation they where purchased on, and thus do not need a restore option.

    Okay good. I was worried there. Needing to change an IAP setup means changing core game mechanics. Not a full re-write, but I loathe revisiting core systems.

  • mshuraih mshuraih Member, PRO Posts: 179

    @lotte205 said:
    @mshuraih Maybe you could add a free non-consumable IAP to every in-game coin purchase as you said. And then you can restore all the cars. I haven't tested it yet, but I have to do something similar in my next game. Or do you have your own server?

    that's my next step to make the cars free non consumable items once they are unlocked.. i m having trouble with coding for some reason the purchase status get stuck on pending ..

  • mshuraih mshuraih Member, PRO Posts: 179

    @Moik said:
    @mshuraih did you get a submission rejection, or is this just a suggestion they made? If a rejection, did they specify what part of the submission guidelines it breaks?

    the binary was rejected
    guidline 10.6

    here it is

    From Apple
    10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected
    Hello,

    Thank you for the response and for providing the additional information.

    In regards to the Restore mechanism, we are referring to the 'cars' users can purchase with their coins.

    As the app facilitates the ability to purchase items that function as non-consumable products, through Consumable currency, it would be appropriate to include an optional user registration feature that allows users to restore their 'car' purchases to all of their iOS devices.

    We recommend indicating that account registration is necessary to restore previously purchased In-App Purchase products, and providing a way for users to register later if they wish to access this content in the future.

    We look forward to reviewing your revised application.

    Best regards,

    App Store Review

    so they rejected binary and suggested making optional registration accounts ..

  • mshuraih mshuraih Member, PRO Posts: 179

    I think the easiest way to make non-consumable free items that can be unlocked with coins .. adding user account to every simple game u make on GS will complicate the process .. i m trying to implement that in my game ( parking business ) u can see it on google play .. i m trying to make the cars once purchased a non consumable items .for some reason the purchase status in the purcahse table getting stuck on pending not completing the purchase
    process

  • mshuraih mshuraih Member, PRO Posts: 179

    ok the stuck IAP on Pending finally figured out after 2 days of trouble shooting ... if someone faces same issue .. its not the code . its the sand box getting stuck ,, as i tried the IAP several times on the device the sand box got stuck and stopped communicating with apple .. just restarted the phone and the issue resolved .. I will try to implement the non-consumable strategy for the unlocked car .. one thing i m worried about is that when the player faces the dialogue box from apple IAP in spite it will be free if they did nt read very well the 0 dollar price they may think they are making a purchase and close the window ..

  • mshuraih mshuraih Member, PRO Posts: 179

    @Hopscotch said:
    @mshuraih

    we offer Cloud-Based variables,

    for storing and retrieving on different devices on APPFormative (link in signature).

    is your service for game analytic ( player engagement ) can be applied to GS?

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @mshuraih said:
    is your service for game analytic ( player engagement ) can be applied to GS?

    @mshuraih, yes, APPFormative is specifically for developers using GameSalad.

  • lotte205lotte205 Tallinn, EstoniaMember, PRO Posts: 41
    edited December 2015

    @mshuraih I didn't even think about the Apple dialogue box. You're right this could be a problem.

    Has anybody got a better idea how to restore non-consumable items bought with virtual in-game currency. Not using servers, registration and the Apple "Do you want to buy" box. Is there a good workaround?

  • Spalding004Spalding004 Member, BASIC Posts: 89

    @lotte205 said:

    Not using servers, registration and the Apple "Do you want to buy" box. Is there a good workaround?

    I think you've dug yourself a hole there. Those are really the only options if you want the user to be able to restore their purchase to another device.

  • lotte205lotte205 Tallinn, EstoniaMember, PRO Posts: 41

    @Spalding004 I believe you, was just hoping for a miracle :)

  • pHghostpHghost London, UKMember Posts: 2,342

    I've been asking for iCloud support in GS for some time, but there seems to be reluctance on the part of GS, as well as a generally lukewarm response from developers, for some reason.

  • MoikMoik Member, PRO Posts: 257

    @lotte205 said:
    Has anybody got a better idea how to restore non-consumable items bought with virtual in-game currency. Not using servers, registration and the Apple "Do you want to buy" box. Is there a good workaround?

    One option could be using hashed passcodes akin to what old NES games like Faxandu used. But then once one person knows the code, everyone knows the code. "If you tap Goblin, Red Potion, Red Potion, Sword, Green Potion, Shield, Goblin, Shield, Sword, Blue Potion it gives you the 500,000 Gold Unicorn Mount."

  • The_Gamesalad_GuruThe_Gamesalad_Guru Member Posts: 9,922
    edited December 2015
  • Spalding004Spalding004 Member, BASIC Posts: 89

    @pHghost said:
    I've been asking for iCloud support in GS for some time, but there seems to be reluctance on the part of GS, as well as a generally lukewarm response from developers, for some reason.

    I would love iCloud support so much. It would make our apps a lot more attractive.

  • lotte205lotte205 Tallinn, EstoniaMember, PRO Posts: 41
    edited December 2015

    @jonmulcahy I looked at it and if I follow your tutorial exactly then maybe I can get it to work the same way, but if I have to do some programming to add this feature myself (get it to save the coin purchases), then it's a bit too much for me. If someone could help me and others who need this, it would be very much appreciated.

    Or can I get it to work, if I save my coin purchases to a table. Enable my own server from Gamesalad and send the table to the database and retrieve it with when restoring purchases?

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @lotte205 said:
    Or can I get it to work, if I save my coin purchases to a table. Enable my own server from Gamesalad and send the table to the database and retrieve it with when restoring purchases?

    Well it is not that simple. To be able to identify the user from one device to another, you will need to develop a whole user registration system.

    Again, we have solutions for this, two different COPPA compliant solutions and a normal registration.

  • crestwoodgamescrestwoodgames Member Posts: 191
    edited December 2015

    I am setting up a similar scenario, but have a question maybe someone could answer.

    I have a game with a consumable called Hints. The app also contains Ads.
    When a player buys any level of hints, it will also remove the ads as a non consumable.
    I have a control actor watching the table values in the IAP Purchase Table. If any of the values come back as Purchased, I could then trigger another IAP request to remove the Ads non consumable IAP behind the scene. This Non Consumable would be free, but only triggered if one of the non free Hints was bought.

    My question is about the restore IAP. If the non consumable is "free", and they hit restore IAP, do they get it even though they never triggered it from a consumable purchase?

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @crestwoodgames, it will probably slip through the review process, but once the users start noticing, it may get reflected in the reviews.

  • crestwoodgamescrestwoodgames Member Posts: 191

    What would the users notice?

    The idea is to give the users a bonus when they buy any consumable.

    If they buy 25 Hints for .99 cents, it would also remove the ads for them for free.

    The ads behind the scenes would be a Free IAP only triggered if they bought a consumable. I have seen this done in other games.

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @crestwoodgames, I am always assuming your game is successful. If you have a large enough audience, they will collectively put 2 and 2 together. Hey, buying something removes ads. Immediately it becomes a precedent. Then you will find the odd person who starts ranting on the internets or review page, that ads are back after a reinstall. Just be aware of the possibility.

  • crestwoodgamescrestwoodgames Member Posts: 191
    edited December 2015

    @Hopscotc, this is my question.

    I can just put a Restore IAP button right?

    Even if it is a Free Consumable, the restore IAP is sending a restore request. Not a purchase. If the person never bought anything, it should not work.

    If the Non Consumable was "purchased", then a restore IAP should trigger the ad removal.

  • HopscotchHopscotch Member, PRO Posts: 2,782

    @crestwoodgames but consumables are never restored by a Restore button.

    And since you unlock it in your game, iTunes is unaware that you unlocked the Non-Consumable Ad option.

    Am I missing something?

  • lotte205lotte205 Tallinn, EstoniaMember, PRO Posts: 41

    @Hopscotch Yes, it's probably difficult. Do you really have to have a registration where the user creates an account? It isn't possible to send the user data automatically when he/she logs into their Apple account to make IAP for example?

    @jonmulcahy I tried the sql server connection today, but it didn't work. I think I need your test GS project, but when I download it it's only the Windows version. I changed the name to gameproj, but GS crashed. I opened it in Windows too, but it was too confusing. Do you have a working MAC version?

Sign In or Register to comment.