Posizionamenti annunci

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

Inizializza l'SDK Google Mobile Ads

Prima di caricare gli annunci, inizializza l'SDK 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 SDK.
        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 dell'oggetto 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 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 aggiuntive:
      • 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 percentuale di larghezza dello schermo (50-99%) se deselezioni l'opzione Usa larghezza schermo intero.
    • Personalizzato ti consente di specificare la larghezza e l'altezza del banner.
  • Posizione annuncio: seleziona la posizione in cui deve essere posizionato 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:

  1. Crea una funzione compatibile con il callback dell'annuncio.

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

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

  4. 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:

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

L'oggetto BannerAdGameObject restituito dispone anche dei metodi pratici 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 a 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

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 nel seguente modo. 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 durante la transizione tra scene.

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 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. Renderemo disponibile questo pulsante 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 dell'inspector 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 (viene chiamato 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 fatto clic. Nella sezione On Click() Callbacks (Callback OnClick()) dell'inspector del pulsante, fai clic sul pulsante + e trascina il GameObject del posizionamento dell'annuncio con premio (denominato Rewarded Ad in questo esempio) nel campo None (Object).

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, 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 dare 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 GameObject Ad Placement) nella scena. In questo esempio, è collegato all'oggetto 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 viene concesso un premio 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.