Intersticial bonificado

Los anuncios intersticiales bonificados son un tipo de formato que te permite ofrecer recompensas por ver anuncios que se muestran 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

  • Tener la versión 19.2.0 del SDK de anuncios de Google para móviles o una posterior.
  • Seguir la guía de introducción para importar el SDK de anuncios de Google para móviles y actualizar el AndroidManifest.xml.
  • Ponerte en contacto con tu gestor de cuentas para acceder a los anuncios intersticiales bonificados.

Implementación

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

  1. Cargar un anuncio.
  2. Registrarse para recibir retrollamadas de eventos a pantalla completa.
  3. Gestionar las recompensas.
  4. Mostrar el anuncio.

Cargar un anuncio

Para cargar anuncios, utiliza el método load() estático de la clase RewardedInterstitialAd. El método de carga requiere un contexto, el ID de tu bloque de anuncios, un objeto an AdRequest y una RewardedInterstitialAdLoadCallback a la que se notifica cuando la carga de anuncios se realiza correctamente o da error. El objeto RewardedInterstitialAd cargado se proporciona como parámetro en la retrollamada onRewardedInterstitialAdLoaded(). En el siguiente ejemplo se muestra cómo cargar un objeto RewardedInterstitialAd en tu MainActivity.

public class MainActivity extends AppCompatActivity {
  private RewardedInterstitialAd rewardedInterstitialAd;
  private String TAG = "MainActivity";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MobileAds.initialize(this, new OnInitializationCompleteListener() {
      @Override
      public void onInitializationComplete(InitializationStatus initializationStatus) {
        loadAd();
      }
    });

  public void loadAd() {
    // Use the test ad unit ID to load an ad.
    RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379",
        new AdRequest.Builder().build(),  new RewardedInterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(RewardedInterstitialAd ad) {
        rewardedInterstitialAd = ad;
        Log.e(TAG, "onAdLoaded");
      }
      @Override
      public void onAdFailedToLoad(LoadAdError loadAdError) {
        Log.e(TAG, "onAdFailedToLoad");
      }
    });
  }
}

Registrarse para recibir retrollamadas

Para recibir notificaciones de eventos de presentación, debes transferir un objeto FullScreenContentCallback al establecedor en el anuncio. El objeto FullScreenContentCallback gestiona las retrollamadas cuando el anuncio se muestra correctamente, cuando no se puede presentar y cuando lo cierra el usuario. En el siguiente código se muestra cómo configurar un objeto FullScreenContentCallback anónimo en tu RewardedInterstitialAdLoadCallback:

public void loadAd(){
  RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379",
      new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
    @Override
    public void onAdLoaded(RewardedInterstitialAd ad) {
      rewardedInterstitialAd = ad;
      rewardedInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
        /** Called when the ad failed to show full screen content. */
        @Override
        public void onAdFailedToShowFullScreenContent(AdError adError) {
          Log.i(TAG, "onAdFailedToShowFullScreenContent");
        }

        /** Called when ad showed the full screen content. */
        @Override
        public void onAdShowedFullScreenContent() {
          Log.i(TAG, "onAdShowedFullScreenContent");
        }

        /** Called when full screen content is dismissed. */
        @Override
        public void onAdDismissedFullScreenContent() {
          Log.i(TAG, "onAdDismissedFullScreenContent");
        }
      });
    }
    @Override
    public void onAdFailedToLoad(LoadAdError loadAdError) {
      Log.e(TAG, "onAdFailedToLoad");
    }
  });
}

Gestionar las recompensas

Para mostrar tu anuncio intersticial bonificado, implementa la interfaz de OnUserEarnedRewardListener en tu MainActivity para recibir una notificación cuando el usuario consiga una recompensa.

public class MainActivity extends AppCompatActivity implements OnUserEarnedRewardListener {
  ...
  @Override
  public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
    Log.i(TAG, "onUserEarnedReward");
    // TODO: Reward the user!
  }
}

Mostrar el anuncio

Después de implementar la interfaz de OnUserEarnedRewardListener, puedes mostrar el anuncio usando su método show() como se indica a continuación:

rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/*
    OnUserEarnedRewardListener */ MainActivity.this);

Ejemplos en GitHub

  • Ejemplo de anuncios intersticiales bonificados: Java | Kotlin