Los anuncios intersticiales recompensados son un tipo de formato de anuncio incentivado que te permite ofrecer recompensas por los anuncios que aparecen automáticamente durante las transiciones naturales de la app. A diferencia de los anuncios recompensados, para ver un anuncio intersticial recompensado.
Requisitos previos
- Completa la Guía de introducción.
Probar siempre con anuncios de prueba
El siguiente código de muestra contiene un ID de unidad de anuncios que puedes usar para solicitar anuncios de prueba. Se configuró de forma especial para mostrar anuncios de prueba en lugar de mostrar anuncios de producción para cada solicitud, por lo que es seguro de usar.
Sin embargo, después de haber registrado una app en la la interfaz web de AdMob y creaste tu propia unidad de anuncios IDs para usar en tu app, configura tu dispositivo como una prueba de manera explícita dispositivo durante en el desarrollo de software.
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
Inicializa el SDK de Mobile Ads
Antes de cargar anuncios, haz que tu app inicialice el SDK de anuncios para dispositivos móviles mediante una llamada
MobileAds.Initialize()
Esto debe hacerse una sola vez, idealmente cuando se inicia la app.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Si utiliza la mediación, espere hasta que se produzca la devolución de llamada antes de cargar anuncios como Esto garantizará que se inicialicen todos los adaptadores de mediación.
Implementación
Los pasos principales para integrar anuncios intersticiales recompensados son los siguientes:
- Carga el anuncio intersticial recompensado
- Valida las devoluciones de llamada de la verificación del servidor (SSV) [opcional].
- Cómo mostrar el anuncio intersticial recompensado con devolución de llamada de recompensa
- Cómo escuchar eventos de anuncios intersticiales recompensados
- Cómo limpiar el anuncio intersticial recompensado
- Precarga el siguiente anuncio intersticial recompensado.
Carga el anuncio intersticial recompensado
La carga de un anuncio intersticial recompensado se realiza con el Load()
estático.
de la clase RewardedInterstitialAd
. El método de carga requiere un anuncio
un ID de unidad, un objeto AdRequest
y una respuesta
al que se llama cuando la carga de anuncios se realiza correctamente o falla. El tráfico cargado
El objeto RewardedInterstitialAd
se proporciona como parámetro en el recurso
controlador. En el siguiente ejemplo, se muestra cómo cargar un RewardedInterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/5354046379";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/6978759866";
#else
private string _adUnitId = "unused";
#endif
private RewardedInterstitialAd _rewardedInterstitialAd;
/// <summary>
/// Loads the rewarded interstitial ad.
/// </summary>
public void LoadRewardedInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedInterstitialAd != null)
{
_rewardedInterstitialAd.Destroy();
_rewardedInterstitialAd = null;
}
Debug.Log("Loading the rewarded interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId, adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("rewarded interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedInterstitialAd = ad;
});
}
Valida las devoluciones de llamada de la verificación del servidor (SSV) [opcional].
Aplicaciones que requieren datos adicionales en la verificación del servidor
las devoluciones de llamada deben usar la función de datos personalizados de los anuncios intersticiales recompensados.
Cualquier valor de cadena establecido en un objeto de anuncio recompensado se pasa al custom_data
.
parámetro de consulta de la devolución de llamada de SSV. Si no se establece ningún valor de datos personalizado,
No se incluirá el valor del parámetro de consulta custom_data
en la devolución de llamada de SSV.
En la siguiente muestra de código, se muestra cómo configurar las opciones de SSV después de que se carga el anuncio intersticial recompensado.
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId,
adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded interstitial ad failed to load an ad " +
" with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded interstitial ad loaded with response : " +
ad.GetResponseInfo());
// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
.Builder()
.SetCustomData("SAMPLE_CUSTOM_DATA_STRING")
.Build()
ad.SetServerSideVerificationOptions(options);
});
Si deseas establecer la cadena de recompensa personalizada, debes hacerlo antes de mostrar el anuncio.
Mostrar el anuncio intersticial recompensado con una devolución de llamada de recompensa
Al presentar su anuncio, debe proporcionar una devolución de llamada para administrar la recompensa por
del usuario. Los anuncios solo se pueden mostrar una vez por carga. Usa el método CanShowAd()
para
verificar que el anuncio esté listo para publicarse.
En el siguiente código, se presenta el mejor método para mostrar un anuncio intersticial recompensado.
public void ShowRewardedInterstitialAd()
{
const string rewardMsg =
"Rewarded interstitial ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedInterstitialAd != null && rewardedInterstitialAd.CanShowAd())
{
rewardedInterstitialAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
Cómo escuchar eventos de anuncios intersticiales recompensados
Para personalizar aún más el comportamiento de su anuncio, puede vincular en el ciclo de vida del anuncio. Registra a un delegado para escuchar estos eventos como se muestra a continuación.
private void RegisterEventHandlers(RewardedInterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
};
}
Cómo limpiar el anuncio intersticial recompensado
Cuando termines con un RewardedInterstitialAd
, asegúrate de llamar al método Destroy()
antes de soltar tu referencia a él:
_rewardedInterstitialAd.Destroy();
Esto notifica al complemento que el objeto ya no se usa y la memoria que ocuparse de ellos. Si no se llama a este método, se generarán fugas de memoria.
Precarga el siguiente anuncio intersticial recompensado.
RewardedInterstitialAd
es un objeto de un solo uso. Esto significa que, una vez
se muestra un anuncio intersticial, no se puede volver a usar el objeto. Para solicitar otra
anuncio intersticial recompensado, deberás cargar un nuevo RewardedInterstitialAd
.
Para preparar un anuncio intersticial recompensado para la siguiente oportunidad de impresión,
precarga el anuncio intersticial recompensado una vez que OnAdFullScreenContentClosed
o
Se generó OnAdFullScreenContentFailed
evento de anuncio.
private void RegisterReloadHandler(RewardedInterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
}
Recursos adicionales
- Ejemplo de HelloWorld: Representación minimalista de todos los formatos de anuncios.