Ad Monetization SDK Integration for Games: Expert Approach

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Ad Monetization SDK Integration for Games: Expert Approach
Medium
from 2 days to 1 week
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1434
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    972
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    586
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    651
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Educational quiz for kids "Shopping in a store"
    12

Adding AdMob to a Unity project — three lines of code and a package from Package Manager. But if a week after release eCPM drops by half and half of rewarded videos aren't counted as watched — the problem isn't the ad network. The problem is how the SDK is initialized, how the waterfall setup is configured, and why RewardedAd.OnAdFullScreenContentFailed is swallowed without logging. Our team has 7 years of experience in game dev, completed 30+ monetization projects, and worked with publishers in the top 100. Our ad network integration approach is an architectural solution, not just a plugin.

According to AppLovin documentation, MAX real-time bidding consistently outperforms waterfall by 20-30% for Tier-1 audiences. That's why our eCPM optimization starts with platform selection.

Monetization through ads is an architectural decision, not just a plugin. We guarantee stable eCPM and a fill rate of 85%+ with proper mediation. Contact us for a free audit of your current integration.

Typical Pitfalls of DIY Integration

Initialization at the wrong moment. MobileAds.Initialize() must be called once at app startup, before any ad requests. I've seen projects where initialization is done in Awake() of each scene via a singleton without state checking — SDK initializes multiple times, causing conflicts between mediation adapters and a fluctuating fill rate. Solution: call MobileAds.Initialize() in a manager with an isInitialized flag and block repeated calls. Using cancellation tokens and thread-safe singletons ensures robust initialization.

Lack of mediation. Working with a single network (only AdMob or only Unity Ads) means accepting a fill rate of 60-70% in Tier-3 geo. A normal scheme: LevelPlay (IronSource) or MAX (AppLovin) as the mediation platform, with AdMob/Meta/Unity Ads/Pangle as demand sources. Setting up a waterfall setup or programmatic bidding for specific geo takes several days, not hours. Switching from waterfall to bidding increases eCPM by 15-25% for Tier-1 traffic. For example, one of our clients increased monthly revenue from $10,000 to $15,000 after migrating to MAX. Starting at $3,000, our full integration saves an estimated $500 monthly in lost revenue.

Quick comparison: MAX vs LevelPlay - MAX is 1.2 to 1.3 times better than LevelPlay for Tier-1 eCPM. - LevelPlay offers 1.1 times better fill rate than single-network setups.

SDK conflicts. AdMob, Meta Audience Network, and Unity Ads pull their own versions of com.google.android.gms, play-services-ads, and native libraries. With manual dependency management in mainTemplate.gradle, it's easy to get DuplicateClass or NoSuchMethodError at runtime on Android. The correct way is External Dependency Manager (EDM4U) with clear force-resolves in Dependencies.xml. On iOS — SKAdNetwork entries in Info.plist for all networks (can be 30+). By our estimates, incorrect integration can cost the project up to $2,000 monthly due to lost revenue and debugging time.

GDPR consent flow and ATT iOS 14. Since iOS 14.5+, without the AppTrackingTransparency request, IDFA is unavailable, and personalized ads don't work — eCPM drops by 40-60% for Tier-1 audiences. For EU users, UMP (User Messaging Platform) from Google or an equivalent is required. A misconfigured consent flow is not only lost revenue but also a risk of account ban. We configure UMP with a custom dialog and ATT request in the correct sequence. ATT iOS 14 compliance is mandatory for personalized ads.

How Mediation and Bidding Affect Fill Rate?

Mediation is when multiple ad networks compete for an impression. In a waterfall, networks have priorities; if AdMob doesn't fill, the request goes to the next. Bidding — all networks participate in real-time, paying the highest bid. For hyper-casual with a global audience, MAX with bidding is optimal: fill rate reaches 92% even in Tier-3. For mid-core with a focus on CIS, LevelPlay with two or three demand sources is often sufficient. We select the stack based on your model and geo.

Parameter MAX (AppLovin) LevelPlay (IronSource)
Auction type Real-time bidding Waterfall + bidding
Average eCPM Tier-1 +20-30% +10-15%
Fill rate Tier-3 90-92% 80-85%
Configuration flexibility High Medium

Why SDK Initialization Determines Monetization Success?

Incorrect initialization is the cause of 70% of ad problems after release. MobileAds.Initialize() must be performed before loading the first ad, but without blocking the UI. We use asynchronous loading with a callback and status check. Also critical: update SDK to the latest versions — each major version includes fixes for critical bugs, for example, in handling OnAdFailedToLoad. The official AdMob documentation recommends always using the latest stable version. Our game ad revenue analytics consistently shows that proper initialization boosts eCPM by 10-15%.

How We Build the Integration: Step-by-Step Plan

  1. Audit the current monetization scheme and SDK stack.
  2. Select mediation platform (MAX, LevelPlay) and demand sources.
  3. Configure waterfall or bidding per geo and formats.
  4. Implement all ad formats with full event handling: OnAdLoaded, OnAdFailedToLoad, OnAdOpening, OnAdClosed, OnUserEarnedReward.
  5. Integrate consent flow (UMP, ATT) with custom dialog.
  6. Configure ProGuard for Android and SKAdNetwork for iOS.
  7. Test with test and real ad unit IDs.
  8. Connect revenue analytics (AppsFlyer, Adjust) with impression-level revenue.
  9. Documentation and post-implementation support.

What's Included in the Integration Service

  • Documentation: Complete integration guide with code samples and configuration files.
  • Access: Admin access to ad network dashboards and analytics platforms.
  • Training: 2-hour team training session covering SDK maintenance and troubleshooting.
  • Support: 30 days of post-deployment support, including bug fixes and performance monitoring.
  • Deliverables: Unity package or Unreal plugin, Info.plist/AndroidManifest.xml configs, mediation settings export.

Timelines

Scenario Timeline
Single ad network, basic formats 3–5 days
Mediation (2-3 networks) + GDPR/ATT + analytics 1.5 – 3 weeks
Full mediation stack with bidding + attribution 3 – 5 weeks

Cost is determined after analyzing the current project stack, target geo, and monetization goals. Order a free audit — we will prepare a plan and accurate estimate.

Technical requirements for integration:

  • Unity 2020 LTS+ or Unreal Engine 4.27+
  • Android API 21+ / iOS 12+
  • External Dependency Manager for Android
  • CocoaPods for iOS
  • GIT repository for change tracking

Ad Revenue Analytics

Without ARPDAU breakdown by acquisition channel, monetization is opaque. We connect attribution via AppsFlyer or Adjust, configure ad revenue event transmission — LevelPlay and MAX can send impression-level revenue, allowing LTV calculation at the campaign level, not just overall per app. This enables UA budget optimization and can increase ROI by 20-30%.

Contact us for a consultation — we will help build monetization from scratch or optimize your current integration.

Monetization and Analytics

The game is live, DAU is growing, but revenue isn't — or it comes in but you don't know from where. We often see this picture: monetization and analytics are stitched in after the fact, without a system. Rewriting purchases and events after release is expensive and time-consuming. Our task is to design these layers so that they start generating money from day one, rather than turning into technical debt.

IAP: Architecture of In-App Purchases

Integrating Unity IAP seems trivial: SDK, product catalog, callback. In practice, most projects break here — duplicate transactions, lost purchases, vulnerability to hacking.

Client-side vs. Server-side Validation

The basic scheme with a client-side receipt works until it is cracked. A hacker spoofs the store's response and gets the item for free. The correct solution is to send the receipt to your backend for verification via Apple App Store API or Google Play Developer API. Only then grant the item and save the transaction_id. Without server-side validation, any soft currency or battle pass is a target for replay attacks. Fixing this gap typically saves 15–25% of lost IAP revenue.

Product Types

Type Example Features
Consumable Coin pack, energy Multiple purchases, each time granted
Non-Consumable Remove ads, content One time, must restore purchases on iOS
Subscription Battle Pass, VIP Auto-renewal, grace period, S2S notifications

Subscriptions are the most complex type. Apple and Google handle renewal, trial, and cancellations differently. You need a backend that processes Server-to-Server notifications (App Store Server Notifications, Google Pub/Sub). Without this, half of your subscriptions will be lost — processing these notifications correctly cuts subscription revenue leakage by up to 40%.

Purchase Restoration

On iOS, without IStoreController.RestoreTransactions(), the store won't approve. On Android, restoration is optional but increases trust. Unity IAP does this with one method, but you need to test on a real device with TestFlight.

How does ad monetization work?

In hyper-casual and casual games, ads are the main source of revenue. Key SDKs:

  • AdMob — basic, stable, but eCPM below average ($0.02–$0.08 in many regions).
  • IronSource (Unity LevelPlay) — mediator, conducts real-time auctions between networks.
  • AppLovin MAX — alternative, often wins on eCPM in the US and Europe ($0.10–$0.15).

The rule of thumb: use a mediator (IronSource or MAX) with AdMob, Meta Audience Network, and a couple of regional networks. Direct integration of a single SDK yields 30–60% less revenue for the same traffic — proven on 20+ projects. Using a mediator increases revenue by 30–60% compared to direct integration.

Retention impact of ad frequency

Rewarded video is the most lenient format: the player decides whether to watch the ad for a reward. Interstitials between levels cut retention if shown more than once every 3–4 transitions. New players should not see ads in the first 24 hours — this reduces Day 1 retention by 15–25%. Optimizing ad placement can increase ad revenue by 20–40% without harming retention.

What is the architecture of analytics events?

This goes deeper. Most teams connect Firebase Analytics, scatter logEvent() calls, and think analytics is ready. A month later, they find the data missing or useless because the event schema wasn't thought through.

How to Design the Event Schema?

Before writing code, define what questions the analytics should answer. Typical questions are: where players get stuck in the tutorial, at which level churn peaks, which traffic sources yield the best LTV, and which IAP offers convert better. For each question, a specific event with parameters is needed.

Example of a bad event:

logEvent("level_complete");

Example of a good event:

logEvent("level_complete", {
  level_id: "world_2_level_5",
  attempts: 3,
  time_spent_sec: 142,
  boosters_used: ["shield", "bomb"],
  session_id: "abc123",
  user_segment: "payer"
});

The first one only says 'level completed'. The second allows building funnels, segmenting players, and correlating behavior with revenue. Games using proper event schema see LTV increase of 15–25% within the first month.

Standard Event Categories

Progress: tutorial_step_complete (separate for each onboarding step), level_start, level_complete, level_fail, chapter_unlock.

Monetization: iap_initiated (opened store or tapped offer), iap_complete (with revenue), iap_fail, ad_show_request, ad_show_complete, ad_reward_claimed.

Engagement: session_start/session_end (with duration), feature_used, push_notification_open.

Firebase Analytics vs. GameAnalytics vs. AppsFlyer

Tool Purpose Limitations
Firebase Analytics In-game behavioral analytics 500 unique event types, 25 parameters per event
GameAnalytics Specialized for games: progression, resources, design Less flexibility in customization
AppsFlyer Attribution of installs and ad campaigns Does not provide in-game data

In a typical project, all three are used. Without AppsFlyer, you're spending your UA budget blindly — it tracks SKAdNetwork, calculates campaign ROI, and integrates with Facebook Ads and Google UAC.

Cloud Saves

A player who loses progress when changing devices has a 70% chance of not returning. Options:

  • Unity Cloud Save (UGS) — fast, key-value, free up to limit.
  • PlayFab Player Data — more flexible, segmentation, conditional access.
  • Firebase Firestore — for complex data, real-time synchronization.

Synchronize only critical data: level, purchased items, settings. Heavy files (replays, screenshots) store separately.

What does the work include?

After signing the contract, we follow a structured process:

  1. Conduct an audit of the current monetization and analytics scheme (if the game is already live) or design from scratch.
  2. Develop IAP architecture with server-side validation and subscription support, including S2S notification handling.
  3. Integrate ad mediator (IronSource/MAX) and configure the auction with multiple networks to maximize eCPM.
  4. Design the analytics event schema and connect Firebase + GameAnalytics + AppsFlyer for full funnel visibility.
  5. Implement cloud saves and purchase restoration (iOS restore, Android fallback).
  6. Provide documentation on events and instructions for game designers, plus a testing guide.
  7. Offer 2 weeks of free support after release to catch issues early.

Why Work with Us

We have been setting up monetization in mobile games for over 7 years. Experience — 30+ projects, from hyper-casual to MMORPG. We developed an event standard that increased payment conversion by 20% for one client within a month of implementation. We guarantee data transparency — you always see which events are firing and how much they bring. Get a free audit of your monetization scheme — reach out via our contact form.

Estimated Timelines

  • IAP + server-side validation: 5 to 10 business days.
  • Ad monetization with mediator: 3 to 7 days.
  • Full cycle (analytics + IAP + ads): 2 to 4 weeks. Cost is calculated individually — request an estimate via email.

Frequent pitfalls to avoid

  • Lack of server-side validation — vulnerability to hacking (fix saves 15–25% lost revenue).
  • Events without parameters — data useless; no way to segment or calculate LTV.
  • Showing ads in the first 24 hours — kills Day 1 retention by 15–25%.
  • Direct integration of a single ad SDK — lose 30–60% of potential ad revenue.

Order a consultation — we will analyze your project and propose a plan. Contact us through the feedback form.