Unity Ads Tutorial | Unity Tutorial
Ready to monetize your game? Check out our latest tutorial on integrating Unity Ads with your project! 📱✨ We cover everything from setting up banner ads to configuring ad positions and handling ad loading. Whether you're new to Unity Ads or want to sharpen your skills, this guide has got you covered. Dive in and start boosting your game’s revenue today!
WATCH FULL TUTORIAL ON YOUTUBE
=========================================================
Unity Projects - ON SALE!!!
1. Water Sort Puzzle 9000 Levels
2. Ball Sort Puzzle 9000 Levels
3. Sling Shot
=========================================================
Script:
Initialize.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class Initialize : MonoBehaviour, IUnityAdsInitializationListener
{
public string gameID = "";
[SerializeField] bool testMode = true;
private void Start()
{
InitializeAds();
}
private void InitializeAds()
{
if (!Advertisement.isInitialized && Advertisement.isSupported)
{
Advertisement.Initialize(gameID, testMode, this);
}
}
public void OnInitializationComplete()
{
Debug.Log("Unity Ads initialization complete.");
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.Log($"Unity Ads Initialization Failed: {error.ToString()} - {message}");
}
}
Banner.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class Banner : MonoBehaviour
{
public string bannerID = "";
[SerializeField] BannerPosition _bannerPosition = BannerPosition.BOTTOM_CENTER;
// Start is called before the first frame update
void Start()
{
Advertisement.Banner.SetPosition(_bannerPosition);
//ShowBannerAd();
}
// Update is called once per frame
void Update()
{
}
public void LoadBanner()
{
BannerLoadOptions options = new BannerLoadOptions
{
loadCallback = OnBannerLoaded,
errorCallback = OnBannerError
};
Advertisement.Banner.Load(bannerID, options);
}
void OnBannerLoaded()
{
Debug.Log("Banner loaded");
}
void OnBannerError(string message)
{
Debug.Log($"Banner Error: {message}");
}
public void ShowBannerAd()
{
BannerOptions options = new BannerOptions
{
clickCallback = OnBannerClicked,
hideCallback = OnBannerHidden,
showCallback = OnBannerShown
};
Advertisement.Banner.Show(bannerID, options);
}
void HideBannerAd()
{
Advertisement.Banner.Hide();
}
void OnBannerClicked() { }
void OnBannerShown() { }
void OnBannerHidden() { }
}
Interstitial
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class Interstitial : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
public string interstitialID = "";
void Start()
{
LoadInterstitialAd();
}
public void LoadInterstitialAd()
{
Advertisement.Load(interstitialID, this);
}
public void ShowInterstitialAd()
{
Advertisement.Show(interstitialID, this);
}
public void OnUnityAdsAdLoaded(string adUnitId)
{
// Optionally execute code if the Ad Unit successfully loads content.
}
public void OnUnityAdsFailedToLoad(string _adUnitId, UnityAdsLoadError error, string message)
{
Debug.Log($"Error loading Ad Unit: {_adUnitId} - {error.ToString()} - {message}");
// Optionally execute code if the Ad Unit fails to load, such as attempting to try again.
LoadInterstitialAd();
}
public void OnUnityAdsShowFailure(string _adUnitId, UnityAdsShowError error, string message)
{
Debug.Log($"Error showing Ad Unit {_adUnitId}: {error.ToString()} - {message}");
// Optionally execute code if the Ad Unit fails to show, such as loading another ad.
LoadInterstitialAd();
}
public void OnUnityAdsShowStart(string _adUnitId) { }
public void OnUnityAdsShowClick(string _adUnitId) { }
public void OnUnityAdsShowComplete(string _adUnitId, UnityAdsShowCompletionState showCompletionState) { }
}
Rewarded
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class Rewarded : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
public string rewardedID = "";
public int playerCoins = 0;
public int coinsToAdd = 10;
public Text coinText;
// Start is called before the first frame update
void Start()
{
playerCoins = PlayerPrefs.GetInt("PlayerCoins", 0);
LoadRewardedAd();
UpdateCoinDisplay();
}
public void LoadRewardedAd()
{
Advertisement.Load(rewardedID, this);
}
public void OnUnityAdsAdLoaded(string adUnitId)
{
//
}
public void ShowRewardedAd()
{
Advertisement.Show(rewardedID, this);
}
public void OnUnityAdsShowComplete(string adUnitId, UnityAdsShowCompletionState showCompletionState)
{
if (adUnitId.Equals(rewardedID) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
{
Debug.Log("Unity Ads Rewarded Ad Completed");
// Reward the player with coins
AddCoins(coinsToAdd);
}
}
public void OnUnityAdsFailedToLoad(string adUnitId, UnityAdsLoadError error, string message)
{
Debug.Log($"Error loading Ad Unit {adUnitId}: {error.ToString()} - {message}");
LoadRewardedAd();
}
public void OnUnityAdsShowFailure(string adUnitId, UnityAdsShowError error, string message)
{
Debug.Log($"Error showing Ad Unit {adUnitId}: {error.ToString()} - {message}");
LoadRewardedAd();
}
public void OnUnityAdsShowStart(string adUnitId) { }
public void OnUnityAdsShowClick(string adUnitId) { }
private void AddCoins(int amount)
{
playerCoins += amount;
Debug.Log($"Player received {amount} coins. Total coins: {playerCoins}");
// Save the updated coin balance
PlayerPrefs.SetInt("PlayerCoins", playerCoins);
PlayerPrefs.Save(); // Ensure the data is saved immediately
UpdateCoinDisplay(); // Update the display when coins are added
}
private void UpdateCoinDisplay()
{
if (coinText != null)
{
coinText.text = $"Coins: {playerCoins}";
}
}
private void OnApplicationQuit()
{
// Optionally save the coin balance on exit
PlayerPrefs.SetInt("PlayerCoins", playerCoins);
PlayerPrefs.Save();
}
}