A significant part of optimizing revenue for ad auctions is setting a good reserve (or minimum) price. Set it too low, and the impression may yield little revenue, set it too high and there may not anyone willing to buy the item. Previous work has looked at predicting this value directly, however, the strongly non-convex objective function makes this a challenging proposition. In contrast, motivated by the fact that computing an optimal reserve price for a set of bids is easy, we propose a clustering approach, first finding a good partition of the data, and then finding an optimal reserve price for each partition. In this work, we take a major step in this direction: we derive the specific objective function that corresponds to revenue optimization in auctions, and give algorithms that optimize it.