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
Unity 2017.4 o una versión posterior
Descargar e importa la compilación inicial del complemento GMA para Unity.
Configura tu ID de app de AdMob en la Unity Editor.
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.
- El banner adaptable fijo ofrece algunas opciones más:
- 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.
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); }
Adjunta la secuencia de comandos que contiene la función anterior a cualquier GameObject en la escena.
Haz clic en el botón +, luego arrastra y suelta el GameObject que adjuntaste la secuencia de comandos.
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:
Banner
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.
Banner
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.