The catch is that you need to build good software so people use it so that you can show ads

The caveat to that, though, is that "good" is another term that you can frame however you want.