Questa guida mostra come utilizzare la funzionalità Posizionamenti annunci del plug-in Google Mobile Ads Unity per creare e visualizzare gli annunci per la tua app.
Prerequisiti
Unity 2017.4 o versioni successive.
Scarica e importa la build iniziale del plug-in GMA Unity.
Imposta l'ID app AdMob nell'editor Unity.
Inizializza il plug-in Unity di Google Mobile Ads
Prima di caricare gli annunci, inizializza il plug-in Unity di Google Mobile Ads chiamando
MobileAds.Initialize(), con un callback Action<InitializationStatus>. Questa
operazione deve essere eseguita una sola volta, idealmente all'avvio dell'app.
using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
...
public void Start()
{
// Initialize Google Mobile Ads Unity Plugin.
MobileAds.Initialize((initStatus) =>
{
// SDK initialization is complete
});
...
}
}
Creare posizionamenti dell'annuncio
Il primo passaggio per visualizzare un banner con Google Mobile Ads consiste nel creare e configurare un posizionamento dell'annuncio. Puoi selezionare un posizionamento dell'annuncio di tipo banner, interstitial o con premio da Asset > Google Mobile Ads > Posizionamenti annunci in Unity Editor. Vengono quindi configurati tre posizionamenti degli annunci demo pronti per l'uso.

Per aggiungere un nuovo posizionamento dell'annuncio, fai clic sul pulsante Aggiungi nuovo posizionamento alla fine dell'elenco. Puoi configurare il posizionamento dell'annuncio dalla visualizzazione Inspector.
Configurazione del posizionamento dell'annuncio
Ogni posizionamento ha le seguenti proprietà:
- Nome posizionamento
- Nome del posizionamento. Utilizzato per identificare i posizionamenti durante la configurazione degli annunci in una scena.
- Formato dell'annuncio
- Banner, con premio, interstitial. Tipo di annuncio.
- ID unità pubblicitaria
- Fornisci l'ID unità pubblicitaria banner per Android e iOS. Devi fornire almeno un ID unità pubblicitaria.
- Persistente tra le scene
- Se selezionato, il banner rimane sullo schermo indipendentemente dai cambi di scena (stesso comportamento di
DontDestroyOnLoad). - Caricamento automatico attivato
- Se selezionata, un annuncio verrà caricato automaticamente quando viene caricata una scena associata al posizionamento dell'annuncio.
Lo screenshot seguente mostra un esempio di posizionamento dell'annuncio denominato Il mio fantastico banner.

Aggiunta di un AdGameObject alla scena
Puoi aggiungere un AdGameObject per i formati banner, interstitial o con premio alla tua scena utilizzando GameObject > Google Mobile Ads in Unity Editor. Seleziona il formato per aggiungere un posizionamento alla scena attiva.

Dopo aver aggiunto un AdGameObject alla scena, vedrai un GameObject che rappresenta l'annuncio nella visualizzazione Gerarchia di Unity Editor.

Puoi modificare il nome del posizionamento modificando il nome del GameObject. Lo screenshot seguente mostra un esempio di AdGameObject denominato Banner Ad.

Impostazioni di AdGameObject
Puoi configurare AdGameObject nella scena dalla visualizzazione Inspector nelle impostazioni del componente Ad Game Object (Script).
- Posizionamento
Seleziona il posizionamento dell'annuncio dall'elenco a discesa dei posizionamenti configurati. L'elenco conterrà solo le unità pubblicitarie per il formato corretto. Ad esempio, per gli oggetti di gioco dell'annuncio banner, il menu a discesa mostrerà solo i posizionamenti degli annunci banner configurati.

- Configurazione di
BannerAdGameObject(solo banner)
- Dimensioni: seleziona le dimensioni del banner che vuoi utilizzare.
- Il banner adattivo ancorato offre alcune opzioni in più:
- Orientamento: seleziona l'orientamento del dispositivo utilizzato per calcolare l'altezza dell'annuncio.
- Utilizza la larghezza a schermo intero: se questa opzione è selezionata, il banner occuperà l'intera larghezza dello schermo. Puoi regolare la larghezza percentuale dello schermo (50-99%) se deselezioni l'opzione Usa la larghezza a schermo intero.
- Personalizzata ti consente di specificare la larghezza e l'altezza del banner.
- Il banner adattivo ancorato offre alcune opzioni in più:
- Posizione annuncio: seleziona la posizione in cui deve essere inserito il banner.
Callback
Puoi implementare funzioni che corrispondono ai callback degli annunci. Ad esempio, se vuoi gestire il caso in cui un annuncio banner non viene caricato:
Crea una funzione compatibile con il callback dell'annuncio.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }Allega lo script che contiene la funzione precedente a qualsiasi GameObject nella scena.
Fai clic sul pulsante + e poi trascina il GameObject a cui hai allegato lo script.

Seleziona la funzione che vuoi collegare al callback dell'annuncio. Per i callback degli annunci con parametri, seleziona la funzione per accettare la variabile dinamica in modo da poter ottenere il valore del parametro dall'SDK.

Utilizzare AdGameObject dallo script
Ottieni l'istanza AdGameObject dallo script
Tutti gli oggetti AdGameObject hanno il metodo pratico LoadAd(). Verrà caricato
un annuncio con un AdRequest semplice e non mirato. Per applicare il targeting, devi utilizzare
LoadAd(AdRequest adRequest) utilizzando la tua richiesta di annuncio configurata.
Per ottenere l'istanza di un AdGameObject, utilizza il seguente metodo per ogni formato:
Banner
MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto BannerAdGameObject restituito dispone anche dei metodi di convenienza
Hide() e Show().
Interstitial
MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto InterstitialAdGameObject restituito ha un metodo pratico
ShowIfLoaded().
Con premio
MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto RewardedAdGameObject restituito ha un metodo pratico
ShowIfLoaded().
Ad esempio, puoi ottenere un'istanza di un BannerAdGameObject e caricarla come segue:
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class BannerTestScript : MonoBehaviour
{
BannerAdGameObject bannerAd;
void Start()
{
bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
bannerAd.LoadAd();
...
}
...
}
Se esiste un BannerAdGameObject denominato BannerAd, puoi ottenere un'istanza
come segue:
MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");
Accedere all'oggetto annuncio sottostante in AdGameObject
Questi snippet mostrano come accedere all'oggetto annuncio sottostante associato ad AdGameObject.
Banner
BannerAdGameObject bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
// Access BannerView object
BannerView bannerView = bannerAd.BannerView;
Interstitial
InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;
Con premio
RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
.Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;
Esempi
Mostrare un annuncio interstitial
Ecco un esempio di come configurare un gioco per caricare e mostrare un annuncio interstitial utilizzando un AdGameObject.
Aggiungi un InterstitialAdGameObject alla scena e attiva la funzionalità Caricamento automatico
attivato, in modo che l'annuncio venga caricato automaticamente al caricamento della scena.
Successivamente, assicurati di aver inizializzato l'SDK come segue. Tieni presente che la funzionalità Caricamento automatico in AdGameObject non funzionerà se dimentichi di inizializzare l'SDK.
Quindi, visualizza un annuncio interstitial tra una transizione di schermata chiamando la funzione
InterstitialAdGameObject.ShowIfLoaded(). Il seguente codice mostra un
esempio di visualizzazione di un annuncio interstitial tra una transizione di scena.
using UnityEngine;
using UnityEngine.SceneManagement;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
public void OnClickShowGameSceneButton()
{
// Display an interstitial ad
interstitialAd.ShowIfLoaded();
// Load a scene named "GameScene"
SceneManager.LoadScene("GameScene");
}
}
Poiché hai attivato la funzionalità Caricamento automatico nel posizionamento dell'annuncio, non devi richiedere esplicitamente un annuncio. Quando la scena cambia, viene visualizzato un annuncio interstitial, se disponibile.
Se vuoi richiedere manualmente un annuncio, disattiva la funzionalità Caricamento automatico
dall'inspector dei posizionamenti degli annunci e chiama la funzione InterstitialAdGameObject.LoadAd(). Il seguente snippet di codice mostra come richiedere manualmente un
annuncio.
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAdGameObject<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("MobileAds initialized");
// Load an interstitial ad after the SDK initialization is complete
interstitialAd.LoadAd();
});
}
...
}
Gestire lo stato del pulsante "Guarda un annuncio con premio"
Ecco un esempio di come attivare un pulsante "Guarda un annuncio con premio" utilizzando i posizionamenti degli annunci.
Aggiungi alla scena un GameObject Button (denominato Button in questo esempio), che verrà utilizzato per visualizzare un annuncio con premio. Questo pulsante sarà disponibile solo quando è disponibile un annuncio con premio.

Nel metodo Start(), imposta lo stato attivo del pulsante su false. In questo modo, il pulsante non sarà più visibile nella scena.
public class MainScene : MonoBehaviour
{
...
void Start()
{
GameObject.Find("Button").SetActive(false);
...
}
}
Aggiungi un RewardedAdGameObject alla scena e seleziona il posizionamento dell'annuncio AdMob Demo Rewarded
Ad dal menu a discesa.
Nella sezione Callback dello strumento di controllo RewardedAdGameObject, fai clic sul pulsante + in On Ad Loaded() per attivare la chiamata della funzione quando viene caricato un annuncio con premio.

Trascina il GameObject Button che hai aggiunto nel passaggio precedente nel campo Nessuno (oggetto). Seleziona una funzione da chiamare dal menu a discesa.
Fai clic su Nessuna funzione > GameObject > SetActive(bool), quindi fai clic sulla casella di controllo in modo che
venga inviato true come parametro (chiama SetActive(true)).

In questa sezione Callbacks, puoi anche collegare un evento che verrà chiamato
quando viene attivato l'evento RewardedAd.OnUserEarnedReward. Per maggiori dettagli,
consulta questa sezione.
A questo punto, crea il pulsante per visualizzare un annuncio con premio quando viene selezionato. Nella sezione On Click() Callbacks (Callback OnClick()) dello strumento di controllo dei pulsanti, fai clic sul pulsante + e trascina l'oggetto GameObject di posizionamento dell'annuncio con premio (denominato Rewarded Ad in questo esempio) nel campo Nessuno (oggetto).

Quindi, collega la funzione RewardedAdGameObject.ShowIfLoaded() al callback
On Click() del pulsante.

Infine, non dimenticare di inizializzare l'SDK. Il seguente snippet di codice è il codice completo per la scena utilizzata in questo esempio:
using UnityEngine;
using GoogleMobileAds.Api;
public class MainScene : MonoBehaviour
{
void Start()
{
GameObject.Find("Button").SetActive(false);
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
}
Una volta eseguito il progetto, vedrai il pulsante visualizzato nella scena quando un annuncio con premio viene caricato ed è pronto per essere mostrato.
Configurare un callback del premio per un oggetto RewardedAdGameObject
Ecco un esempio di come configurare un callback con premio per un posizionamento di annunci con premio, in modo da poter assegnare un premio a un utente quando viene chiamata una funzione di callback.
Crea un nuovo script e definisci una funzione che accetti Reward come parametro
nel seguente modo.
using UnityEngine;
using GoogleMobileAds.Api;
class RewardedTestScript : MonoBehaviour {
...
public void OnUserEarnedReward(Reward reward) {
Debug.Log("OnUserEarnedReward: reward=" +
reward.Type + ", amount=" + reward.Amount);
}
...
}
Collega lo script RewardedTestScript a qualsiasi GameObject (ad eccezione di Ad
Placement GameObject) nella scena. In questo esempio, è collegato al GameObject Main
Camera.

Aggiungi un RewardedAdGameObject alla scena. Poi, nella sezione Callback
dell'inspector RewardedAdGameObject, fai clic sul pulsante + in On User
Earned Reward (Reward) per attivare la chiamata della funzione quando un premio viene
assegnato a un utente.

Trascina il GameObject della videocamera principale che hai aggiunto nel passaggio precedente nel campo Nessuno (oggetto). Seleziona una funzione da chiamare dal menu a discesa. Fai clic su Nessuna funzione > RewardedTestScript > OnUserEarnedReward.

Una volta eseguito il progetto e visualizzato un annuncio con premio,
RewardedTestScript.OnUserEarnedReward() verrà richiamato quando riceverai
il premio per l'interazione con l'annuncio.