How to Add Rewarded Video Ads to a Unity Mobile Game: Complete Integration Guide

How to Add Rewarded Video Ads to a Unity Mobile Game: Complete Integration Guide

by | Jul 4, 2026 | Uncategorized | 0 comments

If you’re building a mobile game and wondering how to add rewarded video ads to a mobile game without ruining the player experience, you’re in the right place. Rewarded video is one of the highest-eCPM ad formats available, and when implemented correctly, it actually improves retention and session length instead of hurting them.

In this hands-on tutorial, we’ll walk through the full integration of rewarded video ads in a Unity project using Google AdMob with mediation (currently the most widely deployed setup in 2026). You’ll get production-ready C# code, placement strategies that maximize revenue, and best practices we’ve refined across dozens of game launches at Falanxia.

Why Rewarded Video Ads Are the Best Monetization Format for Mobile Games

Unlike interstitials or banners, rewarded video is an opt-in format. The player chooses to watch, in exchange for in-game value (extra lives, currency, skins, continues). This consent-based model delivers three measurable benefits:

  • Higher eCPMs (typically 2 to 5 times higher than interstitials in 2026)
  • Positive impact on retention, because players associate ads with reward, not interruption
  • Increased in-app purchase rates, as rewarded ads warm up non-payers and convert them into spenders over time

According to recent industry data, rewarded video accounts for over 60% of total ad revenue in casual and mid-core games. If you only have time to implement one ad format, this is the one.

mobile game developer coding

What You’ll Need Before You Start

  • Unity 2022.3 LTS or newer (Unity 6 recommended)
  • A Google AdMob account with your app registered
  • The Google Mobile Ads Unity Plugin (latest version)
  • Basic familiarity with C# and Unity’s component system

Step 1: Install the Google Mobile Ads Unity SDK

Download the latest GoogleMobileAds-vX.X.X.unitypackage from the official GitHub repository and import it via Assets > Import Package > Custom Package.

Then open Assets > Google Mobile Ads > Settings and enter your AdMob App IDs for Android and iOS.

Step 2: Configure Mediation for Maximum Fill and Revenue

Mediation is what separates amateur monetization from professional setups. Instead of relying on a single ad network, mediation auctions every impression across multiple networks to get the highest bid.

In the AdMob dashboard, enable these top-performing rewarded networks for 2026:

Network Best For Bidding Type
AdMob (Google) Global fill Open Bidding
Unity Ads (LevelPlay) Game inventory Bidding
AppLovin High eCPM in US/EU Bidding
Meta Audience Network Tier 1 markets Bidding
Pangle APAC & emerging markets Bidding
Mintegral Casual games, Asia Bidding

Always prefer real-time bidding over waterfall whenever a network supports it. Bidding alone typically lifts rewarded ARPDAU by 15 to 30%.

mobile game developer coding

Step 3: Initialize the SDK

Create a bootstrap script that runs on app start. Initialize the SDK once, before requesting any ads.

using GoogleMobileAds.Api;
using UnityEngine;

public class AdsBootstrap : MonoBehaviour
{
    void Start()
    {
        MobileAds.Initialize(initStatus =>
        {
            Debug.Log("AdMob SDK initialized");
            RewardedAdManager.Instance.LoadRewardedAd();
        });
    }
}

Step 4: Implement the Rewarded Ad Manager

Use a singleton pattern so any gameplay script can trigger an ad with one line. Here is a production-grade implementation:

using System;
using GoogleMobileAds.Api;
using UnityEngine;

public class RewardedAdManager : MonoBehaviour
{
    public static RewardedAdManager Instance { get; private set; }

#if UNITY_ANDROID
    private const string AdUnitId = "ca-app-pub-3940256099942544/5224354917"; // test ID
#elif UNITY_IPHONE
    private const string AdUnitId = "ca-app-pub-3940256099942544/1712485313"; // test ID
#else
    private const string AdUnitId = "unused";
#endif

    private RewardedAd _rewardedAd;
    private Action _onRewardEarned;

    void Awake()
    {
        if (Instance != null) { Destroy(gameObject); return; }
        Instance = this;
        DontDestroyOnLoad(gameObject);
    }

    public void LoadRewardedAd()
    {
        if (_rewardedAd != null) { _rewardedAd.Destroy(); _rewardedAd = null; }

        var request = new AdRequest();
        RewardedAd.Load(AdUnitId, request, (RewardedAd ad, LoadAdError error) =>
        {
            if (error != null || ad == null)
            {
                Debug.LogError("Rewarded ad failed to load: " + error);
                Invoke(nameof(LoadRewardedAd), 10f); // retry with backoff
                return;
            }
            _rewardedAd = ad;
            RegisterEventHandlers(ad);
        });
    }

    public bool IsReady() => _rewardedAd != null && _rewardedAd.CanShowAd();

    public void ShowRewardedAd(Action onReward)
    {
        _onRewardEarned = onReward;
        if (IsReady())
        {
            _rewardedAd.Show((Reward reward) =>
            {
                _onRewardEarned?.Invoke();
            });
        }
        else
        {
            Debug.LogWarning("Rewarded ad not ready");
            LoadRewardedAd();
        }
    }

    private void RegisterEventHandlers(RewardedAd ad)
    {
        ad.OnAdFullScreenContentClosed += () => LoadRewardedAd();
        ad.OnAdFullScreenContentFailed += (AdError err) => LoadRewardedAd();
        ad.OnAdPaid += (AdValue adValue) =>
        {
            // Send impression revenue to your analytics for LTV tracking
        };
    }
}

Step 5: Trigger the Ad From Gameplay

From any button or game event, call:

public void OnDoubleCoinsButtonPressed()
{
    RewardedAdManager.Instance.ShowRewardedAd(() =>
    {
        PlayerWallet.AddCoins(lastRunCoins * 2);
    });
}

Critical rule: only grant the reward inside the callback. Never grant it before Show() or based on button press alone, as this leads to fraud and broken economies.

Best Placements for Rewarded Video Ads (That Don’t Hurt Retention)

Where you place the offer matters more than the SDK you use. These are the highest-converting placements we’ve validated across our portfolio:

  1. Continue / Revive after death: the single highest-converting placement, often above 25% engagement rate
  2. Double your reward at the end of a level or run
  3. Free currency shop button, always visible in the main store
  4. Daily reward boost, doubling the standard daily login gift
  5. Speed-up timers in builder or idle games
  6. Free spin / lucky wheel with a cooldown
  7. Unlock a temporary character or skin for one run

Placements to Avoid

  • Forced rewarded ads with no clear opt-out
  • Rewards smaller than what the player could earn organically in 30 seconds
  • Placements that interrupt active gameplay rather than appearing between sessions
mobile game developer coding

Best Practices to Maximize Revenue Without Hurting Retention

  • Pre-load aggressively. Always have the next ad loaded before the player needs it. Latency kills conversion.
  • Make the reward valuable but not game-breaking. Aim for 2x to 3x the value of an organic reward.
  • Cap impressions per session if needed (4 to 6 is a healthy range for most casual games), but only if you see retention dropping in cohort analysis.
  • Show ad availability visually. Greyed-out buttons when no ad is ready frustrate players. Either hide the button or auto-retry loading.
  • Track impression-level revenue with OnAdPaid and send it to your MMP or analytics tool. This enables accurate LTV and ROAS modeling.
  • A/B test reward amounts and placements using Firebase Remote Config or your LiveOps platform.
  • Respect privacy. Implement a proper consent flow (GDPR, ATT on iOS, the EU Digital Markets Act requirements) before any ad request.

Testing Before You Ship

Before submitting to the App Store or Google Play:

  • Use Google’s test ad unit IDs during development (the ones shown in the code above)
  • Register your physical test device in the AdMob console to receive real-format test ads
  • Verify the reward callback fires only when the ad is fully watched
  • Test offline behavior, network drops mid-ad, and rapid button mashing
  • Switch to your real ad unit IDs only in your release build configuration

Common Mistakes to Avoid

  • Granting the reward before the user finishes watching
  • Not destroying old ad objects, causing memory leaks
  • Requesting ads before SDK initialization completes
  • Ignoring iOS App Tracking Transparency, which can cut iOS eCPMs by 60% or more if mishandled
  • Using only one ad network with no mediation

Frequently Asked Questions

How much can I earn from rewarded video ads in a mobile game?

Rewarded ARPDAU in 2026 typically ranges from $0.02 to $0.20 depending on geography, genre, and engagement design. A casual game with 100,000 DAU and good placement design can realistically earn $5,000 to $15,000 per day from rewarded video alone.

Do rewarded video ads hurt retention?

No, when implemented correctly they typically improve retention. Because players opt in for value, they perceive ads as a benefit rather than an interruption. Multiple industry studies confirm rewarded-engaged users have higher D7 and D30 retention than non-engaged users.

Should I use AdMob, Unity LevelPlay, or AppLovin MAX as my main mediation platform?

All three are excellent in 2026. AdMob is the easiest path if you’re already in Google’s ecosystem. AppLovin MAX often delivers slightly higher eCPMs for gaming inventory. Unity LevelPlay integrates seamlessly with Unity workflows. The right choice depends on your team’s preferences and your geographic mix.

Can I combine rewarded video with in-app purchases?

Yes, and you absolutely should. Players who engage with rewarded video are 2 to 4 times more likely to convert into IAP buyers later. Rewarded ads do not cannibalize purchases when designed as complementary value sources.

Is there a minimum number of users I need before rewarded ads make sense?

Technically no, but eCPMs improve significantly once you cross 10,000 DAU because mediation has more data to optimize bids. Below that threshold, focus on retention first, monetization second.

Need Help Monetizing Your Game?

At Falanxia, we help studios design and integrate ad monetization systems that respect players and maximize revenue. From SDK integration to LiveOps experimentation, we’ve helped games scale to millions of dollars in ad revenue. Get in touch if you’d like a hand with your monetization strategy.