Mostrar intersticiales en Android
Esta página tiene instrucciones y ejemplos de código para mostrar anuncios intersticiales en Android.
Información general
Mostrar anuncios intersticiales es un poco más de trabajo. Además de configurar con InterstitialAdView
el identificador de ubicación, debe implementar la AdListener
interfaz, que incluye métodos que le indican cuándo un anuncio intersticial ha terminado de cargarse correctamente o cuándo se ha producido un error en la solicitud.
Además, mostrar anuncios intersticiales a los usuarios es un proceso de dos pasos:
- Llame
InterstitialAdView.loadAd()
a para capturar el contenido del anuncio de nuestro servidor y almacenarlos en caché localmente. Tenga en cuenta que cualquier contenido de anuncio se representa en una vista web en el momento en que se captura desde el servidor de anuncios y se almacena en caché. Esto significa que cualquier píxeles de seguimiento de terceros que formen parte del contenido del anuncio se desencadenará en el momento de la llamada aloadAd()
, no cuando la llamada ashow()
se realice más adelante. - Cuando esté listo para mostrar el anuncio intersticial al usuario, llame
show()
a . Esto debe ocurrir en aproximadamente 4 minutos después de la llamada aloadAd()
para que Xandr cuente la impresión.
Nota:
El botón cerrar aparece después de diez segundos de forma predeterminada. Puede establecer el retraso mediante InterstitialAdView.setCloseButtonDelay(int closeButtonDelay)
.
Para obtener más información, vea el ejemplo de código siguiente.
Tipos de medios creativos admitidos en la unidad de anuncios intersticiales
Tipo de medio | Descripción |
---|---|
Banner | Se recomienda para la mayoría de las ubicaciones intersticiales para maximizar la demanda. Adecuado para banners estáticos o animados. |
Intersticial | Se usa para anuncios a pantalla completa, incluidas imágenes estáticas, MRAID y formatos con capacidad de respuesta HTML. |
VÍDEO VAST | Admite anuncios de vídeo a partir de la versión 9.1.0. Ideal para servir creatividades de vídeo cuando la ubicación está habilitada para la demanda de vídeo. |
Ejemplo de código
Nota:
A partir de la versión RC2.8, también puede usar un código de inventario y un identificador de miembro para solicitar un anuncio (todavía se admite el identificador de ubicación). Actualmente, esto solo está disponible en Java (no en XML). Tenga en cuenta que si se pasan el código de inventario y el identificador de ubicación, el código de inventario se pasará al servidor en lugar del identificador de ubicación.
// Android: Java code that uses inventory code and member ID instead of placement ID (optional)
adview.setInventoryCodeAndMemberID(int memberID, String inventoryCode)
Nota:
Como procedimientos recomendados:
- Se debe llamar a todos los métodos del SDK en el subproceso principal.
-
activityOnDestroy()
debe llamarse para el intersticial que se espera que se destruya.
// Android: Java code to show an interstitial ad
package com.example.simpleinterstitial;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.util.Log;
import com.appnexus.opensdk.*;
public class MainActivity extends Activity implements AdListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set up an ad view with our placement ID.
InterstitialAdView iav = new InterstitialAdView(this);
iav.setPlacementID("1326299");
iav.setAdListener(this);
// Fetch an ad from the server. If this works, `onAdLoaded' will
// be called, and we can show the ad.
iav.loadAd();
}
@Override
protected void onDestroy() {
if (iav != null) {
iav.activityOnDestroy();
}
super.onDestroy();
}
@Override
public void onAdLoaded(AdView av) {
Log.d("onAdLoaded", "The ad has loaded, now we can show it...");
// Now that the ad has loaded, we can show it to the user.
InterstitialAdView iav = (InterstitialAdView) av;
iav.show();
}
@Override
public void onAdLoaded(NativeAdResponse nativeAdResponse) {
// JUST ignore it. This callback is for Native in Banner.
}
@Override
public void onAdRequestFailed(AdView av, ResultCode rc) {
Log.d("onAdRequestFailed", "Not sure why the ad request failed; try again? Return code ==> " + rc);
}
@Override
public void onAdClicked(AdView av) {
Log.d("onAdClicked", "The user clicked your ad. Congrats!");
}
@Override
public void onAdClicked(AdView adView, String clickUrl) {
// This will be getting called if you have set setClickThroughAction(ANClickThroughAction.RETURN_URL);
// Handle the URL appropriately
}
@Override
public void onAdCollapsed(AdView av) {
// Do something here.
}
@Override
public void onAdExpanded(AdView av) {
// Do something here as well.
}
}
Uso de tamaños intersticiales personalizados
De forma predeterminada, si no especifica un tamaño de anuncio, el SDK capturará los anuncios en cualquiera de los tamaños siguientes que sean menores o iguales que el tamaño de la pantalla del dispositivo.
- 1x1 (siempre enviado)
- Tamaño detectado de la pantalla (siempre enviado)
- 300x250
- 320x480
- 900x500
- 1024x1024
Si quieres mostrar anuncios intersticiales en tamaños distintos de los predeterminados, usa el setAllowedSizes
método en la vista de anuncios intersticiales, como se muestra a continuación. Tenga en cuenta que el tamaño detectado de la pantalla se seguirá pasando como tamaño principal. Los tamaños establecidos mediante setAllowedSizes
se pasarán como tamaño adicional en la vista de anuncios intersticiales y reemplazarán los valores predeterminados de 300x250, 320x480, 900x500 y 1024x1024.
// Android: Java code to show interstitial ads in sizes other than the defaults (optional)
InterstitialAdView iav = new InterstitialAdView(this);
iav.setPlacementID("1326299");
AdSize test_size1 = new AdSize(320,480);
AdSize test_size2 = new AdSize(768,1024);
ArrayList test_array_list = new ArrayList() {};
test_array_list.add(test_size1);
test_array_list.add(test_size2);
iav.setAllowedSizes(test_array_list);
Cierre automático de un intersticial
Si quieres cerrar automáticamente un anuncio intersticial después de un período de tiempo de espera específico, no llames a show()
como se describe en las secciones anteriores. En su lugar, llame a showWithAutoDismissDelay(delayinseconds)
, donde delayinseconds
es el número de segundos que se mostrará el anuncio antes de que se cierre.
// This will show an interstitial ad, wait for 10 seconds, then auto close it.
interstitialAdView.showWithAutoDismissDelay(10);