1. A method for allocating advertisements to slots on a web site, the method comprising: receiving advertisement data from a plurality of advertisers, the advertisement data associated with a plurality of advertisements, the plurality of advertisements including a first set of advertisements associated with a first advertiser of the plurality of advertisers and a second set of advertisements associated with a second advertiser of the plurality of advertisers; receiving constraint data, the constraint data associated with a plurality of constraints; receiving a preference to maximize estimated clicks on the first set of advertisements associated with the first advertiser; and allocating, by a computer, the plurality of advertisements to at least one slot without violating any of the plurality of constraints, the first set of advertisements allocated in response to the preference according to a first optimization function that maximizes estimated clicks on the first set of advertisements without maximizing estimated revenue to the site, the second set of advertisements allocated according to a second optimization function that maximizes estimated revenue to the site.