Any political party with enough support (could be a certain number of signatures) should receive governmental support, and only governmental support, for their campaign. After all, if a party has better ideas than other parties, they should be able to convince people to vote for them without having to outspend the others! It makes no sense that people and organisations with more money can, in essence, pay the party of their choice to promote their ideas.
Even better, give funding directly to local candidates who collect a certain amount of signatures. Candidates would then be free to contribute part or all of this funding to their political party, if they so wish. This would remove a good deal of the control and power that parties have over their candidates--parties in fact would be dependent on their candidates, and not vice-versa!