No need for this complexity. They could just revoke API access for apps that don't show ads per their guidelines. It'd be easy to catch any Twitter client with a significant user base that isn't showing ads properly.
At the end of the day though solutions like this just aren't realistic. If Twitter's going to show ads and other content like cards in their stream, advertisers have to have confidence that the content and presentation will be preserved. The only way to truly do this effectively is to control how your product is presented in all cases.
The problem isn't that Twitter's making these changes. The problem is that Twitter's only getting around to doing this now, years after a vibrant ecosystem of third-party clients has been well established. No one complains that there isn't a rich market for third-party Facebook clients, even though the Facebook app historically has been pretty substandard. Facebook, wisely, never relinquished control over their platform.
Twitter, as ever, is cleaning up for previous incompetence, trying to clean up a mess that never should have existed. How could they not have assigned one or two people to build an iPhone client the minute the iPhone SDK was announced in 2008? How blind do you have to be to not anticipate that mobile will be huge for Twitter, a service originally engineered around being used over SMS?
Watching Twitter bungle issue after issue over the years gives the distinct impression that Twitter is successful in spite of their executive management, not because of it.