Unity - AdMob
28. August 2021
28. August 2021
using System;
using GoogleMobileAds.Api;
public class AdManager : MonoBehaviour {
public static AdManager Instance;
public AdManager() {
Instance = this;
}
private void Start() {
// Google Mobile Ads SDK initialisieren.
MobileAds.Initialize(initStatus => { });
}
}
private BannerView bannerView;
private void Start() {
// Google Mobile Ads SDK initialisieren.
MobileAds.Initialize(initStatus => { });
this.RequestBanner();
}
public void RequestBanner() {
// Hier eigene ID einfügen
string BANNER_ID = "ca-app-pub-3940256099942544/6300978111"; // Standardwert
// 320x50 Banner am oberen Bildschirmrand erstellen.
this.bannerView = new BannerView(BANNER_ID, AdSize.Banner, AdPosition.Top);
// Neue Anfrage für eine Ad erstellen.
AdRequest request = new AdRequest.Builder().Build();
// Banner mit der Anfrage laden.
this.bannerView.LoadAd(request);
}
Benutzerdefiniertes BannerAdSize adSize = new AdSize(450, 100);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);
private InterstitialAd interstitial;
public void RequestInterstitial() {
// Hier eigene ID einfügen
string INTERSTATIAL_AD = "ca-app-pub-3940256099942544/1033173712"; // Standardwert
// InterstitialAd initialisieren.
this.interstitial = new InterstitialAd(INTERSTATIAL_AD);
// Hier optional Events einfügen
// Neue Anfrage für eine Ad erstellen.
AdRequest request = new AdRequest.Builder().Build();
// Interstatial mit Anfrage laden.
this.interstitial.LoadAd(request);
// Versuche das InterstatialAd anzuzeigen.
StartCoroutine(ShowInterstatial());
}
private IEnumerator ShowInterstatial() {
// 0.25 Sekunden warten
yield return new WaitForSeconds(0.25f);
// Zeige Interstatial an, wenn es geladen ist. Wenn nicht versuche es nochmal.
if (this.interstitial.IsLoaded()) this.interstitial.Show();
else StartCoroutine(ShowInterstatial());
}
Events hinzufügenpublic void RequestInterstitial() {
// ...
// Wird aufgerufen, wenn ein Interstatial erfolgreich geladen wurde.
this.interstitial.OnAdLoaded += HandleOnAdLoaded;
// Wird aufgerufen, wenn das Aufrufen des Interstatial fehlgeschlagen ist.
this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Wird aufgerufen, wenn das Interstatial angezeigt wird.
this.interstitial.OnAdOpening += HandleOnAdOpened;
// Wird aufgerufen, wenn das Interstatial geschlossen wird.
this.interstitial.OnAdClosed += HandleOnAdClosed;
// Wird aufgerufen, wenn das Interstatial den Benutzer dazu gebraucht hat die App zu verlassen.
this.interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;
// ...
}
public void HandleOnAdLoaded(object sender, EventArgs args) {
Debug.Log("HandleAdLoaded event received");
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("HandleFailedToReceiveAd event received with message: " + args.Message);
}
public void HandleOnAdOpened(object sender, EventArgs args) {
Debug.Log("HandleAdOpened event received");
}
public void HandleOnAdClosed(object sender, EventArgs args) {
Debug.Log("HandleAdClosed event received");
interstitial.Destroy(); // Referenz zu Interstatial entfernen, um später ein neues zu erstellen.
}
public void HandleOnAdLeavingApplication(object sender, EventArgs args) {
Debug.Log("HandleAdLeavingApplication event received");
interstitial.Destroy(); // Referenz zu Interstatial entfernen, um später ein neues zu erstellen.
}
private RewardedAd rewardedAd;
private void Start() {
// Google Mobile Ads SDK initialisieren.
MobileAds.Initialize(initStatus => { });
// RewardedAd vorladen
CreateAndLoadRewardedAd();
}
private void CreateAndLoadRewardedAd() {
// Hier eigene ID einfügen
string REWARDED_AD = "ca-app-pub-3940256099942544/5224354917"; // Standardwert
// RewardedAd initialisieren
this.rewardedAd = new RewardedAd(REWARDED_AD);
// Hier optional Events einfügen
// Neue Anfrage für eine Ad erstellen.
AdRequest request = new AdRequest.Builder().Build();
// RewardedAd mit der Anfrage laden.
this.rewardedAd.LoadAd(request);
}
public void RequestRewardedAd() {
if (this.reviveRewardedAd.IsLoaded()) {
this.reviveRewardedAd.Show();
}
}
Events hinzufügenprivate void CreateAndLoadRewardedAd() {
// ...
// Wird aufgerufen, wenn ein RewardedAd erfolgreich geladen wurde.
rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
// Wird aufgerufen, wenn das Aufrufen des RewardedAd fehlgeschlagen ist.
rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
// Wird aufgerufen, wenn das RewardedAd angezeigt wird.
rewardedAd.OnAdOpening += HandleRewardedAdOpening;
// Wird aufgerufen, wenn das RewardedAd nicht angezeigt werden konnte.
rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
// Wird aufgerufen, wenn der Benutzer eine Belohnung für die Ad bekommt.
rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
// Wird aufgerufen, wenn die RewardedAd geschlossen wurde.
rewardedAd.OnAdClosed += HandleRewardedAdClosed;
// ...
}
public void HandleRewardedAdLoaded(object sender, EventArgs args) {
Debug.Log("HandleRewardedAdLoaded event received");
}
public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args) {
Debug.Log( "HandleRewardedAdFailedToLoad event received with message: " + args.Message);
}
public void HandleRewardedAdOpening(object sender, EventArgs args) {
Debug.Log("HandleRewardedAdOpening event received");
}
public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args) {
Debug.Log("HandleRewardedAdFailedToShow event received with message: " + args.Message);
}
public void HandleRewardedAdClosed(object sender, EventArgs args) {
Debug.Log("HandleRewardedAdClosed event received");
// Nächste RewardAd vorladen
CreateAndLoadRewardedAd();
}
public void HandleUserEarnedReward(object sender, Reward args) {
string type = args.Type;
double amount = args.Amount;
coins += amount; // Hier den Reward dem Spieler geben
Debug.Log("HandleRewardedAdRewarded event received for " + amount.ToString() + " " + type);
}
AdManager.Instance.RequestBanner();
AdManager.Instance.RequestInterstatial();
AdManager.Instance.RequestRewardedAd();