API de eventos de servidor a servidor para móviles (S2S-mobile)

Resumen: Envía eventos desde tus servidores a AppsFlyer para medir los eventos móviles que ocurren fuera de la aplicación.

altS2S_us-es.pngalt

API de eventos de servidor a servidor para móviles

Para apps de iOS, a partir de iOS 14, debes enviar el parámetro os (sistema operativo). 

La plataforma AppsFlyer atribuye y registra los eventos de las apps móviles enviados por el SDK de AppsFlyer y por las API. Utiliza la API S2S para reportar eventos que ocurren fuera de la aplicación; por ejemplo, cuando un usuario renueva su suscripción mediante la interfaz web. Los eventos S2S, una vez registrados, están disponibles en toda la plataforma, incluyendo paneles, datos en bruto y análisis. Para eventos web de PBA, consulta Web S2S para PBA.

AppsFlyer completa los eventos S2S con:

  • Valores enviados en el mensaje S2S.
  • Algunos valores de atribución de instalación de AppsFlyer, como la hora de instalación y la fuente de medios.

Para enviar eventos a través de API, indica a tu desarrollador que siga las instrucciones de API de eventos de servidor a servidor.

Completando parámetros

Diferencias entre orgánico y no orgánico

Cuando AppsFlyer procesa eventos S2S dentro de la app, los campos de atribución se rellenan usando el ID de AppsFlyer para identificar el evento de instalación asociado que precedió a los eventos dentro de la app.

Esto significa que algunos datos que AppsFlyer asocia con eventos S2S no orgánicos dentro de la app, no se asocian con eventos S2S orgánicos dentro de la misma.

Ejemplo

Por ejemplo, si comparas informes de datos en bruto de eventos S2S dentro de la app, observarás que los eventos no orgánicos contienen datos que los orgánicos no tienen.

Los eventos no orgánicos dentro de la app incluyen datos sobre la fuente del medio, la campaña, el tipo de interacción atribuida y el tiempo de dicha interacción.

Mientras que los eventos orgánicos dentro de la app ocurren tras una instalación orgánica. Las instalaciones orgánicas no tienen datos relacionados con la campaña, la fuente de medios, el tipo de contacto atribuido y el tiempo de instalación.

Asignación del ID de AppsFlyer al ID de usuario del cliente (CUID)

Es necesario desarrollar lógica de backend para obtener los valores y completar los parámetros. A continuación se muestra cómo obtener el ID de AppsFlyer:

  • El ID de AppsFlyer es esencial y se utiliza para atribuir eventos.
  • Se genera cuando un usuario instala la aplicación móvil por primera vez.
  • Para poder relacionar su CUID con el ID de AppsFlyer, debe configurar el CUID en la aplicación. 

Para facilitar la identificación del usuario que realizó cada evento, implemente el siguiente proceso:

  • Configure el ID de usuario del cliente cuando el usuario instale la aplicación.
  • Los informes de datos brutos de AppsFlyer incluyen el CUID y el ID de AppsFlyer. Utilice una de las herramientas de entrega de datos o la API Push de AppsFlyer para obtener esto. 
  • Use los informes de datos brutos para hacer coincidir el CUID con el ID de AppsFlyer. 
  • El ID de AppsFlyer está disponible en el SDK integrado en su aplicación (Android/iOS).
  • Relacione el ID de AppsFlyer con el ID de usuario del cliente en sus sistemas internos (importante para uso futuro).

Una vez que asigne el ID de AppsFlyer a su CUID, podrá relacionar al usuario con los eventos realizados. Después, puede obtener otros valores (valor del evento, moneda del evento, hora del evento, etc.) y enviarlos de servidor a servidor en la aplicación.

Cómo obtener el ID de AppsFlyer

appsflyer_id es un parámetro obligatorio en los mensajes de eventos de servidor a servidor. AppsFlyer utiliza este parámetro para atribuir el evento al dispositivo original y a la fuente de medios atribuida. Puede obtener el ID usando uno de los siguientes métodos:

Marcar la hora eventos S2S

Diagrama lógico de timestamping altalt

Cuando los eventos S2S llegan en gran cantidad a AppsFlyer, se les asigna una marca de tiempo según los valores de su propiedad eventTime y la hora de llegada. La propiedad eventTime indica el momento en el que ocurre el evento dentro de la aplicación.

Al llegar, los eventos se marcan con el siguiente criterio de tiempo:

  • Si el parámetro eventTime no está incluido en el registro del evento, la hora del evento se establece a la hora de llegada del mensaje HTTP.
  • Los eventos que llegan antes de las 02:00 UTC se marcan con el valor de eventTime. Es decir, para que los eventos se marquen con eventTime, deben reportarse el mismo día del evento o al día siguiente antes de las 02:00 UTC.
  • Los eventos que ocurrieron el día anterior o antes, y llegan después de las 02:00 UTC, se registran con la hora de llegada (la hora de la llamada API).
  • Eventos que llegan con un valor eventTime futuro (eventTime > hora de llegada):
    • Si el eventTime reportado y la hora de llegada están en el mismo día del calendario, el evento se marca con el valor eventTime.
    • Si el eventTime reportado es para el día siguiente en el calendario, el evento se marca con la hora de llegada.
  • Los eventos con un valor eventTime no válido se registran con la hora de llegada del mensaje HTTP.

Ejemplo

  • Se envía un evento con eventTime = lunes 21:00.
Llegada a AppsFlyer Marca de tiempo de AppsFlyer Observación
Martes 01:00 Lunes 21:00 Llegó antes del cierre de operaciones. El tiempo se ajusta al valor eventTime.
Miércoles 09:00 Miércoles 09:00 Llegó después del cierre de operaciones. La hora se ajusta a la hora de llegada.

Envío de ingresos negativos

Se pueden enviar eventos con un valor de ingresos negativo. Por ejemplo, si se cancela una compra. El parámetro af_revenue puede adoptar valores negativos para registrar este tipo de situaciones. 

Si decide rellenar af_quantity, tal vez desee hacerlo con un valor negativo, según la lógica de su sistema. AppsFlyer no utiliza af_quantity.

Aumentar el volumen de transacciones de datos

Con el uso de un escalado gradual, AppsFlyer puede gestionar un alto volumen de transacciones por segundo (TPS) utilizando soluciones de auto-escalado. Por ejemplo:

  • Comienza con 10 000 transacciones por segundo (TPS) y escala de forma gradual, en intervalos mínimos de 1 minuto.
    • 00:00:00 - enviar 10K TPS (línea base)
    • 00:01:00 - aumentar a 12K TPS
    • 00:02:00 - aumentar a 14K TPS
    • 00:03:00 - aumentar a 16K TPS
    • 00:04:00 - aumentar a 18K TPS
  • Implementa un mecanismo de reintento cuando se reciban errores.

Solución de problemas

Los eventos no se muestran en el panel de control

  • Punto final: Asegúrate de que el punto final usado sea correcto.
  • Verifica que la carga útil incluya los parámetros obligatorios. Consulta aquí.
  • Asegúrate de que el ID de AppsFlyer que usas para disparar el evento sea un appsflyer_id real y esté vinculado a una instalación de aplicación válida. Consulta aquí.
  • Los eventos S2S no permiten múltiples eventos en una sola solicitud S2S. Cada evento debe enviarse por separado.
    • Los eventos pueden enviarse de manera asincrónica para facilitar el tiempo de respuesta.
  • En el panel de resumen, el rango de fechas se refiere a la fecha de instalación de la aplicación (LTV) y no a la fecha del evento.
    • Asegúrate de seleccionar el rango de fechas adecuado.
    • Asegúrate de que el rango de fechas del panel se corresponda con la fecha de instalación del dispositivo (appsflyer_id) y no con la fecha del evento.
  • En los informes de datos brutos de eventos, el rango de fechas se refiere a la fecha del evento y no a la de instalación. 

Los eventos no incluyen ingresos

Si envías eventos S2S y sus ingresos no se registran, asegúrate de que el JSON enviado esté convertido en cadena. La parte más importante es el parámetro de valor del evento en el JSON. Debe estar convertido en cadena como se muestra en el siguiente ejemplo.

"{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\"}"

Si no está codificado como cadena, el valor del evento no se procesa correctamente y los ingresos no se registran.

Los valores de ingresos no deben tener ningún formato. Pueden incluir un punto decimal. No incluya signos o códigos de moneda ni delimitadores ,. Los ingresos pueden estar precedidos por un -.

  • Algunos ejemplos de valores válidos son: 123, -123.45, 123.456
  • Ejemplos de valores no permitidos: 1,234.56, 1,234.

No todos los campos se completan en los eventos S2S.

Los campos de datos sin procesar se llenan exclusivamente con los valores enviados en la llamada S2S (a diferencia de los campos de postback, que pueden llenarse con valores derivados del evento de instalación).

Los siguientes campos no pueden informarse a través de la API S2S y, por lo tanto, no se completan para eventos S2S en los informes de datos sin procesar:

  • Wi-Fi
  • Operador
  • Idioma
  • Modelo del dispositivo
  • Categoría del dispositivo
  • Versión de la aplicación: Puedes utilizar app_version_name.
  • Nombre de la aplicación
  • Agente de usuario

Los eventos S2S dentro de la aplicación están erróneamente atribuidos como orgánicos.

Los eventos S2S, como los de inicio de sesión, pueden llegar a AppsFlyer en cuanto se instala la aplicación y se activa el SDK. Sin embargo, si los eventos S2S dentro de la aplicación llegan antes de que AppsFlyer termine de procesar el evento de instalación, lo cual generalmente tarda entre 20 y 30 segundos o más, pueden ser marcados como eventos orgánicos no atribuidos.

Recomendamos introducir un breve retraso antes de enviar los eventos S2S dentro de la aplicación que ocurren inmediatamente después de la instalación a nuestros servidores.