Rewarded Video Ads (Legacy API)

Los anuncios de vídeo bonificados son anuncios de vídeo a pantalla completa que conceden bonificaciones dentro de la aplicación a los usuarios que los ven enteros. En esta guía te mostramos cómo integrar anuncios de vídeo bonificados desde Ad Manager en una aplicación de Android.

Requisitos previos

Inicializar anuncios de vídeo bonificados

Java

package ...

import com.google.android.gms.ads.doubleclick.PublisherAdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardedVideoAd;

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
    private RewardedVideoAd mRewardedVideoAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                // Use an activity context to get the rewarded video instance.
        mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
        mRewardedVideoAd.setRewardedVideoAdListener(this);
    }
    ...
}

Kotlin

package ...

import com.google.android.gms.ads.doubleclick.PublisherAdRequest
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.reward.RewardedVideoAd

class MainActivity : AppCompatActivity(), RewardedVideoAdListener {

private lateinit var mRewardedVideoAd: RewardedVideoAd

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
                // Use an activity context to get the rewarded video instance.
        mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this)
        mRewardedVideoAd.rewardedVideoAdListener = this
    }
    ...
}

Se puede obtener un objeto RewardedVideoAd mediante MobileAds.getRewardedVideoAdInstance().

Para recibir notificaciones de eventos del ciclo de vida de los vídeos bonificados, debes implementar RewardedVideoAdListener. El agente de escucha de este formato de anuncios se establece mediante el método setRewardedVideoAdListener() y recibe notificaciones de forma automática de los eventos de todas las redes que uses para la mediación. Por ejemplo, recibirás una notificación si se bonifica a un usuario por ver un vídeo mediante el método onRewarded() en RewardedVideoAdListener.

Solicitar anuncios de vídeo bonificados

Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    // Use an activity context to get the rewarded video instance.
    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    mRewardedVideoAd.setRewardedVideoAdListener(this);

    loadRewardedVideoAd();
}
private void loadRewardedVideoAd() {
    mRewardedVideoAd.loadAd("/6499/example/rewarded-video",
            new PublisherAdRequest.Builder().build());
}

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    
    // Use an activity context to get the rewarded video instance.
    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this)
    mRewardedVideoAd.rewardedVideoAdListener = this

    loadRewardedVideoAd()
}

private fun loadRewardedVideoAd() {
    mRewardedVideoAd.loadAd("/6499/example/rewarded-video",
            PublisherAdRequest.Builder().build())
}

Para respetar el diseño de singleton de RewardedVideoAd, las solicitudes para cargar un anuncio se deben hacer mediante una instancia compartida.

Se recomienda llamar a loadAd() lo antes posible (por ejemplo, en el método onCreate() de tu actividad) para que los vídeos puedan precargarse.

Comprobar siempre las aplicaciones con anuncios de prueba

Cuando crees y pruebes tus aplicaciones, utiliza siempre anuncios de prueba en lugar de anuncios de producción activos. De lo contrario, podríamos suspender tu cuenta.

La forma más sencilla de cargar anuncios de prueba es usar nuestro ID del bloque de anuncios para vídeos bonificados de Android:

/6499/example/rewarded-video

Lo hemos configurado especialmente para devolver los anuncios de prueba de cada solicitud, y puedes usarlo en tus propias aplicaciones para la programación, las pruebas y la depuración. Solo tienes que sustituirlo por el ID de tu bloque de anuncios antes de publicar la aplicación.

Si quieres obtener más información sobre cómo funcionan los anuncios de prueba del SDK de anuncios de Google para móviles, consulta Anuncios de prueba.

Configurar notificaciones de eventos

El SDK proporciona la interfaz RewardedVideoAdListener, que incluye métodos que se corresponden con los eventos del ciclo de vida de los anuncios de vídeo bonificados. Haz que tu aplicación defina una clase que implemente esta interfaz y envíala a setRewardedVideoAdListener antes de cargar un anuncio.

El ejemplo de código de Inicializar anuncios de vídeo bonificados muestra cómo declarar que tu clase implementa RewardedVideoAdListener y configurar el procesador en el objeto RewardedVideoAd. A continuación, se incluye un ejemplo de implementación de los métodos de procesador:

Java

@Override
public void onRewarded(RewardItem reward) {
    Toast.makeText(this, "onRewarded! currency: " + reward.getType() + "  amount: " +
            reward.getAmount(), Toast.LENGTH_SHORT).show();
    // Reward the user.
}

@Override
public void onRewardedVideoAdLeftApplication() {
    Toast.makeText(this, "onRewardedVideoAdLeftApplication",
            Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdClosed() {
    Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
    Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdLoaded() {
    Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdOpened() {
    Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoStarted() {
    Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoCompleted() {
    Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show();
}

Kotlin

override fun onRewarded(reward: RewardItem) {
    Toast.makeText(this, "onRewarded! currency: ${reward.type} amount: ${reward.amount}",
            Toast.LENGTH_SHORT).show()
    // Reward the user.
}

override fun onRewardedVideoAdLeftApplication() {
    Toast.makeText(this, "onRewardedVideoAdLeftApplication", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoAdClosed() {
    Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoAdFailedToLoad(errorCode: Int) {
    Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoAdLoaded() {
    Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoAdOpened() {
    Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoStarted() {
    Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show()
}

override fun onRewardedVideoCompleted() {
    Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show()
}

Mostrar un anuncio de vídeo bonificado

Java

if (mRewardedVideoAd.isLoaded()) {
    mRewardedVideoAd.show();
}

Kotlin

if (mRewardedVideoAd.isLoaded) {
    mRewardedVideoAd.show()
}

Comprueba que el anuncio de vídeo bonificado se ha terminado de cargar antes de intentar mostrarlo. El método isLoaded() indica si se ha procesado correctamente la solicitud del anuncio de vídeo bonificado.

Usar RewardedVideoAdListener para volver a cargar un anuncio

El método onRewardedVideoAdClosed() de la clase RewardedVideoAdListener es una ubicación práctica para cargar un nuevo anuncio de vídeo bonificado tras haber mostrado el anterior:

Java

@Override
public void onRewardedVideoAdClosed() {
    // Load the next rewarded video ad.
    loadRewardedVideoAd();
}

Kotlin

override fun onRewardedVideoAdClosed() {
    loadRewardedVideoAd()
}

Reenviar eventos del ciclo de vida

Para reenviar eventos del ciclo de vida de la actividad principal al objeto RewardedVideoAd, llama a los métodos resume(), pause() y destroy() en los métodos onResume(), onPause() y onDestroy() de la actividad principal, respectivamente.

A continuación, te presentamos un ejemplo de cómo reenviar un evento del ciclo de vida de la actividad:

Java

@Override
public void onResume() {
    mRewardedVideoAd.resume(this);
    super.onResume();
}

@Override
public void onPause() {
    mRewardedVideoAd.pause(this);
    super.onPause();
}

@Override
public void onDestroy() {
    mRewardedVideoAd.destroy(this);
    super.onDestroy();
}

Kotlin

override fun onPause() {
    super.onPause()
    mRewardedVideoAd.pause(this)
}

override fun onResume() {
    super.onResume()
    mRewardedVideoAd.resume(this)
}

override fun onDestroy() {
    super.onDestroy()
    mRewardedVideoAd.destroy(this)
}

Integración con Unity

Consulta Vídeos bonificados para obtener instrucciones sobre cómo integrar el vídeo bonificado en un proyecto de Unity.

Otros recursos

Muestras de GitHub

  • Aplicación con vídeo bonificado de muestra: Java | Kotlin

Pasos siguientes

  • Crea tu propio bloque de anuncios de vídeo bonificados en la interfaz de usuario de Ad Manager.

  • Prueba otro formato de anuncio: