The trouble with a free API is that someone can write a $1 client that hides all the ads (the number one requested feature), and now your website has no income. An ad-supported website has to get paid. On the web there is at least some stuff they can do to detect ad blockers, or show ads in sneaky ways that change over time and are hard to block.
That's a good argument against ads, because ads introduce a fundamental misalignment of incentives between the platform and the user. There are many ways reddit could build a collaborative business from their current situation. Advertising is very clearly not going to work, so they just need to look outside that box.
Like charging for API access? Yeah, that went well...