There is no ideal really. You definitely do want to have some cheap units, but having one or two really expensive ones can work very well. You just never want to be in a position where you're being attacked and can't spawn anything.
I feel like you've quite a bit of redundancy in your deck. I'd get rid of one of the archers or spear goblins, as they are extremely similar cards. I'd also probably get rid of skeleton army. I suppose that you use it to deal with Princes and Giants, but these can often be killed quite efficiently with other cheaper and/or more versatile combinations. As a starting point, you can almost kill a prince with some well placed/timed goblins (2 elixir) or skeletons (1 elixir). Put the goblins towards the middle, away from your tower, and they'll distract the prince, do some decent damage to it, and slow him down so he takes a lot more damage from your tower/towers. For 2 elixir you can more or less beat a Prince, add a ranged unit to the mix and you'll beat him and have something alive at the end.
I'd try and have something in your deck to punish your opponent's mistakes. The Prince and Goblin Barrel are excellent for this. They're great for damaging an undefended tower when their push fails. I'd also vouch for both the Bomber and the Musketeer. The Musketeer is great for laying down a lot of damage on single units, including the Baby Dragon and Witch. If she actually gets to a tower, she will wipe hundreds of points off its health surprisingly quickly. The Bomber will trash most group-enemies, often making for great trades. He can wipe out an entire skeleton army, or a group of barbarians, without taking a single hit, which gives you a significant Elixir advantage.
If you can continually make the right choices about which unit to use to fight what's coming at you, you should eventually be able to overload them with a Giant added into the mix.