Gold simply needs to be made non-tradeable. You want to trade? Barter with items like most did in Diablo 2. That kills nearly all of the spam since if you can’t trade gold, you can’t use gold buying services and they will have no reason to advertise anymore.
And if you want to trade, Blizzard needs to make having an authenticator attached to your account mandatory. It’s time to take the kiddie gloves off.