Intersticial bonificado

Los anuncios intersticiales bonificados son un formato que te permite ofrecer recompensas por ver anuncios que aparecen automáticamente cuando tienen lugar las transiciones naturales de una aplicación. A diferencia de lo que ocurre con los anuncios bonificados tradicionales, no hace falta que los usuarios indiquen que quieren verlos para que se les muestren.

Requisitos previos

  • Tener instalada la versión 5.4.0 (o una posterior) del complemento de Unity.

Implementación

Los pasos principales para integrar anuncios intersticiales bonificados son los siguientes:

  1. Cargar un anuncio.
  2. Mostrar el anuncio y gestionar el evento de bonificación.
  3. Usar retrollamadas de eventos de anuncios.

Cargar un anuncio

Para cargar anuncios, utiliza el método LoadAd() estático de la clase RewardedInterstitialAd. El método de carga requiere el ID de tu bloque de anuncios, un objeto AdRequest y un controlador de finalización al que se llama cuando la carga de anuncios se realiza correctamente o da error. El objeto RewardedInterstitialAd cargado se proporciona como parámetro en el controlador de finalización. En el siguiente ejemplo se muestra cómo cargar un objeto RewardedInterstitialAd.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedInterstitialAd rewardedInterstitialAd;
    ...

    public void Start()
    {
        ...

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        RewardedInterstitialAd.LoadAd(adUnitId, request, adLoadCallback);
    }

    private void adLoadCallback(RewardedInterstitialAd ad, string error)
    {
        if (error == null)
        {
            rewardedInterstitialAd = ad;
        }
    }
}

Mostrar el anuncio y gestionar el evento de bonificación

Al mostrar el anuncio, debes proporcionar una retrollamada para gestionar la recompensa que obtendrán los usuarios.

En el siguiente fragmento de código se muestra el mejor método para mostrar un anuncio intersticial bonificado.

public void ShowRewardedInterstitialAd()
{
    if (rewardedInterstitialAd != null)
    {
        rewardedInterstitialAd.Show(userEarnedRewardCallback);
    }
}

private void userEarnedRewardCallback(Reward reward)
{
    // TODO: Reward the user.
}

Usar retrollamadas de eventos de anuncios

Si quieres personalizar aún más el comportamiento de tus anuncios, puedes añadir varios eventos. Para procesar esos eventos, registra un delegado para el gestor de eventos adecuado.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedInterstitialAd rewardedInterstitialAd;
    ...

    public void Start()
    {
        ...

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        RewardedInterstitialAd.LoadAd(adUnitId, request, adLoadCallback);
    }

    private void adLoadCallback(RewardedInterstitialAd ad, string error)
    {
        if (error == null)
        {
            rewardedInterstitialAd = ad;

            rewardedInterstitialAd.OnAdFailedToPresentFullScreenContent += HandleAdFailedToPresent;
            rewardedInterstitialAd.OnAdDidPresentFullScreenContent += HandleAdDidPresent;
            rewardedInterstitialAd.OnAdDidDismissFullScreenContent += HandleAdDidDismiss;
            rewardedInterstitialAd.OnPaidEvent += HandlePaidEvent;
        }
    }

    private void HandleAdFailedToPresent(object sender, AdErrorEventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has failed to present.");
    }

    private void HandleAdDidPresent(object sender, EventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has presented.");
    }

    private void HandleAdDidDismiss(object sender, EventArgs args)
    {
        MonoBehavior.print("Rewarded interstitial ad has dismissed presentation.");
    }

    private void HandlePaidEvent(object sender, AdValueEventArgs args)
    {
        MonoBehaviour.print(
            "Rewarded interstitial ad has received a paid event.");
    }
}