It sounds like Google DFP is a solution that would work for you. I'm using DFP with Adsense because DFP:
- can show ads other than AdSense and have them compete with AdSense
- can rotate ads from a single advertiser in the same slot to find out which one works the best.
- can rotate ads from many advertisers according to priorities and revenue.
- supports asynchronous ad tags that speed up my site performance (compared to the synchronous tags from AdSense)
The down side of using DFP is that is a complicated product with a lot of new terminology to learn. Here is the basics of their terminology:
- Inventory - The ad space available on your website
- Ad Unit - The size and place on your page where an ad will appear. This is very similar to AdSense
- Placement - A group of ad units for reporting purposes. This is called a channel in AdSense.
- Creative - The image and URL of an ad placed by a specific company. You can upload these.
- Line Item - A targeting of set of creatives (of the same size) to a combination of specific ad units, languages, user locations, demographics, etc. Each creative needs to be included in at least one line item.
- Order - A set of line items for the ads of a single advertiser (or campaign of an advertiser if you want to let them do campaigns).
Ads are rotated based on the priority specified as the line item type and how much revenue they will bring in. One of the hardest things to get right in DFP is setting the correct line item type.
Another thing that I didn't know when I started using DFP is that AdSense is a special advertiser that doesn't need its own "order". Unlike all other advertisers, AdSense is enabled at the ad unit level. AdSense competes with other ads that can appear in that space automatically. You can use the line item type and cost settings of those other ads to control how often (if at all) the AdSense ads appear. You can use DFP with no orders at all and it can show just AdSense.
Another disadvantage to using DFP if you are converting from AdSense only: AdSense ads served through DFP do not get put into AdSense channels. The reporting in AdSense gets much less useful and you have to rely only on DFP placements reporting.
Here is a tutorial that walks you through the DFP setup process.