SDK de Cordova - Seguimiento de ingresos publicitarios

Documento

Atribución de ingresos publicitarios

Conecte los ingresos por publicidad a las campañas de marketing específicas que llevaron a los usuarios a su aplicación, proporcionando una visibilidad completa de los costes de campaña, los ingresos dentro de la aplicación y los ingresos por publicidad para una medición precisa del ROI.

Visión general

Qué es la atribución de ingresos publicitarios

Ad Revenue Attribution vincula los ingresos publicitarios de las aplicaciones móviles a las campañas de marketing que generaron usuarios, lo que le permite medir el verdadero rendimiento de la campaña al conectar los costes de adquisición de usuarios con los ingresos de por vida, incluida la monetización de los anuncios.

  • ROI de la campaña: Vea el coste de la campaña, las compras dentro de la aplicación y los ingresos publicitarios en informes unificados para calcular el verdadero retorno de la inversión publicitaria.
  • Optimización de la red: Envíe los datos de ingresos publicitarios a las redes publicitarias para mejorar los algoritmos de puja y el rendimiento de las campañas.
  • Fuentes de datos: Admite datos a nivel de usuario y a nivel de impresión de plataformas de mediación como AdMob, AppLovin MAX, Unity LevelPlay (IronSource) y TradPlus.

Para más información, consulte las preguntas frecuentes sobre la atribución de ingresos publicitarios.

Consideracionesimportantes:

  1. Códigos de moneda: Utilice los códigos de divisa de tres letras ISO 4217 (USD, EUR, INR). La mayoría de las plataformas de mediación informan en USD; verifique la divisa de su plataforma antes de la implementación.
  2. Precisión de los datos: Valide los datos de ingresos y divisas antes de enviarlos a Singular. Los datos incorrectos no pueden corregirse retroactivamente.

Requisitos de implementación

El seguimiento de los ingresos publicitarios requiere la integración con el SDK de su plataforma de mediación y la configuración de las retrollamadas de ingresos.

  1. Versión del SDK: Actualizar a la última versión del SDK de Singular Cordova
  2. Plataforma de mediación: Integre el SDK compatible con Cordova para su plataforma de mediación o utilice un plugin de terceros (AdMob, AppLovin MAX, IronSource o TradPlus)
  3. Devoluciones de ingresos: Implemente controladores de eventos de pago específicos de la plataforma para capturar datos de ingresos a nivel de impresión.
  4. Lógica de validación: Añada validación de ingresos y divisas antes de enviar los datos a Singular

Método SDK

cordova.plugins.SingularCordovaSdk.adRevenue

Envía los datos de ingresos publicitarios a Singular con la plataforma, la divisa y el importe de los ingresos para su atribución a la campaña de adquisición del usuario.

Firmadel método:

cordova.plugins.SingularCordovaSdk.adRevenue(adData: Object): void

Parámetros:

  • adData.adPlatform: Nombre de la plataforma de mediación (por ejemplo, "AdMob", "AppLovin", "IronSource", "TradPlus")
  • adData.currency: Código de moneda de tres letras ISO 4217 (por ejemplo, "USD", "EUR")
  • adData.revenue: Importe de los ingresos en la divisa especificada (debe ser mayor que 0)

Para obtener la documentación completa del método, consulte la referencia adRevenue.


Integración con AdMob

Implemente el seguimiento de los ingresos publicitarios de AdMob mediante devoluciones de llamada de eventos de pago para obtener informes de ingresos a nivel de impresión en todos los formatos publicitarios.

Requisitos previos

  • Habilite los informes de ingresos publicitarios en su cuenta de AdMob. Consulte Soporte de AdMob
  • Google no ofrece soporte oficial para Cordova, por lo que se requiere un complemento de terceros. Se recomienda AdMob Plus como sucesor de cordova-plugin-admob-free. Consulte la Guía de introducción

Aviso sobre plugins: AdMob Plus Cordova es un plugin de terceros no soportado oficialmente por Singular o Google. Utilícelo bajo su propio criterio y verifique la compatibilidad con su versión de Cordova.


Descripción general de la implementación

Cuando cargue formatos de anuncios (App Open, Banner, Interstitial, Native, Rewarded), configure un controlador de eventos de pago que se active cuando los anuncios generen ingresos. Extraiga el valor de los ingresos y la moneda de los datos del evento, valide ambos valores y envíelos a Singular.

Diferencia de plataforma: AdMob informa de los ingresos de forma diferente según la plataforma. Android informa de los ingresos en micros (por ejemplo, 0,005 dólares aparece como 5.000), lo que requiere la división entre 1.000.000. iOS informa de los ingresos directamente en dólares (0,005). Ajuste la lógica de conversión en función de la detección de la plataforma.


Ejemplo de anuncio con recompensa de AdMob

Carga y seguimiento de anuncios con recompensa

Configure escuchadores de eventos para anuncios recompensados y capture eventos pagados para el seguimiento de ingresos.

JavaScript
document.addEventListener('deviceready', initializeAdMob, false);

async function initializeAdMob() {
  const admob = window.cordova.plugins.AdMobPlus;
  
  // Initialize RewardedAd with your ad unit ID
  const rewarded = admob.RewardedAd.create({
    adUnitId: 'ca-app-pub-xxxxxxxxxxxxx/yyyyyyyyyy',
    isTesting: true // Set to false for production
  });

  // Handle the 'paid' event to capture revenue details
  rewarded.on('paid', (event) => {
    const { value, currencyCode } = event;
    
    // Validate revenue and currency data
    if (value > 0 && currencyCode) {
      // Convert from micros to dollars
      const revenueAmount = value / 1_000_000.0;
      
      // Create ad data object
      const adData = new cordova.plugins.SingularCordovaSdk.SingularAdData(
        'AdMob',
        currencyCode,
        revenueAmount
      );

      // Send Ad Revenue data to Singular
      cordova.plugins.SingularCordovaSdk.adRevenue(adData);

      // Log for debugging
      console.log('Ad Revenue reported to Singular:', {
        adPlatform: 'AdMob',
        currency: currencyCode,
        revenue: revenueAmount
      });
    } else {
      console.error('Invalid ad revenue data:', { value, currencyCode });
    }
  });

  // Handle ad lifecycle events
  rewarded.on('load', async () => {
    console.log('Rewarded ad loaded');
    await rewarded.load(); // Preload next ad
  });

  rewarded.on('show', () => {
    console.log('Rewarded ad shown');
  });

  rewarded.on('dismiss', async () => {
    console.log('Rewarded ad dismissed');
    await rewarded.load(); // Load new ad for future use
  });

  rewarded.on('error', (error) => {
    console.error('Error with rewarded ad:', error);
  });

  // Initial ad load
  await rewarded.load();
}
        

Notas de implementación:

  • Conversión de ingresos: AdMob devuelve los ingresos en micros (millonésimas); divídalos por 1.000.000 para convertirlos a dólares.
  • Validación de datos: Asegúrese de que los ingresos son superiores a 0 y de que existe un código de moneda antes de enviar los datos.
  • Gestión de eventos: Registre todos los eventos del ciclo de vida (cargar, mostrar, rechazar, error) para una gestión completa de los anuncios
  • Precarga: Cargue el siguiente anuncio inmediatamente después de la salida para minimizar los tiempos de espera.

Informes directos de la plataforma

Para escenarios sin integración de plataforma de mediación o para implementaciones de anuncios personalizadas, informe directamente de los ingresos por anuncios utilizando datos validados.

Informes manuales de ingresos publicitarios

Crear función auxiliar

Cree una función reutilizable con validación completa para informar sobre los ingresos publicitarios de cualquier fuente.

JavaScript
// Reusable ad revenue reporting function with validation
function reportAdRevenue(mediationPlatform, currencyCode, revenueAmount) {
  // Validate mediation platform
  if (!mediationPlatform || typeof mediationPlatform !== 'string' || mediationPlatform.trim() === '') {
    console.error('Invalid mediation platform:', mediationPlatform);
    return;
  }

  // Validate currency code (ISO 4217 format)
  if (!currencyCode || typeof currencyCode !== 'string' || currencyCode.length !== 3) {
    console.error('Invalid currency code:', currencyCode);
    return;
  }

  // Validate revenue amount
  if (typeof revenueAmount !== 'number' || revenueAmount <= 0 || isNaN(revenueAmount) || !isFinite(revenueAmount)) {
    console.error('Invalid revenue amount:', revenueAmount);
    return;
  }

  try {
    // Create SingularAdData object
    const adData = new cordova.plugins.SingularCordovaSdk.SingularAdData(
      mediationPlatform,
      currencyCode.toUpperCase(), // Ensure uppercase
      revenueAmount
    );

    // Report Ad Revenue to Singular
    cordova.plugins.SingularCordovaSdk.adRevenue(adData);

    // Log success
    console.log('Ad Revenue reported successfully:', {
      mediationPlatform: adData.mediationPlatform,
      currencyCode: adData.currencyCode,
      revenueAmount: adData.revenueAmount
    });
  } catch (error) {
    // Log any errors that occur during the process
    console.error('Failed to report Ad Revenue:', error);
  }
}

// Usage examples
document.addEventListener('deviceready', function() {
  // Example: Report revenue from a custom ad network
  reportAdRevenue('CustomNetwork', 'USD', 0.05);
  
  // Example: Report revenue from direct ad placement
  reportAdRevenue('FacebookAudienceNetwork', 'EUR', 0.03);
}, false);

Funciones de validación:

  • Validación de plataforma: Garantiza que el nombre de la plataforma no esté vacío y esté recortado.
  • Validación de divisas: Verifica el formato de código ISO 4217 de tres letras y lo convierte a mayúsculas.
  • Validación de ingresos: Comprueba si el número es positivo, excluye NaN e Infinito
  • Gestión de errores: El bloque Try-catch evita bloqueos y proporciona un registro detallado de errores.

Mejores prácticas

Validación de datos

Implemente una validación robusta para evitar que datos incorrectos lleguen a Singular analytics.

  • Ingresos positivos: Compruebe siempre que los ingresos son superiores a cero antes de enviar los datos.
  • Moneda válida: Utilice códigos ISO 4217 y verifique que las cadenas no estén vacías.
  • Consistencia de plataforma: Utilice nombres de plataforma coherentes en toda su aplicación (por ejemplo, siempre "AdMob", no "Admob" o "ADMOB")
  • Comprobación de tipos: Verifique que los tipos de datos coincidan con los valores esperados (número para ingresos, cadena para moneda/plataforma).
  • Comprobación de nulos: Maneje adecuadamente los valores nulos, indefinidos y vacíos.

Crítico: Los datos de ingresos publicitarios incorrectos no pueden corregirse retroactivamente en Singular. Valide siempre los datos antes de llamar a cordova.plugins.SingularCordovaSdk.adRevenue().


Gestión de divisas

Asegúrese de que los informes de divisas son precisos para aplicaciones multiregión y diversas redes publicitarias.

  • Verifique la moneda de la plataforma: Compruebe la documentación de su plataforma de mediación para conocer la divisa predeterminada (la mayoría utiliza USD).
  • Formato coherente: Utilice siempre códigos ISO 4217 de tres letras en mayúscula.
  • Sin conversión: Comunique los ingresos en la divisa proporcionada por la red publicitaria; no convierta divisas.
  • Divisa por red: Diferentes redes publicitarias pueden informar en diferentes monedas; verifique cada una por separado.

Consideraciones específicas de la plataforma

Tenga en cuenta las diferencias entre plataformas en cuanto a formatos y unidades de notificación de ingresos.

  • AdMob: Los ingresos se informan en micros; divídalos por 1.000.000 para convertirlos a dólares en todas las plataformas cuando utilice AdMob Plus.
  • TradPlus: eCPM en mili-unidades; divídalo por 1.000 para convertirlo a dólares.
  • AppLovin: ingresos en dólares; utilice el valor directamente.
  • IronSource: Ingresos en dólares - valor de uso directo

Gestión de errores y registro

Implemente un registro exhaustivo para depurar y supervisar el seguimiento de los ingresos publicitarios.

  • Fallos de validación: Registre mensajes de error detallados cuando falle la validación, incluidos los valores reales recibidos.
  • Registro de éxitos: Registre los informes de ingresos correctos durante el desarrollo para verificar la integración
  • Registro de producción: Reduzca la verbosidad de los registros en producción manteniendo los registros de errores.
  • Modo de depuración: Implementación de un indicador de depuración para activar el registro detallado para la resolución de problemas.

Pruebas y validación

Verifique la implementación del seguimiento de ingresos publicitarios antes de desplegarlo en producción.

Lista de comprobación de pruebas

Pruebas de validación

  1. Anuncios de prueba de carga: Utilice ID de unidades de anuncios de prueba de su plataforma de mediación para verificar la carga de anuncios.
  2. Verifique las devoluciones de llamada de ingresos: Confirme que los controladores de eventos de pago se activan cuando los anuncios de prueba generan ingresos.
  3. Compruebe los formatos de datos: Compruebe que los valores de ingresos se convierten correctamente (micros a dólares para AdMob)
  4. Validar códigos de moneda: Asegúrese de que los códigos de moneda coinciden con el formato esperado (USD, EUR, etc.)
  5. Supervise los registros de la consola: Revise la salida de la consola para los informes de ingresos correctos y los errores
  6. Pruebe escenarios de error: Pasar intencionadamente datos no válidos para verificar que la lógica de validación detecta errores.

Verificación del Cuadro de Mando Singular

Después de la implementación, verifique que los datos aparecen correctamente en su panel de Singular.

  1. Espere a que se procesen: Espere entre 24 y 48 horas para que los datos iniciales se procesen y aparezcan en los informes.
  2. Compruebe los informes de ingresos publicitarios: Vaya a los informes de atribución de ingresos publicitarios en el panel de Singular.
  3. Verifique la atribución de campañas: Confirme la atribución de ingresos a las campañas de adquisición correctas
  4. Validar moneda: Asegúrese de que los ingresos aparecen en la moneda correcta
  5. Supervisar el desglose de plataformas: Compruebe que los nombres de las plataformas (AdMob, etc.) aparecen correctamente

Asistencia: Si los datos no aparecen después de 48 horas o parecen incorrectos, póngase en contacto con el servicio de asistencia de Singular con la clave del SDK, los detalles de la plataforma y los resultados del registro de muestra para obtener ayuda con la solución de problemas.