If I had to put them in order, I'd say #3, #1, #2, #4.
Above all else, you need to have high CPM if you're going to make any money. Niche, topic, and keywords matter here. On one of my own blogs, I had some posts with keywords that got over a dollar per click with AdSense blogs. Other posts made pennies per click (literally one or two cents). When one post makes 50x or 100x as much per click, that's a huge difference.
Next, you need traffic. Traffic leads to views and/or clicks, which translates to money based on CPM or CPC. If you have an estimate of CPM, then you can estimate your earnings by multiplying CPM and Views. Those are the two variables. Increase those, and you'll increase income.
Google rank is good. It typically leads to more visits, which leads to more earnings. However, if you've got another traffic source (referrals, social media), you can make up for this. Also, on high volume keywords it's ok to be ranked in the bottom of the top 10 or at the top of the second page. And don't forget that some keywords get next to no traffic. It doesn't matter if you rank first for, "Really Obscure Keyword Number Two" that gets exactly 1 search per month. As long as your ranking translates into traffic, then it's good.
Finally, content quality is important, but it's really indirectly related to the rest. I'd never publish complete and utter nonsense, but mediocre content with high CPM, traffic, and/or rankings beats superior content with low CPM, no traffic, and/or no rankings any day.
The "Build it and they will come" idea is nothing but a myth. You want to write great content, yes, but at the end of the day keyword value, traffic, and rankings directly impact your earnings. Quality doesn't. Quality doesn't magically translate into traffic, rankings, or earnings.