Ubicaciones del anuncio

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta guía, se muestra cómo usar la función de ubicaciones de anuncios del complemento de Unity de Google Mobile Ads para crear y mostrar anuncios para tu app.

Requisitos previos

Cómo inicializar el SDK de anuncios de Google para dispositivos móviles

Antes de cargar anuncios, inicializa el SDK de anuncios para dispositivos móviles mediante una llamada a MobileAds.Initialize(), con una devolución de llamada Action<InitializationStatus>. Esto se debe hacer solo una vez, idealmente cuando se inicia la 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
        });
        ...
    }
}

Cómo crear posiciones de anuncios

El primer paso para mostrar un banner con Google Mobile Ads es crear y configurar una ubicación del anuncio. En Unity Editor, puedes seleccionar una posición del anuncio con formato de banner, intersticial o recompensado de Assets > Google Mobile Ads > Ad placements. Luego, se configuran tres anuncios de demostración y están listos para usarse.

Para agregar una nueva colocación de anuncios, haz clic en el botón Agregar ubicación nueva al final de la lista. Puede configurar la posición del anuncio desde la vista Inspector.

Configuración de posición del anuncio

Cada ubicación tiene las siguientes propiedades:

Nombre de la ubicación
El nombre de la posición Se usa para identificar posiciones cuando se configuran anuncios en una escena.
Formato del anuncio
Banner, recompensado, intersticial. Es el tipo de anuncio.
ID de la unidad de anuncios
Proporciona tu ID de bloque de anuncios de banner para iOS y Android. Debes proporcionar al menos un ID de bloque de anuncios.
Persistente en todas las escenas
Cuando se marca, el banner permanece en la pantalla sin importar los cambios de escena (el mismo comportamiento que el de DontDestroyOnLoad).
Carga automática habilitada
Cuando está marcada, un anuncio se carga automáticamente cuando se carga una escena asociada con la posición del anuncio.

La siguiente captura de pantalla muestra un ejemplo de una colocación de anuncio llamada My Awesome Banner (Mi banner increíble).

Cómo agregar un objeto AdGameObject a la escena

Puedes agregar un AdGameObject para formatos intersticiales, de banners o de banners a tu escena con GameObject > Google Mobile Ads en Unity Editor. Selecciona el formato para agregar una posición a la escena activa.

Una vez que agregues un objeto AdGameObject a la escena, verás un GameObject que representa el anuncio en la vista de jerarquía del Unity Editor.

Puedes cambiar el nombre de la posición si cambias el nombre del GameObject. En la siguiente captura de pantalla, se muestra un ejemplo de un AdGameObject llamado Banner Ad (Anuncio de banner).

Configuración de AdGameObject

Puedes configurar el AdGameObject en tu escena desde la vista Inspector en la configuración del componente Ad Game Object (Script).

Ubicación del anuncio

Seleccione la ubicación del anuncio de la lista desplegable de ubicaciones configuradas. La lista solo tendrá bloques de anuncios para el formato correcto. Por ejemplo, en el caso de los objetos de juegos de anuncios de banner, el menú desplegable mostrará solo las posiciones de anuncios de banner configuradas.

Configuración de BannerAdGameObject (solo banner)

  • Tamaño: Seleccione el tamaño del banner que desea utilizar.
    • El banner adaptable fijo ofrece otras opciones:
      • Orientation: Selecciona la orientación del dispositivo que se usa para calcular la altura del anuncio.
      • Use full screen width: Cuando se marca, el banner ocupa todo el ancho de la pantalla. Puedes ajustar el % del ancho de la pantalla (50~99%) si desmarcas la opción Use full screen width.
    • Personalizado te permite proporcionar el ancho y la altura del banner.
  • Posición del anuncio: selecciona la posición en la que se debe colocar el banner.

Devoluciones de llamada

Puede implementar funciones que correspondan a las devoluciones de llamada de los anuncios. Por ejemplo, si deseas controlar cuándo no se carga un anuncio de banner:

  1. Crea una función compatible con la devolución de llamada del anuncio.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Adjunta la secuencia de comandos que contiene la función anterior a cualquier GameObject en la escena.

  3. Haz clic en el botón +, arrastra y suelta el objeto GameObject al que adjuntaste la secuencia de comandos.

  4. Seleccione la función que desea vincular a la devolución de llamada del anuncio. En el caso de las devoluciones de llamada de anuncios con parámetros, selecciona la función para aceptar la variable dinámica y obtener el valor del parámetro desde el SDK.

Usar AdGameObject desde la secuencia de comandos

Obtenga la instancia de AdGameObject de la secuencia de comandos

Todos los objetos AdGameObject tienen el método de conveniencia LoadAd(). Esto cargará un anuncio con un AdRequest sin formato, sin orientación. Para aplicar la orientación, debes usar LoadAd(AdRequest adRequest) con tu propia solicitud de anuncio configurada.

A fin de obtener la instancia de un objeto AdGameObject, usa el siguiente método para cada formato:

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

El objeto BannerAdGameObject que se muestra también tiene métodos de conveniencia Hide() y Show().

Intersticial

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

El objeto InterstitialAdGameObject que se muestra tiene un método conveniente ShowIfLoaded().

Recompensado

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

El objeto RewardedAdGameObject que se muestra tiene un método conveniente ShowIfLoaded().

Por ejemplo, puedes obtener una instancia de un BannerAdGameObject y cargarla de la siguiente manera:

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();
        ...
    }
    ...
}

Si hay un BannerAdGameObject llamado BannerAd, puedes obtener una instancia como esta:

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

Acceder a un objeto de anuncio subyacente en AdGameObject

Estos fragmentos demuestran cómo acceder al objeto de anuncio subyacente asociado con el objeto AdGameObject.

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

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Intersticial

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Recompensado

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Ejemplos

Cómo mostrar un anuncio intersticial

A continuación, se muestra un ejemplo de cómo configurar un juego para cargar y mostrar un anuncio intersticial con un AdGameObject.

Agrega un elemento InterstitialAdGameObject a la escena y activa la función Carga automática habilitada para que el anuncio se cargue automáticamente cuando se cargue la escena.

A continuación, asegúrate de haber inicializado el SDK de la siguiente manera. Ten en cuenta que la función Carga automática en AdGameObject no funcionará si te olvidas de inicializar el SDK.

Luego, muestra un anuncio intersticial entre una transición de pantalla llamando a la función InterstitialAdGameObject.ShowIfLoaded(). El siguiente código muestra un ejemplo de cómo mostrar un anuncio intersticial entre una transición de escena.

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");
    }
}

Debido a que habilitó la función Carga automática en la ubicación del anuncio, no necesita solicitar un anuncio de forma explícita. Cuando la escena cambie, aparecerá un anuncio intersticial si está listo.

Si deseas solicitar un anuncio de forma manual, inhabilita la función Carga automática desde el inspector de posiciones del anuncio y, en su lugar, llama a la función InterstitialAdGameObject.LoadAd(). En el siguiente fragmento de código, se muestra cómo solicitar un anuncio de forma manual.

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();
        });
    }
    ...
}

Cómo controlar el estado de un botón para ver anuncios recompensados

A continuación, te mostramos un ejemplo de cómo habilitar el botón "Mirar un anuncio recompensado" mediante la colocación de anuncios.

Agrega un Button GameGame (llamado Button en este ejemplo) a la escena, que se usará para mostrar un anuncio recompensado. Este botón estará disponible solo cuando haya un anuncio recompensado disponible.

En el método Start(), cambia el estado activo del botón a false. Esto hará que el botón desaparezca de la escena.

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

Agrega un elemento RewardedAdGameObject a la escena y selecciona la colocación de anuncios Anuncios recompensados de AdMob en el menú desplegable.

En la sección Devoluciones de llamada del inspector de RewardedAdGameObject, haz clic en el botón + de En Cargas de anuncios() para que se pueda llamar a la función cuando se cargue un anuncio recompensado.

Arrastra y suelta el botón GameObject que agregaste en el paso anterior al campo None (Object). Selecciona una función para que se llame en el menú desplegable. Haz clic en Sin función > GameObject > SetActive(bool) y, luego, haz clic en la casilla de verificación para que envíe true como parámetro (llama a SetActive(true)).

En esta sección de devoluciones de llamada, también puedes vincular un evento que se llamará cuando se active el evento RewardedAd.OnUserEarnedReward. Para obtener más detalles, consulta esta sección.

Luego, cree el botón para mostrar un anuncio recompensado cuando haga clic en él. Desde la sección de devoluciones de llamada On Click() en el inspector de botones, haz clic en el botón + y arrastra y suelta el objeto GameObject de posición de anuncio recompensado (denominado Anuncio recompensado en este ejemplo) al campo Ninguno (Objeto).

Luego, adjunta la función RewardedAdGameObject.ShowIfLoaded() a la devolución de llamada On Click() del botón.

Por último, no olvides inicializar el SDK. El siguiente fragmento de código es el código completo para la escena que se usa en este ejemplo:

using UnityEngine;

using GoogleMobileAds.Api;

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

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Una vez que ejecutes el proyecto, verás el botón en la escena cuando se cargue un anuncio recompensado y esté listo para mostrarse.

Cómo configurar una devolución de llamada de recompensa para un objeto RewardedAdGameObject

A continuación, se muestra un ejemplo de cómo configurar una devolución de llamada recompensada para una posición de anuncio recompensado, de modo que puedas darle una recompensa a un usuario cuando se llame a una función de devolución de llamada.

Crea una secuencia de comandos nueva y define una función que acepte Reward como parámetro de la siguiente manera.

using UnityEngine;
using GoogleMobileAds.Api;

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

Adjunta la secuencia de comandos RewardedTestScript a cualquier GameObject (excepto a GameObject de Ad Placement) en la escena. En este ejemplo, se adjunta al GameObject de la cámara principal.

Agrega un RewardedAdGameObject a la escena. Luego, en la sección de devolución de llamada del inspector de RewardedAdGameObject, haz clic en el botón + de la opción Recompensa por usuario (recompensa) para habilitar la función que se llamará cuando se otorgue una recompensa a un usuario.

Arrastra y suelta el GameObject de la cámara principal que agregaste en el paso anterior al campo None (Object). Selecciona una función a la que se llamará en el menú desplegable. Haz clic en No Function > RewardedTestScript > OnUser EarnedReward.

Una vez que ejecutes el proyecto y mires un anuncio recompensado, se invocará RewardedTestScript.OnUserEarnedReward() cuando se te otorgue una recompensa por interactuar con el anuncio.