The main objective of this post Admob Unity Integration is to help you integrate AdMob Ads in Unity project.
Step 1
Download Plugin
You can check and download the latest release of Admob plugin from here (https://github.com/googleads/googleads-mobile-unity/releases).
Step 2
Login To Admob
Open https://www.google.com/admob/
Sign up if you already have no account.
Step 3
Create App
Select Platform
Fill App Information
Step 4
Create AdUnit
Select Ad Type
Ad Unit Settings
Ad Unit Created Successfully
Same way create your required ad units (banner, interstitial and rewarded video).
Step 5
Import package to unity.
Select the downloaded AdMob package.
Here don’t forget to select all files and import.
Step 6
Initialize mobile ad SDK.
// Called only once public void Initialize () { // These ad units are configured to always serve test ads. // REPLACE WITH YOUR APP ID #if UNITY_ANDROID string appId = "ca-app-pub-3940256099942544~3347511713"; #elif UNITY_IPHONE string appId = "ca-app-pub-3940256099942544~1458002511"; #else string appId = "unexpected_platform"; #endif MobileAds.SetiOSAppPauseOnBackground(true); // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(appId); // Get singleton reward based video ad reference. this.rewardBasedVideo = RewardBasedVideoAd.Instance; // RewardBasedVideoAd is a singleton, so handlers should only be registered once. this.rewardBasedVideo.OnAdLoaded += this.HandleRewardBasedVideoLoaded; this.rewardBasedVideo.OnAdFailedToLoad += this.HandleRewardBasedVideoFailedToLoad; this.rewardBasedVideo.OnAdOpening += this.HandleRewardBasedVideoOpened; this.rewardBasedVideo.OnAdStarted += this.HandleRewardBasedVideoStarted; this.rewardBasedVideo.OnAdRewarded += this.HandleRewardBasedVideoRewarded; this.rewardBasedVideo.OnAdClosed += this.HandleRewardBasedVideoClosed; this.rewardBasedVideo.OnAdLeavingApplication += this.HandleRewardBasedVideoLeftApplication; }
Step 7
Banner Ad
private BannerView bannerView; public void RequestBanner() { // These ad units are configured to always serve test ads. // REPLACE WITH YOUR BANNER ID #if UNITY_EDITOR string adUnitId = "unused"; #elif UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #else string adUnitId = "unexpected_platform"; #endif // Create a 320x50 banner at the top of the screen. this.bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); // Register for ad events. this.bannerView.OnAdLoaded += this.HandleAdLoaded; this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad; this.bannerView.OnAdOpening += this.HandleAdOpened; this.bannerView.OnAdClosed += this.HandleAdClosed; this.bannerView.OnAdLeavingApplication += this.HandleAdLeftApplication; // Load a banner ad. this.bannerView.LoadAd(this.CreateAdRequest()); } public void DestroyBanner() { // Destroy banner ad this.bannerView.Destroy(); }
Step 8
Interstitial Ad
private InterstitialAd interstitial; public void RequestInterstitial() { // These ad units are configured to always serve test ads. // REPLACE WITH YOUR INTERSTITIAL ID #if UNITY_EDITOR string adUnitId = "unused"; #elif UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif // Create an interstitial. this.interstitial = new InterstitialAd(adUnitId); // Register for ad events. this.interstitial.OnAdLoaded += this.HandleInterstitialLoaded; this.interstitial.OnAdFailedToLoad += this.HandleInterstitialFailedToLoad; this.interstitial.OnAdOpening += this.HandleInterstitialOpened; this.interstitial.OnAdClosed += this.HandleInterstitialClosed; this.interstitial.OnAdLeavingApplication += this.HandleInterstitialLeftApplication; // Load an interstitial ad. this.interstitial.LoadAd(this.CreateAdRequest()); } // Show Interstital public void ShowInterstitial() { if (this.interstitial.IsLoaded()) { this.interstitial.Show(); } else { MonoBehaviour.print("Interstitial is not ready yet"); } }
Step 9
Rewarded Video Ad
private RewardBasedVideoAd rewardBasedVideo; public void RequestRewardBasedVideo() { // These ad units are configured to always serve test ads. // REPLACE WITH YOUR REWARDED VIDEO ID #if UNITY_EDITOR string adUnitId = "unused"; #elif UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; // Test Id #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/1712485313"; #else string adUnitId = "unexpected_platform"; #endif // Create a rewarded video. this.rewardBasedVideo.LoadAd(this.CreateAdRequest(), adUnitId); } public void ShowRewardBasedVideo() { if (this.rewardBasedVideo.IsLoaded()) { this.rewardBasedVideo.Show(); } else { MonoBehaviour.print("Reward based video ad is not ready yet"); } } // Manage your reward task in “HandleRewardBasedVideoRewarded” method public void HandleRewardBasedVideoRewarded(object sender, Reward args) { string type = args.Type; double amount = args.Amount; MonoBehaviour.print( "HandleRewardBasedVideoRewarded event received for " + amount.ToString() + " " + type); // PERFORM YOUR REWARD TASK HERE }
Step 10
iOS integration.
Add following 2 libraries in your iOS build before submission, if you already don’t have in your project.
- Storekit
- AdSupport
Like below…
And that’s it, you have successfully added ads to your game.
Download my full source code from here.
I hope you find this article helpful while integrating Admob. Let me know by posting a comment if you have any questions.