Distribution Optimization Algorithm
If you had only one tag, this would become a knapsack problem: in particular, determining whether you could sell all the impressions would be exactly the subset problem.  Therefore, the problem is NP-hard.

A plausible approach to solve it in practice would be to use integer linear programming.