I’m going to be starting a banner-rotation script soon and I’m getting a bit perplexed over how exactly to develop it. Suppose a client asks for
“10,000 impressions in the next 10 days for $10,000 dollars.”
Another client asks for
“1,000 impressions for $100 dollars.”
And a third asks for
“1,000 clicks or 10,000 impressions for $5,000.”
How exactly do I determine which banner to show upon a page-request? How do I weigh one against another? Clearly the first request is rather important, as I’m expected to serve a set number of impressions within a time-window.
The second client is not nearly as important, as they don’t care about a time-window, they just want some face-time.
And the last client wants to place an n or m restraint on the impressions/clicks, making matters slightly more difficult.
I’m already pretty confident that I’ll need to abstract some weight from these scenarios to determine who gets the most attention. My question is what type of algorithm could handle this, and secondly how could I serve up banners by weight without always serving up the most important banner with each request?
The difficulty comes from the time constraint more than anything else. I would divide anyone’s priority who did not specify a time constraint by 365 (a year), and then use time as part of the weight factor. So:
That should get you a fairly decent indicator of priority. Now, you can’t mix and match impressions and clicks can you? They either go the impression route or the click route. Seeing as you cannot control click, but you can control impressions (at least, moreso than clicks), I would weigh it according to impressions.