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 ?
Comments
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.
Send and Receive Data using your own Server Tutorial! | Vote for A Long Way Home on Steam Greenlight! | Ten Years Left
@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?
My games:
Who's Behind the Gates
Flip Happy
@mshuraih
we offer Cloud-Based variables,
for storing and retrieving on different devices on APPFormative (link in signature).
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
@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?
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.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
@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?
@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.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
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.
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 ..
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 ..
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
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 ..
is your service for game analytic ( player engagement ) can be applied to GS?
@mshuraih, yes, APPFormative is specifically for developers using GameSalad.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
@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?
My games:
Who's Behind the Gates
Flip Happy
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.
@Spalding004 I believe you, was just hoping for a miracle
My games:
Who's Behind the Gates
Flip Happy
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.
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."
interestimg
Guru Video Channel | Lost Oasis Games | FRYING BACON STUDIOS
I would love iCloud support so much. It would make our apps a lot more attractive.
@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?
My games:
Who's Behind the Gates
Flip Happy
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.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
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?
@crestwoodgames, it will probably slip through the review process, but once the users start noticing, it may get reflected in the reviews.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
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.
@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.
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
@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.
@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?
MESSAGING, X-PLATFORM LEADERBOARDS, OFFLINE-TIMER, ANALYTICS and BACK-END CONTROL for your GameSalad projects
www.APPFORMATIVE.com
@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?
My games:
Who's Behind the Gates
Flip Happy