We develop in-game monetization systems with a focus on balance and user experience. For over 8 years, we have integrated IAP, ads, and subscriptions for games of various genres—from hyper-casual to midcore RPG. Our team has implemented monetization in 40+ projects using proven stacks: Unity IAP, PlayFab, AppLovin MAX. When monetization is added at the end of development, it either breaks game balance or feels tacked on—leading to lower ARPU and ratings. Contact us for an audit or monetization model design.
How IAP Works in Unity and Unreal
The primary tool for mobile games is IAP (In-App Purchases). In Unity, it's implemented via the Unity IAP package—a unified API for Google Play Billing and Apple StoreKit. Basic integration is straightforward, but there are nuances.
Receipt validation. Client-side receipt validation is useless—any rooted Android device can generate a fake receipt. Server-side validation is mandatory: the client sends the receipt to the backend, the backend verifies it via Google Play Developer API or Apple App Store Server API, then grants the currency. Without this, any cheater can get free currency in 5 minutes. Apple App Store Server API docs recommend this approach.
Consumable vs. Non-consumable vs. Subscription. Consumables (crystals, coins) require transaction confirmation after granting: controller.ConfirmPendingPurchase(product). If not called, Google/Apple will return the purchase on next launch. Non-consumables (content unlocks) must be restored via RestorePurchases()—an App Store requirement.
| Type | Description | Technical details |
|---|---|---|
| Consumable | Spendable item (coins, crystals) | Requires ConfirmPendingPurchase, repeatable purchases |
| Non-consumable | Permanent unlock (levels, skins) | Requires RestorePurchases, single purchase forever |
| Subscription | Recurring content (monthly bonus) | Status tracking via SubscriptionInfo, server-side expiration check |
Offline resilience. A purchase may start with a good connection and finish with a poor one. We store transaction state locally (PlayerPrefs or SQLite) and handle pending purchases on next launch. This reduces lost transactions by 10x compared to ignoring PlayFab documentation.
Game Currency and Economy
Dual currency (soft + hard) is the standard for midcore games. Technical implementation:
- Backend as source of truth. Currency balance stored on server, client only displays. Local cache for UI responsiveness, but always synchronized with server. PlayFab Virtual Currency is a ready-made solution with transaction logging and history.
- Race condition protection. Parallel spend requests (simultaneous button taps) must be processed atomically. PlayFab CloudScript executes in a single thread per user—solving the problem. Custom backend requires database transactions.
- Transaction audit. Every balance change is logged with reason, amount, timestamp. Without this, investigating player complaints and detecting anomalies is impossible.
Ad Monetization
For hyper-casual and casual games, ads are the primary revenue source. Stack:
- UnityAds—simplest integration for Unity projects.
- IronSource / AppLovin MAX—mediation platforms that allow multiple ad networks to compete for impressions. Rates are 20-40% higher compared to a single network.
- Rewarded video requires correct integration with gameplay: show ads only in organic points (Game Over, before bonus level), never forced.
Interstitial between levels: we use a counter, not after every level. Frequency is determined by A/B testing via Firebase Remote Config or PlayFab Experiments.
LiveOps and Events
Temporary events, battle pass, seasonal content—a separate infrastructure. Event configuration lives on the server; client downloads on launch. PlayFab Title Data or custom CMS. Important: client should never hardcode event dates—that's a guaranteed bug when schedule changes.
Battle pass technically: track progress in PlayFab Statistics, milestone rewards via PlayFab CloudScript, display progress via Addressable bundles with reward icons (to avoid bloating base build).
Why Monetization Should Not Be Added at the End
Real case: a mobile match-3 game, progression balanced purely for fun, without monetization. During IAP integration, it turned out players complete all content in 4 hours without a single purchase. We had to rework the difficulty curve and add an energy system—requiring a 60% rework of gameplay systems.
Monetization model must be part of GDD from day one. It determines: progression curve, currency structure, conversion points, and value of each resource.
More on consequences
Adding monetization post-release increases development time by 40% and reduces purchase conversion by 30% due to mechanic inconsistency. Proper economy design from the start increases ARPU by up to 25%.What's Included
- Monetization model audit—analysis of current economy, conversion points, competitors.
- Economy design—sink/source balance, dual currency, item value.
- IAP integration—Unity IAP, server-side validation, edge case handling.
- Ad setup—UnityAds, IronSource/MAX, rewarded video, interstitial.
- Battle Pass & LiveOps—event configuration, progress tracker, rewards.
- Monetization analytics—conversion funnels, Firebase/Amplitude setup.
- Documentation and training—tool transfer, process description.
- Post-launch support—monitoring, A/B tests, refinements.
Process
- Analysis and design (3-5 days). Analyze genre and competitors, choose monetization model, design economy (sink/source resource balance).
- Backend infrastructure (1-2 weeks). Set up PlayFab or custom backend: currencies, catalog, CloudScript for transactions, server-side receipt validation.
- Client integration (1-2 weeks). Unity IAP, shop UI, gameplay integration, edge cases (no network, failed purchase, restore).
- Analytics (3-5 days). Set up conversion funnels in Firebase/Amplitude: shop view → purchase initiation → successful purchase. Track retention by monetization segments.
- QA and sandbox. Sandbox test IAP on test accounts for Google and Apple. Test all edge cases: cancel purchase, failed payment, restore purchases.
| Integration type | Timeline |
|---|---|
| Basic IAP (1-3 products) | 1 week |
| IAP + ads + analytics | 2-3 weeks |
| Full economy + battle pass | 1-2 months |
| LiveOps infrastructure | 2-4 weeks (depends on stack) |
Cost is calculated after requirements analysis and chosen stack. Contact us for an assessment and optimal solution.





