I used to have one campaign with like 100 different keywords. But now I do an ad(s) for every city I service, with only about 5 keywords each.

The problem is googles ad rank... the better the ad rank, the lower the bid is.
(Ad rank = Max CPC x Quality score.)

But google gives a higher quality score to things like "window cleaning supplies" or "window cleaning jobs" which are completely against what I'm trying to accomplish.

Meanwhile, my "window cleaners in Michigan" keywords get 5's and 6's.

I guess it's a matter of finding the right balance... and patience.