Behavior-driven CTA timing
Generic placement was the first thing to fix. I mapped high purchase-intent moments in the gameplay loop — post-failure, boost depletion, near-completion — and repositioned CTAs to appear when a player already has a reason to consider spending. The offer meets the motivation instead of interrupting it.