Gaming teams are great at spotting valuable players. They are far worse at spotting when a valuable player is in a state to spend. The highest-value player can still be in a low-value moment.

Gaming teams are very good at predicting which players are valuable. Who spends. Who progresses. Who is about to churn. Who responds to an offer. Years of modeling have gone into one question: which player should see the next offer.
There is a second question most teams never ask. When is that player actually in a state to spend?
A high-value player is not in a spending state all day. They can be walking. Distracted. Checking the game for thirty seconds on a commute. Or sitting down for a long, focused session with time to spare.
Same player. Completely different monetization opportunity.
This is the distinction most offer logic misses. Player value is relatively stable. Moment value is not. A player's spending profile barely moves week to week. The quality of the moment they are in swings wildly across a single day.
The highest-value player can still be in a low-value moment.
Where a player is does not just change their mood. It changes how much room there is for anything to happen.
In a rest context, players are about 46% more likely to reach a detail view than in an active one, roughly 26.2% against 17.9%. The moment decides how far someone goes before they close the app. An offer that needs a few seconds of attention is a different ask in a focused moment than in a distracted one.
LiveOps made monetization dynamic. Live segments, dynamic content, A/B tests, real-time flows. Games can change almost anything on the fly now.
But almost every trigger still fires on an in-game event. A level completed. A loss. A milestone. A session start. An event tells you what just happened inside the game. It does not tell you whether the player is in a moment to take the next ask.
That is the missing input. Not who the player is, not what they just did, but the state they are in right now.
This is the gap ContextDecision fills. Your existing logic decides the offer is eligible: right player, right event, right segment. ContextDecision adds one question on top. Is this a good moment to show it, or is it better to wait.
It reads signals already on the device, motion, orientation, screen state and others, and infers the player's real-world physical context on the device itself. The inference is probabilistic. It informs the call, it does not make the outcome certain.
It does not replace your LiveOps stack or your offer logic. It sits on top and decides the moment.
Picture the same well-priced offer, fired right after a level-up. One player is settled on the couch with twenty minutes ahead. Another has the game open for forty seconds between train stops. Your event logic treated them identically. One moment could carry the offer. The other never could.
Player value tells you who matters. Moment value tells you when to act. Gaming has spent a decade getting very good at the first one. The second is mostly open, and it is where the next lift is hiding.
The highest-value player can still be in a low-value moment. Build for the moment, not just the player.