in iDevBlogADay, iOS

Chronicle Of A Failed Experiment

In the last year and a half, I’ve written about the different things that I’ve tried with Flower Garden and their effects on sales. From adding Facebook support, creating a free version, adding in-app purchases, or giving Flower Garden for free for a limited time. Some strategies worked and some didn’t.

Today I want to share my latest experiment, and how it was a total and complete failure: Adding the option to gift IAP items from within the game.


Promo Codes

Before I can talk about how I implemented the “Gift This” feature, we need to talk about promo codes. Since Flower Garden has so many in-app purchases, I figured it would be very handy to have the ability to give some of them away to people for any reason: They mistakenly downloaded the wrong thing, they bought it in the free version and want to upgrade to the full one, or they supposedly paid for one but they never got it. Whatever the reason, having my own promo codes for in-app purchases was one of the best decisions I could have made. I would highly recommend it if you have IAPs, especially consumables.

The implementation of promo codes was totally straightforward. I have two tables in the Google App Engine: One for active promo codes and one for redeemed ones. The active promo code includes the code itself, the IAP item it refers to, the amount, and whether it’s limited to one user or not (if it’s limited to one user, the code goes away as soon as it’s redeemed, otherwise, any amount of users can redeem it).

Here’s an example of a code I just added (yes, feel free to redeem it in the Flower Shop):


Whenever a promo code is redeemed, I enter that data in the other table. That way not only do I have a log of what codes where redeemed and when, but I can also check and prevent the same device from redeeming the same code multiple times.

Another important reason to keep a redeemed promo code table is that I want promo codes to be as valid as purchasing the IAP directly. That means that if you ever attempt to purchase an item, I check first to see if you’ve redeemed a promo code for it, and if so, you can re-download it for free. Same thing when you do a restore purchases (although I believe I haven’t gotten around to implementing that part yet πŸ™‚

Here’s my plea to Apple: Please, please, please, give us an “iTunes Account ID” along with the IAP data. Right now the best we can do is associate a purchase with a device (which is not good enough), or have a whole registration system for users (which is a pain and more time consuming for users). They’re already doing this with a Game Center ID, so why not with an iTunes Account?

Gift This

Once the promo code system was in place and field tested for a couple of months, I finally implemented the Gift This functionality. In the Flower Shop, users have the option to buy an item for themselves, or for someone else.

The first time you use the Gift This feature it explains how it works: You purchase the item and then you send it to someone else through email.

Under the hood, it purchases the IAP, contacts the server to generate a new promo code for that item, and then creates an email with the promo code and even a custom URL. Whenever someone receives a gift email, they can just click on the custom link and they immediately receive the item (assuming they have Flower Garden installed, of course).


One interesting consequence is that to implement this, you need to create one new IAP item for every item you want to gift (especially if they’re not consumable). Otherwise, someone couldn’t gift an item they had already purchased, or they couldn’t gift it more than once. This can add quite a few extra IAPs in your list!

In the case of Flower Garden, I started with the easiest case, and I only implemented gifting for fertilizer purchases (because they’re consumable, so I don’t have to keep track of who receives them and restoring them).

Total Failure

I really had great hopes for the Gift This feature. I had already envisioned writing a blog post showing IAP revenue going up 20-30% because of that feature. Not quite! It was pretty much a complete flop. The only positive thing I can say about it is that it didn’t actually lower regular sales.

See for yourself. In a period of about a month and a half, all the fertilizer gifting in the free and paid versions of Flower Garden amounted to a whopping $191!


Definitely not worth the 3-4 days it took me to implement it (and the opportunity cost of not being able to add some other feature or IAP).

Compare it to fertilizer sales during that period of over $7,000:


(That’s the spike of the new feature plus the Pocket Frogs cross promotion if you were wondering about it).

I’d love to know how the Gift This feature on the App Store is working out for Apple. I’m sure it’s doing better than my attempt at it, but I’m going to bet it’s still a very small percentage compared to regular sales.

Here comes the important question: Why was it a failure? Do people don’t like to gift? Was it presented badly? Did most people not know it existed?

There’s no way to know for sure, but my current guess is that people don’t like to gift something they don’t already own. Psychologically, there are several too many steps involved: Oh, I want to gift something, look for it in the store, purchase it, and send the email. Not a very fulfilling experience.

On the other hand, gifting something you already own is much more appealing. You have it in front of you, you’re proud of it and it looks great. You tap on a button and send it to someone. That is a lot more satisfying. So in the future I’ll take that approach and allow people to gift things they already own, even if they had to previously pay for it in some way.

What do you think? Do you have a better theory? How could it have been improved?

This post is part of iDevBlogADay, a group of indie iPhone development blogs featuring two posts per day. You can keep up with iDevBlogADay through the web site, RSS feed, or Twitter.


  1. Fascinating information, Noel. Really, really love the posts in this series. Exemplary game developer blogging.

    I agree with your conclusion. Efficiency suggests having the single Gift This button that both purchases and gifts as one action. But for user gratification, separating it out into a “shopping” phase of purchasing items and then a “gifting” phase of giving the item to other users sounds like a great solution. Can’t wait to see how that turns out!

  2. Good read. I really like how you break-down your posts into information us indie developers can absorb and hopefully put to good use in any future endeavors.

    As far as the “Gift This” feature on the App Store…I’ll be honest and say that I haven’t used it at all. I have actually received a Gift App though and thought it was pretty straight forward and cool.

    The action behind the Gifting I received, funny enough, was that a particular game went on sale and this person wanted to snag it and gift it away while it was available at that price. Maybe there’s a mindset behind that…in the fact that you want someone to check out an App so when it goes on sale you tell them about. Maybe they get it, maybe they don’t. If you gift it to them…you get it cheap and if your friend likes it…he/she thanks you…and word of mouth spreads.

    In the end, maybe if Gifting in the App Store becomes popular…the “Gift” option you setup through an IAP might pickup steam also πŸ˜‰

    Thanks again for all the great inside-look info that goes into making/maintaining/managing an app.

  3. I always imagined that the gifting was used by parents gifting apps to their kids rather than giving them gift cards. If this was the case then I can understand why they’d be more reluctant to gift something that’s not essential. Buying it yourself is different altogether.

  4. I think the gifting idea is still an important module. Maybe this was the wrong time for it. When I think of a successful gifting solution I think of Steam — especially during the holidays (maybe it is so successful because it coincides with the seasonal sale).

    – Joey

  5. From my appFigures information, my game Charmed has only been gifted about 0.3% compared to normal purchases. Even if a game is doing 10x better than that, it’s still not much.

  6. I’m curious about how you use promo codes for IAP. Is it strictly for Customer Service purposes?

    • Yes, that’s the only reason I’ve used them (and the main reason I added them). When I get someone saying they didn’t receive an item but they paid for it, there’s nothing I can do without a custom promo code system. I can’t even refund them the money. So it has come in very handy a few times.

    • @SnappyTouch Great post Noel. I find I gift when it has value for me, i.e. 4 pack on STEAM is cheaper than 4 copies, 1 for me + 3 to give?

    • @SnappyTouch Basically I don’t think your work is wasted, it’s a design issue that may require experimentation – or perhaps asking users?

      • @barog I think for the most part, you really can’t rely on asking users. They prob don’t know what they really want w/ something like this.

  7. I think gifting only really works in reverse… someone makes a post on their social site page asking for something and a friend gifts it to them, or clicks on the link just because it gives them something.

    Maybe implement a tiered rewards system where when a player gifts x gifts to y unique people they get z prize and a different, better prize every tier they go up.

  8. Dan Grisby opened a feature enhancement for gifting apps and asked people to open other requests referencing his original request. This may have helped get apple to actually implement the gifting feature. You might try the same with your wish for sending an iTunes Account ID. As for the gifting feature itself, I have only seen one gift sent and redeemed ever for my apps. You can identify these by a GP and GR in the promo code field so you can at least see how popular the feature is with your own apps.

  9. My theory is that the gift itself is not appealing. When giving a gift you want to think of something that will surprise and delight the receiver. For example sending someone a copy of Flower Garden itself could be great if you think that person will really enjoy the app. However sending fertilizer means you’re not offering anything interesting or new to the receiver, they must already be familiar with it if they have Flower Garden, you’re effectively just sending them $0.99, like you say it is a consumable, it’s kind of like sending someone a bottle of milk as a present – something they may need, but there’s no real emotional significance, so why would anyone send it as a gift?

    • Agreed. Fertilizer is not the kind of thing anyone would think to give as a gift in real life, nor is anyone likely to add fertilizer to any wish list. If you want real fertilizer, you just go to the garden shop and get it.

      Gifting the app itself is reasonable; so would be gifting a beautiful flower. These classes of gift have common IRL analogues.

  10. You could be more positive about this. You’re making money from a feature, which means you can evolve it and multiply the amount you’re making with each evolution. Getting on the revenue ladder with that feature was the hard part.

    Also, even if this is only making you $5 a day, that’s actually $1,825 a year, with no maintenance and no further effort. Two years on and you’re well up on your investment of 3 days.

  11. I think you are SPOT ON with the thesis that users want to gift items like they do real-world Christmas presents: first you buy it (and take it home), then you give it to someone once it has been in your possession. Let users gift items they already own. So it feels like it was handed from their hands to your hands.

    Secondly, am I the only person who has noticed that “fertilizer” is another word for s**t? Would you ever, in real life, give someone you liked a bag of manure? No matter how useful it might be?

    No, you give them a pretty flower. It isn’t your system that’s broken, it is the product: I would be embarrassed to give someone fertilizer, it would feel like gift-wrapping a roll of toilet paper.

    Try a different item – one that is “pretty” – and gifting might take off.

    Keep up the fantastic work!

  12. After thinking about this over lunch, I’d like to propose a secondary experiment – one that won’t take any additional coding. Simply change the word “fertilizer” to something more sexy. Like “Magic Plant Food”. I humbly propose that sales will double.

  13. I think part of the reason gifting is a little confusing as most times I’ve done it, I’ve had to stop and check which email address my friend uses for their iTunes account as I assumed I had to send it to that particular email address.

    I might be wrong in that assumption?

    But it makes me think if others have been similarly confused or unsure about spending the money to send an app to someone they’re not sure will receive it?

    • Good point, Liam. In this particular case, you can gift it to any email address. What you’re doing is buying a promo code, and they can use it from any account and any version of Flower Garden. Maybe the iTunes gifting feature needs to be sent to the correct email address though. I’m not sure.

  14. I’m actually amazed you made $191 with this feature for such a niche market. The maximum possible customers are all the people who have purchased Flower Garden, who know someone else who has Flower Garden, and who want to send a neat extra feature to that person. Could that be more than a couple of thousand people?

    If anything it shows how fanatic your hardcore fans are.

  15. I think there are psychological factors in this too. It’s hard to give somebody a virtual gift because that gift doesn’t actually exist in the real world. I think people question the value of giving a gift like that, or worry it won’t be appreciated. Over time, this might change. But it struck me with the idea of gifting ebooks too that people’s behaviour will have to change massively before this becomes a regular feature. If someone gives you a virtual book, they’ve just bought you the licence to read a file, which feels rather clinical. A printed book (at roughly the same price) feels like a proper present. Similarly, a gift of a minor game consumable doesn’t really feel like you’ve given somebody something of value. The exception might be for people who both play a game avidly and develop a reciprocal relationship of giving each other gifts in it.

  16. I agree with a previous poster that an emotional attachment will make the gift more valuable to both the sender and receiver. It only takes a few seconds to gift a virtual good that costs 99 cents, so it may not be thoughtful. However, if you gifted an item that took time to level up or to grow or to achieve, then the sender is gifting a representation of their time, which is one of the most valuable assets to humanity.

  17. Hi Noel, 

    How is it going? I’m working on the “IAP a gift code”  too, and I think it’s very helpful to make people build the communication by a APP.I’m Still working on it and hope you have any progress to share…Thank you.

  18. Hi Noel,

    Just one question. We are developing a game ( with same freemium strategy (free app + IAP features inside), and we have developed a promotional code system much like yours I think. We give promotional codes away and users can redeem them from a specific menu on the app. Every single promotional code can only be redeemed once and that’s all!!.

    From your POST I got that you developed this same mechanism in your Flower Garden App and that you had no problems with Apple to publish it to the App Store don’t you?

    I am asking because we have been rejected because of this promotional codes feature.

    How did you described it to them? How were your screens designed? (I couldn’t find your app on the App Store, did you removed it?)

    Thank you

    • Hello Noel or Carlos, is your app approved? How did you describe it?

    • Hello – is your app approved with that feature now? Or you had to remove it?

      • The app is approved but we had to ‘hide’ the feature so that it was not so clear to apple reviewer. A good idea might be not to include that in the changes list reported to try to avoid the reviewer to focus on it. Good luck!

Comments are closed.