One of the paradoxes of free-to-play games is that the user wants to buy his way out of the challenge but also keep the game challenging. That's like eating the cake and having it too. Let's take a look into this problem, which is also known as "pay-to-win", and solve it.
If you are anything like me, you want to hug the users who make in-app purchases and give them the world. Well, given that you are only going to get money out of one per cent to two per cen of your users, you wouldn't get very far by doing that. However, this is not the main problem with this approach.
The problem is that once you give the user all the keys the game stops being challenging and the user loses interest. It's critical to understand that any solution to this paradox requires selling the products that have an immediate reward in the short-term but actually make it harder in the long-term.
This is a result of the user thinking in two hats at the same time. While in character, the user just wants to solve the challenge, but once he is out of character, he actually wants to keep the challenge.
Here are a few ways how to get around this:
The Razor and Razor Blade Approach
The idea here is to sell a great Power-up for cash or premium game currency but actually requiring this virtual good to consume something that the player has some but limited access to.
Ok, this was a bit vague so here are a few examples. You can sell a car, but make sure the player needs to also get fuel, laser weapon consumes energy, Barracks level 5 can train super troops but requires a lot of gold to do that.
It's usually not very hard to build a narrative around it and if you followed advice I gave in other posts, you already have a consumable resources that makes sense in the world you built so I would recommend to use it as the resource for your killer virtual good. This creates a situation where the after buying the virtual good the user needs to make tough decisions about how to use it. We have not only made the game as challenging but also more complex and interesting.
The Next Level Difficulty is Always +n Rather than +1
For the math geeks this will translate into an O(n^2) vs. O(n) difficulty curve. For you humans - it just means that the next levels are becoming more difficult in comparison to the last levels.
There could still be easy levels and harder ones but the hard levels should get increasingly harder. In Clash of Clans for example, building a City hall Level 5 will cost twice as much as Level 4 and not 1,000 gold coins more. This creates a situation where a paying user skips a few levels but the game is quickly catching up with him.
Randomise .... Everything
This is a good general advice. Games with a luck component engage users longer compared to games with determined result. Any team sports would have been boring as hell if the superior team always won. Why bother showing up? It works so much better when you feel both teams can win. That's what a luck component gives your game.
This is especially true when it comes to keeping the challenge for paying users. "You can buy better odds but you can't buy victory" is in-line with real life and is also a sure way to keep the challenge. If it takes five shots to blow up a tank, you can sell a weapon, which blows up a tank in one shot or you can sell a weapon that has a 20 per cent of making a critical hit and blowing up a Tank in one shot and will otherwise still blow it up in five shots.
These are not necessarily distinct approaches and most successful games actually combine a few of these. The important thing to remember is that while all three approaches give the character less value, they give the user more value.