NOTE: This post was written before Apple started to disallow promo code users to leave reviews so its is slightly out of date but not necessarily useless if you really suck at using promo codes :). Thanks @ Gregory Meach for pointing this out.

Every time a developer updates or releases an app, Apple gives them 50 small marketing opportunities. These opportunities come in the form of promotional codes to a free copy of your product. Not everyone needs to use their codes (at least not all of them), but if you are small and are looking for more attention you do. Wasted promo codes are wasted opportunities if you are struggling with visibility. Everyday I see developers wasting promo codes in all sorts of ways. Lets look at a couple key ones:

Dumping codes in forum threads

This is probably the most common way to waste your codes - by lazily dumping them in a thread. On average, it might be 5 or so free copies of the game and sometimes its 15 or more. While I'm not saying that code dumping in forums is 0% effective, I'm saying it's 5% effective. The fact is, more often than not your code will be picked up by a 'scavenger'. That is, the kind of person who lurks a forum looking mostly for freebies, perhaps a guest who has never even posted. Personally, I'm not interested in giving codes out to people like this, because in all likelihood they aren't going to be very thankful.

Your promo codes need to go to people who are more engaged with your brand and thus more likely to recommend it to others and rate it. Asking people to post a message in your forum thread if they want to be privately messaged a code is already WAY more brand engagement. At the very least, it's a free bump to the top of the forum you are in when someone replies. Next, a private message is an opportunity to personally thank someone for their interest in the game and ask for a rating and review in the App Store. It's as simple as this (fits in a Tweet too):

"Hey, thanks for your interest in my game - here's a code. A rating and review in the App Store are really appreciated. ~ Kyle XHSAKJHJDS"

Simple as that, and it's likely to improve your chances of getting a positive rating/review and leave a good impression with the individual. If you don't think people will get excited about your game's promo codes - visit this TouchArcade.com forum section dedicated to contests and codes. There are always tons of people looking here - just don't code dump like many of the people you 'll see there doing. Ask for comments and privately send codes.

Offering promo codes to friends

Call me an asshole, but I also consider offering friends free copies a waste. They are your friends, they are already engaged with the brand through you, why wouldn't they support you already? You'd probably pay to go see your friend's play or musical performance, it's really just the same. Friends will give your game a shot when you tell them anyway, most likely. Unless you are desperate for more reviews, try and save them for strangers.

Letting Codes Expire

You have a month to use your codes, that's really tons of time so there's no excuse for expired promotional codes. Nonetheless, some let it happen. The remedy? Have a plan for every code as soon as you generate them. Group your codes into small batches (5 groups of 10, say) that you can designate to different places. Save some for forums, some for reviewers, some for promo code giveaways by websites, some to spare just in case (max 5), etc... Don't take your codes and sit on them though - get them out the door.

Final Thoughts

I don't want this to be a long or exhaustive post about how to use your codes, I just want to give some food for thought on what I see as a total waste.

I mentioned using codes in promo code giveaways above. A lot of review sites will give out promo codes on Twitter and Facebook, all you have to do is send them some. Even if they dump the codes on Twitter, they are going to drop your game's name at the very least too. I can't see how it ever hurts for a review website to drop your name. Those who miss out on a code, might still be curious to see what they missed out on.

Lastly, I also recommend giving codes to other developers in private. Fellow developers are not friends, they are more like colleagues but probably the most likely ones to rate/review your game. Sometimes, you can get a free code back from a developer and exchange review/rating opportunities as well as get a chance to see what someone else has worked on - learning opportunity! My only thought on this is that I like to review the game well but honestly rather than make it dead obvious it was a developer overdoing it - gamers are perceptive to this. The last thing you need to do is pull an Avanost (topical, eh?) and make it dead obvious. So if I review your game and make a few minor spelling errors... they were on purpose ;D