I just got an email from adzerk saying I had 6 days to find a new adserver as they were moving to enterprise customers only (Yikes!) The good news is that I'm familiar with Revive, although I have never been able to figure out how to properly do passbacks to the adserver to queue the next campaign.
In a nutshell this is how it worked with adzerk:
Request made: Ad 1 is served via adserver
-Ad network either has available inventory, or passback code is used.
--Passback code redirects query to adserver.
--- Adserver choses next campaign based on available criteria.
----Ad 2 is served via adserver.
-----And so on and so forth.
Basically a waterfall with logic because you can set frequency capping as sessions increase and can leverage the adserver across all campaigns.
I remember hacking something together with OpenX a few years ago, but it was overly complicated and slow. I set up all my advertisers and campaigns and added inventory. Then, I made all the campaigns exclusive contract and weighted them 1,10,100,1000,10000,100000 etc. so the campaign I wanted first would be 10x more likely than the campaign I wanted next. Finally, I frequency capped them at x views per session so that the impressions would basically roll through the campaigns by weight ending up with a 100% fill remnant campaign. Of course, there was a secondary waterfall happening at the same time which is outside the server, going through the ad chain.
Long story short, it was a mess, which made adzerk such a godsend at the time.
I'd appreciate any advice or insight.
Thanks.