It makes sense to me that the best answer is that it depends on your niche. In my niche, most of the traffic are not looking to buy something right now. Nothing I've tried comes even close to the performance of adsense. Adsense is doing quite well, and I've been able to improve earnings significantly through variation and testing.
Of course, maybe I'm just not trying hard enough, but you have to ask yourself, what is the best path to making more money? I can work on improving my site, which I know with a high degree of certainty will get me more traffic and consequently more money, and will also make my visitors happier and increase my overall reach and presence. Or I can try to find an affiliate program that performs better, which _might_ make more money after some indefinite amount of work. From my experience so far, that would involve quite a lot of work and might not ever pay off.
Seems like a pretty easy choice to me.