If you want corporations like Facebook to care about breaking the law, you need start handing out jail time for the CEOs. Fining a significant percentage of revenue might work, but they'd probably cook the books.
0. make corporations admit wrongdoing. almsot every one of them that gets out of a protracted settlement like this without having to own any responsibility at the corporate level for this. They can take the fine. They cannot take the risk to their business and loss of reputation in the market.
1. Stop offering settlements and start prosecuting. Chain up their C levels, withhold bail, deny parole and do not under any circumstances allow the argument of 'hurting the market' sway you. Do the same thing you do to street criminals: freeze their assets and punish companies doling out golden parachutes (AKA bankrolled hush money.) Yes this means you wont always have a perfect record as a prosecutor, yes this means you wont get your shiny DC penthouse after you 'retire' from government life with a law firm in the beltway. and yes it means youll do real work.