Utilizzo dei posizionamenti dell'annuncio

Questa guida illustra come utilizzare il posizionamento degli annunci del plug-in Google Ads per la creazione di annunci per creare e visualizzare annunci nella tua app.

Prerequisiti

Inizializzare l'SDK Google Mobile Ads

Prima di caricare gli annunci, inizializza l'SDK Mobile Ads chiamando MobileAds.Initialize(), con un callback Action<InitializationStatus>. Questa operazione deve essere eseguita una sola volta, idealmente al momento del lancio dell'app.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Creare posizionamenti per gli annunci

Il primo passaggio della visualizzazione di un banner con Google Mobile Ads consiste nel creare e configurare un posizionamento dell'annuncio. Puoi selezionare il posizionamento di un annuncio banner, interstitial o con premio da Assets > Google Mobile Ads > Ad Posizionamenti nell'editor Unity. Successivamente, vengono configurati tre posizionamenti degli annunci demo.

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 Controllo.

Configurazione del posizionamento dell'annuncio

Ciascun posizionamento ha le seguenti proprietà:

Nome posizionamento
Nome del posizionamento. Utilizzati per identificare i posizionamenti al momento di configurare gli annunci in una scena.
Formato dell'annuncio
Banner, Con premio, Interstitial. Tipo dell'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 selezioni questa opzione, il banner continuerà a essere visualizzato sullo schermo a prescindere dai cambi di scena (stesso comportamento di DontDestroyOnLoad).
Caricamento automatico abilitato
Quando questa opzione è selezionata, un annuncio viene caricato automaticamente quando viene caricata una scena associata al posizionamento.

Il seguente screenshot mostra un esempio di posizionamento dell'annuncio denominato My Awesome Banner.

Aggiunta di un AdGameObject alla scena

Puoi aggiungere un formato AdGameObject for Banner, interstitial o con premio alla tua scena utilizzando GameObject > Google Mobile Ads nell'editor Unity. 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 dell'editor di Unity.

Puoi modificare il nome del posizionamento anche cambiando il nome di GameObject stesso. Il seguente screenshot mostra un esempio di AdGameObject denominato Banner Ad.

Impostazioni di AdGameObject

Puoi configurare AdGameObject nella scena dalla visualizzazione Controllo 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 del gioco con annunci banner il menu a discesa mostrerà solo i posizionamenti degli annunci banner configurati.

Configurazione di BannerAdGameObject (solo banner)

  • Dimensioni: seleziona la dimensione del banner che vuoi utilizzare.
    • Il banner adattivo ancorato offre alcune altre opzioni:
      • Orientamento: seleziona l'orientamento del dispositivo utilizzato per calcolare l'altezza dell'annuncio.
      • Utilizza larghezza a schermo intero: se selezionato, il banner occupa tutta la larghezza dello schermo. Puoi regolare la larghezza dello schermo (50~99%) se deselezioni l'opzione Usa larghezza schermo intero.
    • Personalizzate consente di specificare la larghezza e l'altezza del banner.
  • Posizione dell'annuncio: seleziona la posizione in cui posizionare il banner.

Callback

Puoi implementare funzioni che corrispondono ai callback degli annunci. Ad esempio, se vuoi gestire quando un annuncio banner non viene caricato:

  1. Creare una funzione compatibile con il callback annuncio.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Allega lo script che contiene la funzione riportata sopra a qualsiasi GameObject nella scena.

  3. Fai clic sul pulsante +, quindi trascina il GameObject a cui hai allegato lo script.

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

Usa AdGameObject da script

Prendi l'istanza di AdGameObject dallo script

Tutti gli oggetti AdGameObject hanno il metodo di convenienza LoadAd(). Verrà caricato un annuncio con un AdRequest semplice e senza targeting. 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 metodo seguente per ogni formato:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

L'oggetto BannerAdGameObject restituito ha anche 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 recuperare un'istanza di 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 è presente un BannerAdGameObject denominato BannerAd, puoi crearne un'istanza simile alla seguente:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Accesso all'oggetto annuncio sottostante in AdGameObject

Questi snippet dimostrano come accedere all'oggetto annuncio sottostante associato all'oggetto AdGameObject.

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

Mostra un annuncio interstitial

Di seguito è riportato un esempio di come configurare un gioco per caricare e mostrare un annuncio interstitial utilizzando un oggetto 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.

Dopodiché, assicurati di aver inizializzato l'SDK utilizzando quanto segue. Tieni presente che la funzionalità Caricamento automatico in AdGameObject non funzionerà se ti dimentichi di inizializzare l'SDK.

Quindi mostra un annuncio interstitial durante una transizione di schermata chiamando la funzione InterstitialAdGameObject.ShowIfLoaded(). Il seguente codice mostra un esempio di visualizzazione di un annuncio interstitial durante 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 un annuncio in modo esplicito. Quando la scena cambia, viene visualizzato un annuncio interstitial se ne è pronto uno.

Se vuoi richiedere manualmente un annuncio, disattiva la funzione Caricamento automatico dallo strumento di controllo dei posizionamenti degli annunci e chiama invece 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();
        });
    }
    ...
}

Gestisci l'annuncio con premio come stato del pulsante

Ecco un esempio di come attivare un pulsante "Guarda un annuncio con premio" utilizzando i posizionamenti.

Aggiungi alla scena un GameObject Pulsante (denominato Pulsante), che verrà utilizzato per visualizzare un annuncio con premio. Il pulsante sarà disponibile solo quando sarà disponibile un annuncio con premio.

Nel metodo Start(), modifica lo stato attivo del pulsante in false. In questo modo, il pulsante scompare dalla scena.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Aggiungi un RewardedAdGameObject alla scena e seleziona il posizionamento dell'annuncio demo con AdMob dall'elenco a discesa.

Nella sezione Callback dello strumento di controllo RewardedAdGameObject, fai clic sul pulsante + di On Ad Loaded() per abilitare la funzione quando viene caricato un annuncio con premio.

Trascina il pulsante GameObject che hai aggiunto nel passaggio precedente nel campo None (Object) (Nessuno). Seleziona una funzione da chiamare dall'elenco a discesa. Fai clic su Nessuna funzione > GameObject > SetActive(bool), quindi fai clic sulla casella di controllo in modo che invii true come parametro (chiamate SetActive(true)).

In questa sezione di callback, puoi anche collegare un evento che verrà chiamato quando viene attivato l'evento RewardedAd.OnUserEarnedReward. Per ulteriori dettagli, consulta questa sezione.

Quindi, fai clic sul pulsante per visualizzare un annuncio con premio quando viene fatto clic. Nella sezione Callback su On() del pulsante di controllo dei pulsanti, fai clic sul pulsante + e trascina il GameObject posizionamento dell'annuncio con premio (denominato Annuncio con premio 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 della 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, quando viene caricato un annuncio con premio e pronto per essere mostrato, nella scena viene visualizzato il pulsante.

Configurare il callback di un premio per un RewardAdGameObject

Di seguito è riportato un esempio di come configurare un callback con premio per un posizionamento dell'annuncio con premio, in modo da poter offrire un premio a un utente quando viene richiamata una funzione di callback.

Crea un nuovo script e definisci una funzione che accetti Reward come parametro.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Allega lo script RewardedTestScript a qualsiasi GameObject (tranne GameObject Ad Placement) nella scena. In questo esempio, è collegata all'oggetto principale della fotocamera principale.

Aggiungi un RewardedAdGameObject alla scena. Poi, nella sezione Callback dello strumento di controllo RewardedAdGameObject, fai clic sul pulsante + su On User Guadagnato (Premio) per abilitare la funzione da chiamare quando viene concesso un premio a un utente.

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

Dopo aver eseguito il progetto e aver guardato un annuncio con premio, verrà richiamato RewardedTestScript.OnUserEarnedReward() quando devi ricevere un premio per interagire con l'annuncio.