Posizionamenti annunci

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa guida illustra come utilizzare la funzionalità del plug-in degli annunci di Google Mobile Ads Unity per creare e visualizzare annunci per la 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 degli annunci

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 come formato banner, interstitial o con premio da Assets > Google Mobile Ads > Ad placement nell'editor Unity. Dopo aver configurato tre posizionamenti degli annunci demo, sarà pronto 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 dello strumento di controllo.

Configurazione del posizionamento

Ogni posizionamento include le seguenti proprietà:

Nome posizionamento
Nome del posizionamento. Utilizzato 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 rimarrà sullo schermo a prescindere dai cambi di scena (stesso comportamento di DontDestroyOnLoad).
Caricamento automatico abilitato
Se selezionata, un annuncio viene caricato automaticamente al caricamento di una scena associata al posizionamento.

Il seguente screenshot mostra un esempio di posizionamento di annuncio chiamato My Awesome Banner.

Aggiungere un elemento AdGameObject alla scena

Puoi aggiungere alla tua scena un formato AdGameObject per banner, interstitial o con premio utilizzando GameObject > Google Mobile Ads nell'editor Unity. Seleziona il formato per aggiungere un posizionamento alla scena attiva.

Una volta 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 modificando il nome del GameObject stesso. Il seguente screenshot mostra un esempio di Annuncio banner denominato AdGameObject.

Impostazioni AdGameObject

Puoi configurare AdGameObject nella tua scena dalla vista Inspector nelle impostazioni del componente Ad Game Object (Script).

Posizionamento

Seleziona il posizionamento dall'elenco a discesa dei posizionamenti configurati. L'elenco conterrà solo unità pubblicitarie per il formato corretto. Ad esempio, per gli oggetti gioco degli annunci 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 altre opzioni:
      • Orientamento: seleziona l'orientamento del dispositivo utilizzato per calcolare l'altezza dell'annuncio.
      • Utilizza larghezza intera schermo - Se selezioni questa opzione, il banner occupa tutta la larghezza dello schermo. Puoi regolare la % della larghezza dello schermo (50~99%) se deselezioni l'opzione Utilizza larghezza schermo intero.
    • Personalizzate ti consente di specificare la larghezza e l'altezza del banner.
  • Posizione dell'annuncio: seleziona la posizione in cui deve essere posizionato il banner.

Richiamata

Puoi implementare funzioni corrispondenti ai callback degli annunci. Ad esempio, se vuoi gestire i casi in cui un annuncio banner non si carica:

  1. Creare una funzione compatibile con il callback annuncio.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Associa 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 collegato lo script.

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

Usa AdGameObject da script

Recupera l'istanza AdGameObject dallo script

Tutti gli oggetti AdGameObject hanno il metodo di convenienza LoadAd(). In questo modo 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 oggetto 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 ottenere 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 ottenere un'istanza simile alla seguente:

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

Accedere all'oggetto dell'annuncio sottostante in AdGameObject

Questi snippet mostrano 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

Mostrare un annuncio interstitial

Ecco un esempio di come configurare un gioco per caricare e mostrare un annuncio interstitial utilizzando un oggetto AdGameObject.

Aggiungi un elemento 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 la seguente procedura. Tieni presente che la funzionalità di caricamento automatico in AdGameObject non funziona se dimentichi di inizializzare l'SDK.

Quindi visualizza un annuncio interstitial tra una transizione di schermata chiamando la funzione InterstitialAdGameObject.ShowIfLoaded(). Il codice seguente 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, non devi richiedere esplicitamente un annuncio. Quando la scena cambia, viene visualizzato un annuncio interstitial.

Se vuoi richiedere manualmente un annuncio, disattiva la funzionalità di caricamento automatico dallo strumento di controllo dei posizionamenti 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();
        });
    }
    ...
}

Gestire "guardare un annuncio con premio" 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. Pertanto, questo pulsante sarà disponibile solo quando è disponibile un annuncio con premio.

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

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

Aggiungi un elemento RewardedAdGameObject alla scena e seleziona il posizionamento dell'annuncio demo con AdMob dal menu a discesa.

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

Trascina il pulsante GameObject aggiunto nel passaggio precedente nel campo None (Object). 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 invii true come parametro (chiamate SetActive(true)).

In questa sezione di callback, puoi anche collegare un evento che verrà richiamato 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 fai clic. Dalla sezione On Click() Callbacks nello strumento di controllo dei pulsanti, fai clic sul pulsante + e trascina il GameObject per il 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 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 un pulsante visualizzato sulla scena quando viene caricato un annuncio con premio e pronto per essere mostrato.

Configurare un callback di premio per un RewardAdGameObject

Di seguito è riportato un esempio di come configurare un callback con premio a un posizionamento dell'annuncio con premio, in modo da poter assegnare 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 come segue.

using UnityEngine;
using GoogleMobileAds.Api;

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

Consente di collegare lo script RewardedTestScript a qualsiasi GameObject (ad eccezione del GameObject per il posizionamento dell'annuncio) nella scena. In questo esempio è collegato all'oggetto principale della videocamera.

Aggiungi RewardedAdGameObject alla scena. Quindi, nella sezione Richiamati nello strumento di controllo di RewardedAdGameObject, fai clic sul pulsante + in corrispondenza di Quando l'utente riceve un premio (premio) per attivare la funzione quando un premio viene concesso a un utente.

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

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