  Notifications are important for the user experience in mobile apps and can
influence their engagement. However, too many notifications can be disruptive
for users. A typical mobile app usually has several types of notification,
managed by distinct teams with objectives that are possibly conflicting with
each other, or even with the overall platform objective. Therefore, there is a
need for careful curation of notifications sent to users of these different
types. In this work, we study a novel centralized approach for notification
optimization, where we view the opportunities to send user notifications as
items and types of notifications as buyers in an auction market. Furthermore,
the auction setup is unique, and the platform has the ability to subsidize the
bids from the notification types.
  Using tools from fair division, we study the application of competitive
equilibrium for addressing this problem. We show that an Eisenberg-Gale-style
convex program allows us to find an allocation that is fair to all notification
types in hindsight. Using the dual of the formulation, we present an online
algorithm that allocates notifications via first-price auctions using a
pacing-multiplier approach. Secondly, we introduce an approach based on
second-price auctions and pacing, which has the benefit of working well with
existing advertising systems built for second-price auctions.
  Through an A/B test in production, we show that the second price-based
auction system improves over a decentralized notification optimization system,
leading to its launch in production for some Instagram notifications. Further,
through simulations on Instagram notification data and a subsequent production
A/B test, we compare the outcomes of first-price and second-price auctions and
show that the former has more stable pacing multipliers.
