  We study a classical Bayesian mechanism design problem where a seller is
selling multiple items to multiple buyers. We consider the case where the
seller has costs to produce the items, and these costs are private information
to the seller. How can the seller design a mechanism to maximize her profit?
Two well-studied problems, revenue maximization in multi-item auctions and
signaling in ad auctions, are special cases of our problem. We show that there
exists a simple mechanism whose profit is at least $\frac{1}{44}$ of the
optimal profit for multiple buyers with matroid-rank valuation functions. When
there is a single buyer, the approximation factor is $11$ for general
constraint-additive valuations and $6$ for additive valuations. Our result
holds even when the seller's costs are correlated across items.
  We introduce a new class of mechanisms called permit-selling mechanisms. For
single buyer case these mechanisms are quite simple: there are two stages. For
each item $j$, we create a separate permit that allows the buyer to purchase
the item in the second stage. In the first stage, we sell the permits without
revealing any information about the costs. In the second stage, the seller
reveals all the costs, and the buyer can buy item $j$ by paying the item price
if the buyer has purchased the permit for item $j$ in the first stage. We show
that either selling the permits separately or as a grand bundle suffices to
achieve the constant factor approximation to the optimal profit (6 for
additive, and 11 for constrained additive). For multiple buyers, we sell the
permits sequentially and obtain the constant factor approximation. Our proof is
enabled by constructing a benchmark for the optimal profit by combining a novel
dual solution with the existing ex-ante relaxation technique.
