Ubicaciones del anuncio

En esta guía, se muestra cómo usar la plantilla Ad del complemento Google Mobile Ads para Unity Función de posiciones 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, llama a la inicialización del SDK de anuncios para dispositivos móviles. MobileAds.Initialize(), con una devolución de llamada Action<InitializationStatus>. Esta debe hacerse una sola 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 los anuncios de Google para dispositivos móviles es crear y configurar una posición de anuncios. Puedes seleccionar una posición de anuncios de banner, Formato intersticial o recompensado en Recursos > Anuncios de Google para dispositivos móviles > Anuncio Posiciones en Unity Editor. Luego, se establecen tres posiciones estén configurados y listos para usarse.

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

Configuración de la posición del anuncio

Cada posición tiene las siguientes propiedades:

Nombre de la ubicación
Es el nombre de la posición. Se usa para identificar posiciones cuando se configuran anuncios en un ambiente.
Formato del anuncio
Banner, recompensado, intersticial Es el tipo de anuncio.
ID de unidad de anuncios
Proporciona tu ID de unidad de anuncios en forma de banner para iOS y Android. Debes proporcionar en al menos un ID de unidad de anuncios.
Constante entre escenas
Cuando se marca esta opción, el banner permanece en la pantalla sin importar la escena cambios (mismo comportamiento que DontDestroyOnLoad).
Carga automática habilitada
Si marcas esta opción, se cargará automáticamente un anuncio cuando una escena asociada a se carga la posición del anuncio.

La siguiente captura de pantalla muestra un ejemplo de una colocación de anuncios llamada Mi banner genial.

Cómo agregar un AdGameObject a la escena

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

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

Puedes cambiar el nombre de la posición si cambias el nombre del GameObject a sí mismo. En la siguiente captura de pantalla, se muestra un ejemplo de un objeto AdGameObject. denominado Anuncio de banner.

Configuración de AdGameObject

Puedes configurar AdGameObject en tu escena desde el Inspector. en la configuración del componente Objeto de juego de anuncios (secuencia de comandos).

Ubicación del anuncio

Selecciona la posición del anuncio en la lista desplegable de posiciones configuradas. El solo tendrá unidades de anuncios para el formato correcto. Por ejemplo, en el caso de un anuncio de banner, Objetos de juego: el menú desplegable mostrará solo las posiciones de anuncios de banner configuradas.

Configuración de BannerAdGameObject (solo banner)

  • Tamaño: Selecciona el tamaño del banner que quieres usar.
    • El banner adaptable fijo ofrece algunas opciones más:
      • Orientación: Selecciona la orientación del dispositivo utilizada para calcular el anuncio. altura.
      • Utilizar el ancho de la pantalla completa: Si esta opción está marcada, el banner ocupará espacio. ancho de pantalla completa. Puedes ajustar el % de ancho de la pantalla (50~99%) si desmarcas la opción Usar el ancho de pantalla completa.
    • La opción 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

Puedes implementar funciones que correspondan a las devoluciones de llamada de anuncios. Por ejemplo, que deseas controlar cuando falla la carga de un anuncio de banner.

  1. Crea una función compatible con la devolución de llamada de 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 +, luego arrastra y suelta el GameObject que adjuntaste la secuencia de comandos.

  4. Selecciona la función que deseas vincular a la devolución de llamada del anuncio. Para el devoluciones de llamada de anuncios con parámetros, selecciona la función para aceptar variable para que puedas obtener el valor del parámetro desde el SDK.

Utilizar AdGameObject de la secuencia de comandos

Obtén la instancia de AdGameObject de la secuencia de comandos

Todos los objetos AdGameObject tienen el método de conveniencia LoadAd(). Se cargará. un anuncio con un AdRequest simple y sin segmentación. Para aplicar la segmentación, LoadAd(AdRequest adRequest) con tu propia solicitud de anuncio configurada.

Para obtener la instancia de un 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 de conveniencia ShowIfLoaded()

Recompensado

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

El objeto RewardedAdGameObject que se muestra tiene un método de conveniencia ShowIfLoaded()

Por ejemplo, puedes obtener una instancia de BannerAdGameObject y cargarla como sigue:

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 elemento BannerAdGameObject llamado BannerAd, puedes obtener una instancia de de la siguiente manera:

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

Cómo acceder al 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 que se cargue y muestre una página intersticial con un objeto AdGameObject.

Agrega un objeto InterstitialAdGameObject a la escena y activa la opció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 configuración Automática Load en AdGameObject no funcionará si olvidas inicializar el archivo de Google Cloud.

Luego, muestra un anuncio intersticial entre una transición de pantalla llamando al función InterstitialAdGameObject.ShowIfLoaded(). El siguiente código muestra un ejemplo de 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");
    }
}

Como habilitó la función Carga automática en la colocación de anuncios, no deben solicitar explícitamente un anuncio. Cuando la escena cambia, se muestra si hay alguna lista.

Si deseas solicitar un anuncio de forma manual, inhabilita la función Carga automática en al inspector de colocaciones de anuncios y llamar al InterstitialAdGameObject.LoadAd() en su lugar. En el siguiente fragmento de código, se muestra cómo solicitar manualmente un anuncio.

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 parámetro "Ver un anuncio recompensado" estado del botón

Este es un ejemplo de cómo habilitar la opción "Ver un anuncio recompensado" con los anuncios posiciones.

Agrega un GameObject de botón (llamado Button en este ejemplo) a la escena. para mostrar un anuncio recompensado. Este botón estará disponible solo cuando hay un anuncio recompensado disponible.

En el método Start(), cambia el estado activo del elemento Button a false. Esta 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 muestra de anuncios recompensados de AdMob Demo. Ad Colocación de anuncios en el menú desplegable.

En la sección Devoluciones de llamada del inspector de RewardedAdGameObject, haz clic en el botón + de Al cargar el anuncio() para permitir que se llame a la función cuando se carga un anuncio recompensado.

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

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

A continuación, configura el botón para que muestre un anuncio recompensado cuando se haga clic en él. Desde el menú de activación Click() en la sección de devoluciones de llamada del inspector de botones, haz clic en el botón + y, Arrastre y suelte el GameObject de ubicación de anuncios recompensados (denominado Anuncio recompensado) ejemplo) al campo None (Object).

Luego, adjunta la función RewardedAdGameObject.ShowIfLoaded() al archivo On Click().

Por último, no olvides inicializar el SDK. El siguiente fragmento de código es la El código completo de 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 cargó el anuncio recompensado y está listo para mostrarse.

Configura una devolución de llamada de recompensa para un RewardAdGameObject

A continuación, se muestra un ejemplo de cómo configurar una devolución de llamada recompensada para un anuncio recompensado ubicación, de modo que puedas ofrecer un premio a un usuario cuando una función de devolución de llamada esté llamado.

Crea una nueva secuencia de comandos 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 Ad colocar GameObject) en la escena. En este ejemplo, se adjunta al archivo Main GameObject de la cámara

Agrega un RewardedAdGameObject a la escena. Luego, en la sección Devoluciones de llamadas En el inspector de RewardedAdGameObject, haz clic en el botón + de la opción On User Es una recompensa (recompensa) obtenida para permitir que se invoque la función cuando se otorgue una recompensa. otorgadas a un usuario.

Arrastra y suelta el GameObject de la cámara principal que agregaste con anterioridad paso al campo None (Object). Selecciona la función a la que deseas llamar desde menú desplegable. Haz clic en Sin función > RewardTestScript > OnUserRevenueedReward;

Cuando ejecutes el proyecto y veas un anuncio recompensado, Se invocará RewardedTestScript.OnUserEarnedReward() cuando debas recompensa por interactuar con el anuncio.