Probably the best one-liner fix in law I can think of, is to make it a imprisonable felony to give money to someone or an organization for the purpose of speaking a particular message as their own, and accepting money in exchange for speaking a message as your own. Basically ban advertising, or at least make each commercial basically say "General Motors has paid us to tell you that ... ... ..." instead of the sexy se…
General Motors making an ad campaign paying for broadcast does not equate to the station / channel endorsing a product.
How about a plumbing company buys a billboard and puts an ad for their services on it?
Pretty sure the courts would find this plan violates the first amendment too.