Compartir a través de


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:

  1. 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 a loadAd(), no cuando la llamada a show() se realice más adelante.
  2. 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 a loadAd() 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);