Implementación de AFS para apps de dispositivos móviles (AFSMA) en Android

Requisitos previos

En esta guía de implementación, se supone que estás familiarizado con los siguientes elementos:

Clases

Para publicar anuncios de AFSMA (también conocidos como anuncios dinámicos de búsqueda de altura) en tu aplicación, implementa las siguientes clases:

SearchAdView

  • Esta clase se hereda de la clase ViewGroup de Android. y muestra los anuncios de AFSMA. El objeto SearchAdView realiza la solicitud de un anuncio con una DynamicHeightSearchAdRequest y renderiza los anuncios que se muestran. SearchAdView debe agregarse a cualquiera de los grupos de vistas existentes de la app.
  • Se debe crear una instancia de SearchAdView con el contexto en la que se ejecuta SearchAdView, por lo general, un Activity.
  • Una vez que se crea una instancia de SearchAdView, debes llamar al método setAdSize(). con AdSize.SEARCH para solicitar anuncios de AFSMA. Otros valores de enumeración solicitarán anuncios no compatibles con AFS para aplicaciones para dispositivos móviles.
  • Llama al método setAdUnitId() en este objeto con el código de tu propiedad.

DynamicHeightSearchAdRequest.Builder

  • Esta clase encapsula los parámetros de la solicitud de anuncio. Esto es similar a la configuración de parámetros en los objetos de solicitud de anuncio de JavaScript. (opciones de página, opciones de unidad) para computadoras de escritorio y la Web móvil de AFS.
  • Establece parámetros con los métodos set adecuados (en otras palabras, llama a setQuery() para configurar el parámetro de consulta).

Ejemplo de implementación

En el siguiente ejemplo, se muestra cómo usar un Activity para crear un SearchAdView como una subvista de un ViewGroup. Para solicitar correctamente los anuncios de AFSMA, la SearchAdView El objeto debe llamar al método setAdSize() con AdSize.SEARCH.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

Dentro del mismo Activity, crea un DynamicHeightSearchAdRequest.Builder que y determina los parámetros del anuncio que se renderizará en SearchAdView. Los anuncios de AFSMA se configuran de la misma manera que los anuncios de búsqueda personalizados de AFS. Consulta los Anuncios de búsqueda personalizados de AFS. Referencia para conocer los detalles.

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

Es posible establecer otras opciones de personalización si se configuran DynamicHeightSearchAdRequest.Builder .

Para realizar una solicitud de anuncio, llama al método loadAd() con el DynamicHeightSearchAdRequest.Builder del objeto SearchAdView:

searchAdView.loadAd(builder.build());

Opciones avanzadas

La mayoría de los parámetros de solicitud de anuncio se pueden establecer con métodos set en el objeto DynamicHeightSearchAdRequest.Builder. Cualquier parámetro que no tenga un método set en DynamicHeightSearchAdRequest.Builder se puede establecer usando pares clave-valor con el setAdvancedOptionValue() . Consulta los Anuncios de búsqueda personalizados de AFS Referencia para obtener una lista completa de los parámetros de configuración que se pueden establecer con el setAdvancedOptionValue().

El parámetro clave debe tener el prefijo “csa_” para que la propiedad se configure correctamente.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

Si usas el método set de un parámetro y lo configuras con setAdvancedOptionValue, la segunda llamada anulará el valor de la primera.

Investiga errores

SearchAdView (aquí searchAdView) contiene un método setAdListener(). para ayudarte a investigar errores. Dentro del mismo Activity:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

Constantes usadas en el método de devolución de llamada onAdFailedToLoad() se describen en la sección API referencia.

Prepárate para los requisitos de divulgación de datos de Google Play

En mayo de 2021, Google Play anunció la nueva sección de Seguridad de los datos, una divulgación proporcionada por los desarrolladores sobre las prácticas de seguridad, uso compartido y recopilación de datos de las aplicaciones.

Esta página puede ayudarte a completar los requisitos de esta divulgación de datos con respecto a tu uso del SDK nativo de AFS (también se aplica al uso de AdSense para Shopping). En esta página, puedes encontrar información sobre si nuestros SDKs manejan datos del usuario final y de qué manera.

Nuestro objetivo es brindarle la asistencia más transparente posible. Sin embargo, como desarrollador de apps, eres el único responsable de decidir cómo responder el formulario de la sección de Seguridad de los datos de Google Play en relación con las prácticas de seguridad, el uso compartido y la recopilación de datos del usuario final de tu app.

Cómo usar la información de esta página

En esta página, se enumeran los datos del usuario final que recopila solo la versión más reciente del SDK.

Para completar tu divulgación de datos, puedes usar la guía sobre tipos de datos de Android para determinar qué tipo de datos recopilas. En esa divulgación, también asegúrate de explicar la forma en que tu aplicación específica comparte y usa los datos recopilados.

Tipo de datos al que accede el SDK y que recopila

Paquetes:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

Datos recopilados automáticamente

El SDK de AFS recopila los siguientes datos automáticamente. Todos los datos se transmiten fuera del dispositivo a Google para publicar anuncios. Además, todos los datos se encriptan en tránsito. La información personal de los usuarios nunca se recopila, a menos que la app la envíe en una consulta.

Datos Estos datos se recopilan para los siguientes fines:
Dirección IP Resumen:
  • Seguridad, cumplimiento y prevención de fraudes
  • Publicidad o marketing
  • Derivar ubicación aproximada
Detalle:
La dirección IP se utiliza para supervisar fraudes y abusos, así como para obtener la ubicación aproximada del usuario.

Luego, se usa la ubicación aproximada para garantizar que los anuncios publicados cumplan con las reglamentaciones locales y proporcionar anuncios relevantes para la ubicación geográfica aproximada de un usuario.

Actividad en apps
  • Páginas vistas y presiones en la app
  • Historial de búsqueda en la app
Resumen:
  • Analytics
  • Seguridad, cumplimiento y prevención de fraudes
  • Publicidad o marketing
  • Personalización
Detalle:
Tu aplicación nos proporciona la consulta del usuario para que mostremos anuncios de búsqueda relevantes para la palabra clave. Medimos las vistas y la participación (toques) con los anuncios que se muestran.
Diagnóstico Resumen:
  • Analytics
Detalle:
El SDK mide la latencia de renderización de los anuncios para permitir la implementación y medición de mejoras del producto. También enviamos informes de fallas y errores y, de vez en cuando, agregamos otra instrumentación según sea necesario para comprender cómo los publicadores usan la funcionalidad.
Dispositivo y otros identificadores Resumen:
  • Seguridad, cumplimiento y prevención de fraudes
  • Publicidad o marketing
Detalle:
El ID de dispositivo se usa para supervisar casos de fraude y abuso, así como medir el rendimiento de los anuncios.