Annunci banner

Gli annunci banner sono annunci di testo o illustrati rettangolari che occupano uno spazio sullo schermo. Rimangono sullo schermo mentre gli utenti interagiscono con l'app e possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Se non hai mai utilizzato la pubblicità per il mobile, sei un buon punto di partenza. Case study.

Questa guida illustra come integrare gli annunci banner di AdMob in un'app Unity. Oltre agli snippet di codice e alle istruzioni, include informazioni sulle dimensioni appropriate dei banner e sui link a ulteriori risorse.

Prerequisiti

Completa Inizia. La tua app Unity deve avere già importato il plug-in Unity di Google Mobile Ads.

Creare una visualizzazione banner

Il primo passaggio per visualizzare un banner consiste nel creare un oggetto BannerView in uno script C# associato a un GameObject.

Per facilitare l'integrazione degli annunci con l'editor di Unity, prova la nuova versione beta dei posizionamenti degli annunci.

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

Il costruttore per un elemento BannerView ha i seguenti parametri:

  • adUnitId: l'ID unità pubblicitaria di AdMob da cui BannerView deve caricare annunci.
  • AdSize: la dimensione dell'annuncio AdMob da utilizzare (consulta le dimensioni del banner per i dettagli).
  • AdPosition: la posizione in cui deve essere inserito l'annuncio banner. L'enumerazione AdPosition elenca i valori della posizione annuncio validi.

In base alla piattaforma, è importante notare come vengono utilizzate le diverse unità pubblicitarie. Dovrai utilizzare un'unità pubblicitaria iOS per effettuare richieste di annunci su iOS e un'unità pubblicitaria Android per effettuare richieste su Android.

(Facoltativo) Posizione personalizzata dell'annuncio

Per un maggiore controllo sulla posizione di un BannerView sullo schermo rispetto a quello offerto dai valori di AdPosition, utilizza il costruttore BannerView che ha le coordinate x e y come parametri:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

L'angolo in alto a sinistra di BannerView verrà posizionato ai valori x e y trasmessi al costruttore, dove l'origine è la parte in alto a sinistra dello schermo.

(Facoltativo) Dimensioni degli annunci personalizzate

Oltre a utilizzare una costante AdSize, puoi anche specificare una dimensione personalizzata per il tuo annuncio:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

Esegui sempre il test con gli annunci di prova

Il codice campione sopra riportato contiene un ID unità pubblicitaria e puoi richiederne uno senza costi aggiuntivi. È stato appositamente configurato per restituire annunci di prova anziché annunci di produzione per ogni richiesta, il che lo rende sicuro.

Tuttavia, dopo aver registrato un'app nell'interfaccia utente di AdMob e aver creato i tuoi ID unità pubblicitaria per l'utilizzo nell'app, dovrai configurare il dispositivo come dispositivo di prova in modo esplicito durante lo sviluppo. Questo è estremamente importante. Eseguire test con annunci reali (anche se non li tocchi) viola le norme di AdMob e può comportare la sospensione del tuo account. Leggi gli annunci di prova per informazioni su come fare in modo di ricevere sempre annunci di test durante lo sviluppo.

Caricare un annuncio

Dopo aver creato un'istanza di BannerView, il passaggio successivo consiste nel caricare un annuncio. Questo viene eseguito con il metodo loadAd() nella classe BannerView. Prende un argomento AdRequest, che contiene informazioni sul runtime (come le informazioni sul targeting) su una singola richiesta di annuncio.

Ecco un esempio che mostra come caricare un annuncio:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Ecco fatto. Ora la tua app è pronta per mostrare annunci banner di AdMob.

Eventi annuncio

Per personalizzare ulteriormente il comportamento del tuo annuncio, puoi agganciarlo a una serie di eventi nel ciclo di vita dell'annuncio, come caricamento, apertura, chiusura e così via. Ascolta questi eventi registrando un delegato per l'elemento EventHandler appropriato, come mostrato di seguito.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.Message);
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication event received");
    }
}

L'evento OnAdFailedToLoad contiene argomenti evento speciali. Passa un'istanza di HandleAdFailedToLoadEventArgs con un elemento Message che descrive l'errore:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
Evento annuncioDescription
OnAdLoaded L'evento OnAdLoaded viene eseguito quando termina il caricamento di un annuncio.
OnAdFailedToLoad L'evento OnAdFailedToLoad viene richiamato quando un annuncio non viene caricato. Il parametro Message descrive il tipo di errore che si è verificato.
OnAdOpening Questo metodo viene richiamato quando l'utente tocca un annuncio. Se utilizzi un pacchetto di analisi dei dati per tenere traccia dei clickthrough, questo è un buon punto di registrazione.
OnAdClosed Quando un utente torna all'app dopo aver visualizzato un URL di destinazione, questo metodo viene richiamato. La tua app può utilizzarla per riprendere le attività sospese o per eseguire altre operazioni necessarie per prepararsi all'interazione.
OnAdLeavingApplication Questo metodo viene richiamato dopo onAdOpened, quando un utente fa clic su un'altra app (ad esempio il Google Play Store), in background per l'app corrente.

Nella tabella di seguito sono elencate le dimensioni dei banner standard.

Dimensioni in dp (LxA) Description Disponibilità costante di dimensioni dell'annuncio
320 x 50 Banner standard Telefoni e tablet BANNER
320 x 100 Banner grande Telefoni e tablet LARGE_BANNER
300 x 250 Rettangolo medio IAB Telefoni e tablet MEDIUM_RECTANGLE
468 x 60 Banner IAB a grandezza originale Tablet FULL_BANNER
728 x 90 Leaderboard IAB Tablet LEADERBOARD
Larghezza fornita x Altezza adattiva Banner adattivo Telefoni e tablet N/D
Larghezza schermo x 32|50|90 Banner intelligente Telefoni e tablet SMART_BANNER
Scopri di più sui banner adattivi, destinati a sostituire i banner intelligenti.

Ripulire gli annunci banner

Quando hai terminato con un BannerView, assicurati di chiamare il metodo Destroy() prima di inserire il riferimento:

bannerView.Destroy();

Il plug-in invia una notifica che informa che l'oggetto non è più in uso e che la memoria occupata può essere recuperata. La mancata chiamata di questo metodo comporta una perdita di memoria.

Risorse aggiuntive

Esempi

Casi di successo