1. Introduzione
In questo codelab, implementerai un annuncio apertura app di AdMob in un'app Unity.
Cosa creerai
Questo codelab ti guida nell'implementazione di un annuncio apertura app AdMob in un'app Unity utilizzando il plug-in Unity di Google Mobile Ads.
Se riscontri problemi (bug del codice, errori grammaticali, espressioni poco chiare e così via) durante l'esecuzione del codelab, segnalali utilizzando il link Segnala un errore nell'angolo in basso a sinistra del codelab.
Cosa imparerai a fare
- Come configurare il plug-in Unity di Google Mobile Ads
- Come implementare un annuncio apertura app in un'app Unity
Che cosa ti serve
- Unity 2018.4 o versioni successive
- Xcode 12 o versioni successive e CocoaPods (per il deployment su iOS)
Come giudichi il tuo livello di esperienza con AdMob?
2. Configurare l'ambiente di sviluppo
Scarica il codice
Dopo aver scaricato il file ZIP, estrai i contenuti. Avrai una cartella denominata admob-appopen-unity-main
.
In alternativa, puoi clonare il repository GitHub dalla riga di comando:
$ git clone https://github.com/googlecodelabs/admob-appopen-unity
Il repository contiene due cartelle:
Comando iniziale:il codice iniziale che creerai in questo codelab.
complete: codice completato per questo codelab.
3. Configurare le unità pubblicitarie e l'app AdMob
Poiché Unity è un SDK multipiattaforma, devi aggiungere in AdMob un'app e unità pubblicitarie per Android e iOS.
Configurazione per Android
Per eseguire la configurazione per Android, devi aggiungere un'app per Android e creare unità pubblicitarie.
Aggiungere un'app per Android
- Nella console AdMob, fai clic su AGGIUNGI APP dal menu App.
- Seleziona Android come piattaforma. Quando ti viene chiesto L'app è elencata in uno store supportato?, fai clic su NO.
- Inserisci
AdMob app open ad
nel campo del nome dell'app. - Non è necessario attivare le metriche utente per completare questo codelab. Tuttavia, ti consigliamo di farlo perché ti consente di comprendere più dettagliatamente il comportamento degli utenti. Fai clic su AGGIUNGI per completare la procedura.
Creare un'unità pubblicitaria
- Seleziona l'app Annuncio apertura app AdMob (Android) dal menu App nella console AdMob.
- Fai clic sul menu Unità pubblicitarie.
|
In genere, sono necessarie alcune ore prima che una nuova unità pubblicitaria possa pubblicare annunci.
Se vuoi verificare immediatamente il comportamento dell'annuncio, utilizza l'ID app di test e gli ID unità pubblicitaria elencati nelle tabelle ID app per Android/ID unità pubblicitaria e ID app per iOS/ID unità pubblicitaria.
Configurazione per iOS
Per effettuare l'impostazione per iOS, devi aggiungere un'app per iOS e creare unità pubblicitarie.
Aggiungere un'app per iOS
- Nella console AdMob, fai clic su AGGIUNGI APP dal menu App.
- Seleziona iOS come piattaforma. Quando ti viene chiesto L'app è elencata in uno store supportato?, fai clic su NO.
- Inserisci
AdMob app open ad
nel campo del nome dell'app. - Non è necessario attivare le metriche utente per completare questo codelab. Tuttavia, ti consigliamo di farlo perché ti consente di comprendere più dettagliatamente il comportamento degli utenti. Fai clic su AGGIUNGI per completare la procedura.
Creare un'unità pubblicitaria
- Seleziona l'app Annunci in linea AdMob (iOS) dal menu App nella console di AdMob.
- Fai clic sul menu Unità pubblicitarie.
|
In genere, sono necessarie alcune ore prima che una nuova unità pubblicitaria possa pubblicare annunci.
Se vuoi verificare immediatamente il comportamento dell'annuncio, utilizza l'ID app di prova e gli ID unità pubblicitaria elencati nella seguente tabella.
(Facoltativo) Utilizzare l'app e le unità pubblicitarie AdMob di prova
Se preferisci seguire il codelab invece di creare una nuova applicazione e unità pubblicitarie autonomamente, puoi utilizzare l'ID app AdMob di prova e gli ID unità pubblicitaria elencati nelle tabelle seguenti.
ID app/ID unità pubblicitaria per Android
Elemento | ID app/ID unità pubblicitaria |
ID app AdMob |
|
ID unità pubblicitaria |
|
ID app per iOS/ID unità pubblicitaria
Elemento | ID app/ID unità pubblicitaria |
ID app AdMob |
|
ID unità pubblicitaria |
|
Per ulteriori informazioni sugli annunci di prova, consulta la documentazione per gli sviluppatori sugli annunci di prova per Android e sugli annunci di prova per iOS.
4. Aggiungi il plug-in Unity di Google Mobile Ads
L'integrazione del plug-in Unity degli annunci per dispositivi mobili di Google è il primo passo per pubblicare gli annunci AdMob e generare entrate.
Scarica il plug-in Mobile Ads Unity
Il plug-in Unity degli annunci per dispositivi mobili di Google consente agli sviluppatori di Unity di pubblicare facilmente gli annunci per dispositivi mobili di Google su app per Android e iOS. Il plug-in fornisce un'interfaccia C# per la richiesta di annunci utilizzati dagli script C# nel progetto Unity.
Utilizza il link di seguito per scaricare il pacchetto Unity per il plug-in.
Apri il progetto iniziale
- Avvia Unity Hub.
- Nella scheda Progetti, fai clic sul pulsante AGGIUNGI.
- Vai alla cartella in cui hai estratto il codice scaricato nel passaggio Configura l'ambiente di sviluppo.
- Apri la cartella del comando iniziale.
- Il progetto iniziale verrà visualizzato nell'elenco dei progetti. Fai clic sul progetto per aprirlo nell'editor Unity.
Importa il plug-in Mobile Ads Unity
- Nell'editor Unity, seleziona Assets > (Asset >) Importa pacchetto > Pacchetto personalizzato dal menu.
- Seleziona il file
GoogleMobileAds-{VERSION}.unitypackage
che hai scaricato nel passaggio precedente. - Assicurati che tutti i file siano selezionati e fai clic su Importa.
Impostare l'ID app AdMob
- Nell'editor Unity, seleziona Assets > (Asset >) Annunci per cellulari di Google > Impostazioni dal menu.
- Inserisci l'ID dell'app AdMob per Android e iOS in ciascun campo. Se vuoi seguire il codelab anziché creare una nuova applicazione e unità pubblicitarie autonomamente, inserisci l'ID app AdMob di prova come indicato di seguito.
5. Crea una classe di utilità
Crea una nuova classe chiamata AppOpenAdManager
nella cartella Script. Questa classe gestisce una variabile di istanza per tenere traccia di un annuncio caricato e dell'ID unità pubblicitaria per ogni piattaforma.
AppOpenAdManager.cs
using System;
using GoogleMobileAds.Api;
using UnityEngine;
public class AppOpenAdManager
{
#if UNITY_ANDROID
// Test ad unit ID: ca-app-pub-3940256099942544/3419835294
private const string AD_UNIT_ID = "<YOUR_ANDROID_APPOPEN_AD_UNIT_ID>";
#elif UNITY_IOS
// Test ad unit ID: ca-app-pub-3940256099942544/5662855259
private const string AD_UNIT_ID = "<YOUR_IOS_APPOPEN_AD_UNIT_ID>";
#else
private const string AD_UNIT_ID = "unexpected_platform";
#endif
private static AppOpenAdManager instance;
private AppOpenAd ad;
private bool isShowingAd = false;
public static AppOpenAdManager Instance
{
get
{
if (instance == null)
{
instance = new AppOpenAdManager();
}
return instance;
}
}
private bool IsAdAvailable
{
get
{
return ad != null;
}
}
public void LoadAd()
{
// TODO: Load an app open ad.
}
}
Caricare un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo AppOpenAd.LoadAd()
statico. Il metodo di caricamento richiede un ID unità pubblicitaria, una modalità ScreenOrientation
, un oggetto AdRequest
e un gestore del completamento che viene chiamato quando il caricamento dell'annuncio va a buon fine o meno.
L'oggetto AppOpenAd
caricato viene fornito come parametro nel gestore del completamento. Implementa il metodo LoadAd()
come segue.
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
public void LoadAd()
{
AdRequest request = new AdRequest.Builder().Build();
// Load an app open ad for portrait orientation
AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
{
if (error != null)
{
// Handle the error.
Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
return;
}
// App open ad is loaded.
ad = appOpenAd;
}));
}
}
Mostrare l'annuncio
Prima di mostrare l'annuncio, registrati per ogni gestore di eventi per ascoltare ogni evento dell'annuncio.
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
public void ShowAdIfAvailable()
{
if (!IsAdAvailable || isShowingAd)
{
return;
}
ad.OnAdDidDismissFullScreenContent += HandleAdDidDismissFullScreenContent;
ad.OnAdFailedToPresentFullScreenContent += HandleAdFailedToPresentFullScreenContent;
ad.OnAdDidPresentFullScreenContent += HandleAdDidPresentFullScreenContent;
ad.OnAdDidRecordImpression += HandleAdDidRecordImpression;
ad.OnPaidEvent += HandlePaidEvent;
ad.Show();
}
private void HandleAdDidDismissFullScreenContent(object sender, EventArgs args)
{
Debug.Log("Closed app open ad");
// Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
ad = null;
isShowingAd = false;
LoadAd();
}
private void HandleAdFailedToPresentFullScreenContent(object sender, AdErrorEventArgs args)
{
Debug.LogFormat("Failed to present the ad (reason: {0})", args.AdError.GetMessage());
// Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
ad = null;
LoadAd();
}
private void HandleAdDidPresentFullScreenContent(object sender, EventArgs args)
{
Debug.Log("Displayed app open ad");
isShowingAd = true;
}
private void HandleAdDidRecordImpression(object sender, EventArgs args)
{
Debug.Log("Recorded ad impression");
}
private void HandlePaidEvent(object sender, AdValueEventArgs args)
{
Debug.LogFormat("Received paid event. (currency: {0}, value: {1}",
args.AdValue.CurrencyCode, args.AdValue.Value);
}
}
Valutare la scadenza dell'annuncio
I riferimenti agli annunci nell'app aperta scadono dopo quattro ore. Gli annunci pubblicati più di quattro ore dopo l'orario della richiesta non saranno più validi e potrebbero non generare entrate.
Per assicurarti di non pubblicare un annuncio scaduto, modifica la proprietà IsAdAvailable
impostandola su AppOpenAdManager
per verificare il tempo trascorso dal caricamento dell'annuncio. Quindi, utilizza questo metodo per verificare se l'annuncio è ancora valido.
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
// TODO: Add loadTime field
private DateTime loadTime;
private bool IsAdAvailable
{
get
{
// TODO: Consider ad expiration
return ad != null && (System.DateTime.UtcNow - loadTime).TotalHours < 4;
}
}
public void LoadAd()
{
if (IsAdAvailable)
{
return;
}
AdRequest request = new AdRequest.Builder().Build();
AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
{
if (error != null)
{
Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
return;
}
ad = appOpenAd;
Debug.Log("App open ad loaded");
// TODO: Keep track of time when the ad is loaded.
loadTime = DateTime.UtcNow;
}));
}
}
6. Aggiorna la scena per caricare/mostrare l'annuncio
Aggiorna il metodo Start()
nella classe MainScene
per caricare un annuncio apertura app all'inizio della scena.
Per ricevere notifiche relative agli eventi in primo piano delle app, ti consigliamo di ascoltare il singleton AppStateEventNotifier. Se implementi il delegato AppStateEventNotifier.AppStateChanged
, la tua app riceverà un avviso in merito al lancio e agli eventi in primo piano dell'app e potrà mostrare l'annuncio.
MainScene.cs
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;
public class MainScene : MonoBehaviour
{
public void Start()
{
// TODO: Request an app open ad.
MobileAds.Initialize((initStatus) =>
{
AppOpenAdManager.Instance.LoadAd();
AppStateEventNotifier.AppStateChanged += OnAppStateChanged;
});
}
public void OnAppStateChanged(AppState state)
{
if (state == AppState.Foreground)
{
// TODO: Show an app open ad if available.
AppOpenAdManager.Instance.ShowAdIfAvailable();
}
}
}
È tutto. Crea ed esegui il progetto su un dispositivo o su un emulatore. Una volta avviata l'app, attendi qualche secondo per consentire il caricamento completo dell'annuncio.
Dopodiché, se torni all'app da altre app o da una schermata Home, l'annuncio apertura app verrà visualizzato come mostrato di seguito.
7. Operazione completata.
Hai completato il codelab. Puoi trovare il codice completato per questo codelab nella cartella complete.