Caché

Última actualización:

El almacenamiento en caché de los anuncios antes de que los necesites reduce el tiempo de carga, mejora la experiencia del jugador y te da más maneras de controlar cómo utilizas Chartboost.


Contenido


Resumen

El almacenamiento en caché (precarga) de anuncios antes de tener que mostrarlos es una buena práctica que puede ayudarte a optimizar la experiencia del usuario de tus juegos. Cuando un anuncio está almacenado en caché en el dispositivo se mostrará mucho más rápido cuando se solicite, y puedes comprobar que hay un anuncio disponible incluso antes de tomar la decisión de que aparezca.

Cada tipo de anuncio y ubicación con nombre tiene su propio caché, por lo que puedes tener varios anuncios en caché al mismo tiempo en diferentes ubicaciones con nombre. (Puedes encontrar información sobre cómo utilizar las ubicaciones con nombre aquí).


Anuncios en caché

Los intersitiales, las páginas MoreApps y los videos con recompensa pueden almacenarse en caché para mostrarlos más adelante con los siguientes métodos (donde CBLocationHomeScreen es un ejemplo de ubicación con nombre):

iOS
[Chartboost cacheInterstitial:CBLocationHomeScreen];
[Chartboost cacheRewardedVideo:CBLocationHomeScreen];
[Chartboost cacheMoreApps:CBLocationHomeScreen];
Android
Chartboost.cacheInterstitial(CBLocation.LOCATION_HOME_SCREEN);
Chartboost.cacheRewardedVideo(CBLocation.LOCATION_HOME_SCREEN);
Chartboost.cacheMoreApps(CBLocation.LOCATION_HOME_SCREEN);
Unity
Chartboost.cacheInterstitial(CBLocation.HomeScreen);
Chartboost.cacheRewardedVideo(CBLocation.HomeScreen);
Chartboost.cacheMoreApps(CBLocation.HomeScreen);
Adobe AIR
Chartboost.getInstance().cacheInterstitial(CBLocation.HOME_SCREEN);
Chartboost.getInstance().cacheRewardedVideo(CBLocation.HOME_SCREEN);
Chartboost.getInstance().cacheMoreApps(CBLocation.HOME_SCREEN);

Nota: Mientras que los métodos MoreApps requieren un parámetro de ubicación, la ubicación específica es esencialmente ignorada y tratada como "predeterminada" para cualquier solicitud MoreApps.


Cómo comprobar anuncios en caché

Una función útil de almacenamiento en caché es la capacidad de probar si un anuncio ya ha sido cargado previamente antes de intentar mostrarlo. Como práctica recomendada, si un anuncio no está ya almacenado en caché, aprovecha la oportunidad para almacenar uno.

iOS
if([Chartboost hasInterstitial:CBLocationHomeScreen] == YES) {
 [Chartboost showInterstitial:CBLocationHomeScreen];
}
else {
 [Chartboost cacheInterstitial:CBLocationHomeScreen];
}
Android
if (Chartboost.hasInterstitial(CBLocation.LOCATION_HOME_SCREEN)) {
 Chartboost.showInterstitial(CBLocation.LOCATION_HOME_SCREEN);
}
else {
 Chartboost.cacheInterstitial(CBLocation.LOCATION_HOME_SCREEN);
}
Unity
if (Chartboost.hasInterstitial(CBLocation.HomeScreen)) {
 Chartboost.showInterstitial(CBLocation.HomeScreen);
}
else {
 Chartboost.cacheInterstitial(CBLocation.HomeScreen);
}
Adobe AIR
if (Chartboost.getInstance().hasInterstitial(CBLocation.HOME_SCREEN)) {
 Chartboost.getInstance().showInterstitial(CBLocation.HOME_SCREEN)
} 
else {
 Chartboost.getInstance().cacheInterstitial(CBLocation.HOME_SCREEN)
} 

También puedes recibir una notificación desde el SDK cuando un anuncio se almacena en caché con éxito mediante la aplicación de los métodos delegados opcionales siguientes (el SDK pasará la ubicación con nombre del anuncio en caché):

iOS
- (void)didCacheInterstitial:(CBLocation)location
- (void)didCacheRewardedVideo:(CBLocation)location
- (void)didCacheMoreApps:(CBLocation)location
Android
public void didCacheInterstitial(String location)
public void didCacheRewardedVideo(String location)
public void didCacheMoreApps(String location)
Unity
void didCacheInterstitial(CBLocation location)
void didCacheRewardedVideo(CBLocation location)
void didCacheMoreApps(CBLocation location)
Adobe AIR
public static const DID_CACHE_INTERSTITIAL:String = "didCacheInterstitial";
public static const DID_CACHE_MORE_APPS:String = "didCacheMoreApps";
public static const DID_CACHE_REWARDED_VIDEO:String = "didCacheRewardedVideo";

Si el caché falla se activará el método delegado didFailToLoadInterstitial (este delegado también se activa si llamas a showInterstitial y no se muestra un anuncio):

iOS
- (void)didFailToLoadInterstitial:(CBLocation)location withError:(CBLoadError)error
- (void)didFailToLoadRewardedVideo:(CBLocation)location withError:(CBLoadError)error
- (void)didFailToLoadMoreApps:(CBLocation)location withError:(CBLoadError)error
Android
public void didFailToLoadInterstitial(String location, CBImpressionError error)
public void didFailToLoadRewardedVideo(String location, CBImpressionError error)
public void didFailToLoadMoreApps(String location, CBImpressionError error)
Unity
void didFailToLoadInterstitial(CBLocation location, CBImpressionError error)
void didFailToLoadRewardedVideo(CBLocation location, CBImpressionError error)
void didFailToLoadMoreApps(CBLocation location, CBImpressionError error)
Adobe AIR
Chartboost.getInstance().addDelegate(ChartboostEvent.DID_FAIL_TO_LOAD_INTERSTITIAL, function (location:String))
Chartboost.getInstance().addDelegate(ChartboostEvent.DID_FAIL_TO_LOAD_MOREAPPS, function(location:String))
Chartboost.getInstance().addDelegate(ChartboostEvent.DID_FAIL_TO_LOAD_REWARDED_VIDEO, function(location:String))

Caché automático

El SDK v4.4 + de Chartboost alacena en caché automáticamente los anuncios que se han mostrado con éxito en la ubicación con nombre. Sin embargo, te recomendamos que almacenes en caché de forma manual los anuncios en el arranque u otros puntos lógicos de tu aplicación antes de tener que mostrarlos (además de dejar que el caché automático obre su magia).

El caché automático no provoca solicitudes a la red innecesarias, ya que las llamadas de caché (automático o manual) solo envían solicitudes a la red si el caché está vacío en una ubicación específica. Simplemente se ocupa de llamar a cacheInterstitial() inmediatamente después de la llamada showInterstitial().

Puedes modificar el comportamiento del caché automático con los siguientes métodos del SDK:

iOS
[Chartboost setAutoCacheAds:BOOLEAN];
Android
Chartboost.setAutoCacheAds(boolean);
Unity
Chartboost.setAutoCacheAds(boolean);
Adobe AIR
Chartboost.getInstance().setAutoCacheAds(shouldCache:Boolean);

Notas sobre el caché

  • [Chartboost showInterstitial:CBLocationHomeScreen]; muestra un intersitial en caché si este existe. En caso contrario, solicitará uno al servidor.
  • El caché es recomendable para obtener el mejor funcionamiento, pero debes tomar en cuenta el uso de datos de tus usuarios.
  • Los intersitiales en caché caducan a las 24 horas.
  • Las solicitudes de caché son asíncronas. Recuérdalo si almacenas muchos intersitiales en caché mientras cargas otros datos para tu aplicación.