I want to add one thing to his general rules: It's extra good if there's a way to use your donation to make the recipient aware of what you want them to do. Showing up at fundraisers seems like a way to do this. Or if you're interested in races at the House or Senate level, you might consider contributing to the Leadership PAC of a Congressman or Senator you especially admire, since that's money they can pass on to other people, winning favors. I've been donating to Jeff Merkley's Leadership PAC for that reason. To quote myself, "The point of doing it through Merkley is that he can show up in the offices of people who took his money and persuade them to help out with the awesome stuff he's trying to do. As a random out-of-state contributor, I'm not really equipped to tell Senators to go support Jeff's stuff. Giving to a progressive legislator's leadership PAC seems to be the best way to both help Democrats retain the Senate and ensure that they vote for the right things."