De un vistazo: Registra eventos in-app enriquecidos post-instalación (como un inicio de sesión, un registro o una compra in-app) atribuidos a fuentes de medios y campañas.
¿Por qué registrar los eventos in-app enriquecidos?
Los eventos in-app enriquecidos brindan información sobre lo que está sucediendo en tu aplicación y son la herramienta ideal para determinar el valor de los usuarios de la aplicación y la calidad del tráfico que se origina desde diferentes fuentes de medios. El registro de eventos in-app te ayuda a medir los KPI como el retorno de la inversión (ROI) y el valor de vida útil (LTV).
Cuando los usuarios efectúan registros, finalizan tutoriales, agregan artículos al carrito de la compra o hacen compras, los datos de los eventos in-app pueden registrar los eventos junto con los detalles. La implementación de eventos in-app es obligatoria para todos los propósitos de análisis post-instalación.
Acerca de los eventos in-app
Un evento in-app se compone de un nombre de evento y puede incluir los parámetros del evento. Cuando agregas parámetros del evento a un evento in-app, se lo conoce como un evento in-app enriquecido. Los parámetros del evento te proporcionan más contexto e información sobre el evento que está ocurriendo. Por ejemplo, si bien es útil saber que un usuario hizo una reserva, los parámetros del evento pueden proporcionarte detalles como el tipo de compra, el destino y los ingresos.
Consejo
¿Quieres saber más sobre los eventos in-app? Consulta este breve curso informativo en el portal de aprendizaje de AppsFlyer.
Eventos predefinidos y personalizados
Los eventos in-app que deseas enviar requieren que tu desarrollador implemente el código cuando corresponda en tu aplicación. Los nombres de eventos y los parámetros de eventos se clasifican de la siguiente manera:
-
Predefinidos: se trata de nombres de eventos y parámetros de eventos que se utilizan habitualmente entre diferentes aplicaciones. Recomendamos usar nombres de eventos y parámetros de eventos predefinidos tanto como sea posible por los siguientes motivos:
- El nombre predefinido permite la asignación automática de eventos a los partners.
- Si AppsFlyer decide cambiar el nombre de cualquier evento o parámetro de evento, tu implementación será compatible con las versiones anteriores.
- Personalizados: estos son nombres de eventos y parámetros que tú defines para situaciones específicas de los usuarios que ocurren en tu aplicación. Puedes usar cualquier nombre de evento personalizado o cadena de nombre de parámetro, pero ten en cuenta que los eventos personalizados necesitan mantenimiento por parte de tu desarrollador. Consulta los Consejos y Limitaciones.
Eventos generadores de ingresos
Cada vez que envías eventos in-app como una compra o una reserva de vuelo, los envías con sus ingresos asociados. El único parámetro que tiene ingresos en los eventos in-app esaf_revenue
También puedes registrar ingresos negativos en caso de que un usuario cancele una compra o si emites un reembolso. Para registrar ingresos negativos, lo único que tienes que hacer es agregar el signo menos (-) al valor de ingresos que pasas a af_revenue
af_revenue es el único parámetro que acumula los ingresos de tus usuarios. Utilízalo siempre con eventos in-app que representen la generación real de ingresos en tu lógica de negocio.
af_revenue también puede tener valores de ingresos negativos si necesitas registrar eventos como transacciones canceladas o reembolsos.
El valor de ingresos debe contener solo números (y un punto decimal, si es necesario):
- No incluyas ningún otro carácter ni formatees el valor de ingresos de ninguna otra manera. Esto significa que no debes usar comas, signos de divisa (por ejemplo $), caracteres especiales o texto.
- AppsFlyer proporciona el valor de ingresos con una precisión de hasta cinco posiciones decimales.
- El rango de este valor debe ser de -10 000 a 10 000 en dólares o el monto equivalente en la divisa original. Los valores fuera de este rango se incluyen en los reportes de raw data, pero no en los reportes agregados.
- Ejemplo: 1234.56
- Cuando los ingresos se envían como una cadena, el valor dentro de las comillas debe ser válido. Por ejemplo: "1234.56".
Nota:
- AppsFlyer muestra los ingresos exactos, tal como se reciben del SDK. No incluyen los cálculos de IVA o comisiones de la tienda de aplicaciones, etc., a menos que hubieran sido incluidos por el desarrollador del lado del SDK antes de ser enviados a AppsFlyer.
af_currency representa la divisa utilizada en af_revenue (o af_price). Si falta af_currency en los parámetros del evento, AppsFlyer lo envía con el valor predeterminado "USD".
Puedes utilizar af_price como un parámetro monetario que no se cuenta como ingreso (como en un evento de "Agregar al carrito"). Este parámetro se refiere al precio del artículo individual. El monto total de todas las compras aparece bajo el parámetro af_revenue.
Divisa de ingresos
Es importante entender cómo AppsFlyer maneja la configuración de la divisa y la conversión de la misma.
AppsFlyer maneja la diferencia entre la divisa configurada en la aplicación y la divisa de los eventos in-app utilizando la conversión de divisa.
El diagrama anterior muestra el siguiente proceso:
- Los eventos in-app se envían: una divisa diferente para cada evento
- AppsFlyer normaliza todas las divisas a USD
- AppsFlyer procesa los datos de ingresos
- Los datos de ingresos en el panel de control se muestran en la divisa configurada en la aplicación
- AppsFlyer rellena los datos de ingresos en los reportes de raw data tanto en la divisa configurada en el evento como en la aplicación
AppsFlyer utiliza los Tipos de cambio abiertos para la conversión de divisas. El tipo de cambio se actualiza cada hora. Cada vez que AppsFlyer realiza una conversión de divisas, utiliza el tipo de cambio de la última actualización horaria.
Conversión de divisas
Ejemplo
En la configuración de tu aplicación, estableces la divisa en GBP. Un usuario de Francia compra un producto utilizando tu aplicación. El precio se cotiza en EUR (€). El evento in-app que envías a AppsFlyer tiene este aspecto:
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"EUR");
AppsFlyerLib.getInstance().trackEvent(getApplicationContext() , AFInAppEventType.PURCHASE , eventValue);
En este caso, AppsFlyer convierte los ingresos de EUR a USD y luego a GBP. Supongamos que el tipo de cambio es de 1 € = 1,13 $. Así que 200 € se convierten en 226,85 $. A continuación, AppsFlyer convierte de USD a GBP. Supongamos que el tipo de cambio es de 1 $ = 0,78 £. Así, 226,85 $ se convierten en 176,92 £.
Visualización de la moneda
La divisa se establece en la configuración de la aplicación. La divisa que establezcas en la configuración de la aplicación es la que aparece en el panel de control. Independientemente de la divisa con la que se envíen los eventos in-app, los ingresos en el panel de control siempre aparecen en la divisa que se haya establecido en la configuración de la aplicación.
Ejemplo
Supongamos que envías eventos in-app con divisas distintas a la establecida en la configuración de la aplicación, o sin ninguna divisa. En este ejemplo, la divisa configurada en la aplicación se establece en GBP.
Envías tres eventos in-app a AppsFlyer.
- El evento A tiene ingresos de 234 y GBP como divisa
- El evento B tiene ingresos de 171 y EUR como divisa
- El evento C tiene ingresos de 171 pero no se especifica la divisa
Datos de ingresos en el panel de control
Los ingresos que aparecen en el panel de control son el valor convertido de la divisa del evento in-app a USD y luego a la divisa configurada en la aplicación.
Si no se especifica ninguna divisa en el evento, AppsFlyer utiliza por defecto USD. El panel de control muestra el evento y los ingresos de la siguiente manera:
Eventos in-Apps | Usuarios únicos | Total de Eventos | Ingresos |
---|---|---|---|
A | 1 | 1 | 234 £ |
B | 1 | 1 | 149,4 £: convertido de EUR a USD y luego a GBP. |
C | 1 | 1 | 132,9 £: por defecto en USD al no especificar la divisa. Convertido de USD a GBP directamente. |
Datos de ingresos en los reportes de raw data
Si estableces la divisa en GBP en la configuración de la aplicación, pero envías eventos in-app con divisas diferentes, el reporte de raw data muestra los ingresos tanto en la divisa configurada en la aplicación como en la divisa de los eventos in-app.
Si estableces la divisa en GBP en la configuración de la aplicación pero envías eventos in-app sin divisa, el reporte de raw data muestra los ingresos en la divisa configurada en la aplicación y en USD.
El reporte de raw data de los eventos in-app muestra el evento y los ingresos de la siguiente manera:
Evento | Ingresos del evento | Divisa de ingresos del evento | Ingresos por eventos en GBP |
---|---|---|---|
A | 234 | GBP | 234 |
B | 171 | EUR | 149,4: convertido de EUR a USD y luego a GBP. |
C | 171 | USD | 132,9 tiene un valor predeterminado en USD, ya que no se especifica ninguna divisa. Convertido de USD a GBP directamente. |
Envío de eventos
Hay varias formas de enviar eventos in-app a AppsFlyer:
- SDK de AppsFlyer: esta es la forma más común de enviar eventos. Puedes usar la API de eventos in-app de AppsFlyer a nivel del SDK para enviar eventos in-app enriquecidos que registren las acciones de tus usuarios en la aplicación.
- API de servidor a servidor: usa la API de servidor a servidor para enviar eventos que ocurran fuera de la aplicación móvil directamente a AppsFlyer. Por ejemplo, si tienes un usuario que está activo tanto en la interfaz web como en la móvil, puedes registrar los eventos provenientes de ambas fuentes y atribuirlos al mismo usuario en AppsFlyer. Puede ser un evento in-app u otros, como eventos de sitios web, de Call Center o compras en tu tienda física.
- Validación de recibos: la validación de recibos es un mecanismo seguro mediante el cual la plataforma de pagos, por ejemplo, Apple y Google, valida que la compra in-app se realizó según lo reportado. Validar la compra es la herramienta principal para evitar eventos generadores de ingresos fraudulentos. También te ayuda a conocer tus ingresos reales y descartar las compras in-app incompletas.
- Aplicaciones híbridas: las aplicaciones híbridas, que combinan vistas nativas y contenido HTML, también pueden atribuir eventos in-app. Sin embargo, debido a que el SDK solo puede enviar eventos desde el lado nativo, los desarrolladores deben reenviar todos los datos de eventos al código nativo.
Configuración de eventos in-app
El proceso de configuración de eventos in-app requiere que el marketer y el desarrollador trabajen juntos de la siguiente manera:
Paso | Rol | Tarea | Detalles |
---|---|---|---|
1 |
Marketer |
Determina los eventos in-app que deseas medir. Define y comunica los nombres de eventos y los parámetros de eventos a tu desarrollador. |
Te recomendamos comenzar con 3-5 eventos, que puedes usar como KPI para medir la calidad de tus usuarios, p. ej. compras, registro y acciones de compartir. Los parámetros de evento son opcionales y puedes utilizar cualquier parámetro de evento con cualquier nombre de evento. Consulta Eventos recomendados por vertical comercial para conocer los eventos in-app típicos. |
2 | desarrollador |
Implementa el código en tu aplicación donde corresponda. |
La documentación para desarrolladores se encuentra aquí. |
3 [Opcional] | Marketer | Trabaja con tu desarrollador para configurar el campo de ID de usuario de cliente (CUID). |
Este campo ayuda a enriquecer los datos de eventos in-app haciendo referencia cruzada de los datos de atribución de AppsFlyer con tus otros datos usando CUID como clave. |
4 [Opcional] | Marketer | Asigna eventos a partners relevantes en el panel de control. | Esta es una tarea continua, dependiendo de los partners con los que te integres. |
Definir los eventos in-app
Una vez que determines los eventos in-app que deseas medir, usa nuestro generador de eventos in-app para definir los eventos y los parámetros de la siguiente manera:
- Selecciona un nombre de evento que sea más adecuado para el escenario que deseas atribuir.
- Selecciona los parámetros de eventos que deseas asociar con el evento. Elige parámetros que proporcionarán contexto adicional al evento y enriquecerán los datos.
- Descarga el archivo completo del generador de eventos in-app y luego compártelo con tu desarrollador.
Ejemplo
Un marketer de una aplicación de comercio electrónico quiere registrar el tipo de contenido que ven los usuarios para comprender mejor cuáles son las categorías más populares y conectar las visualizaciones de productos con las ventas de productos.
En la siguiente tabla se muestra un ejemplo de la estructura de eventos que el marketer pasa al desarrollador:Nombre del evento | Parámetros del evento | Valores de parámetro | ¿Cuándo se desencadena el evento? |
---|---|---|---|
af_content_view | af_price | Precio del producto |
Cuando un usuario visualiza la página de detalles de un producto específico |
af_content_type | Nombre de la categoría del producto, por ejemplo, zapatos | ||
af_content_id |
ID de producto, por ejemplo, SKU |
Eventos recomendados por vertical comercial
La siguiente tabla brinda enlaces a artículos que incluyen ejemplos y flujos de los eventos in-app típicos que sugerimos registrar por vertical.
Ver datos de eventos in-app
Los eventos in-app se atribuyen a la fuente de medios responsable de la instalación durante toda la vida útil del usuario. Los datos de eventos se muestran como valor de vida útil (LTV) o como datos de actividad.
Puedes ver los datos de tus eventos in-app en estas ubicaciones:
- Página de información general del panel de control: muestra el rendimiento de adquisición de usuarios (UA) de LTV en tiempo real. Nota: Esto incluye los ingresos divididos entre los usuarios orgánicos y no orgánicos reportados a través de eventos in-app, y los ingresos de retargeting que se atribuyeron dos veces.
- Página de eventos: muestra el valor de vida útil (LTV) del rendimiento de los eventos in-app en todas las fuentes de medios.
- Página de actividad: muestra las actividades in-app para el rango de fechas seleccionado.
-
Reporte de raw data de eventos in-app: muestra datos de actividad, es decir, una lista cronológica de las acciones realizadas por toda tu base de usuarios. Este reporte incluye valores de parámetros de eventos, por ejemplo:
{ "af_level":"10", "af_score":"3387", "arena":"7", "char_type":"paladin" }
Ten en cuenta que los reportes de raw data son una función premium.
Consejos
Ten en cuenta lo siguiente al definir los nombres y parámetros de eventos en la aplicación:
- Para garantizar la coherencia de los datos en los reportes de raw data, te recomendamos definir y usar los mismos nombres y estructuras de eventos in-app en todas las plataformas.
- Utiliza un número mínimo de eventos para facilitar la comparación de la calidad de los usuarios procedentes de diferentes fuentes.
- Es importante que asegures la privacidad de tus usuarios. No completes los valores de eventos in-app con datos restringidos que puedan identificarlos directamente. Por ejemplo, dirección de correo electrónico, nombre, número de identidad y, en algunos lugares, código postal. Para obtener más información sobre los datos restringidos, consulta la Política de privacidad de los servicios.
- Ten en cuenta que AppsFlyer recopila la dirección IP de los dispositivos durante los engagements. En algunas jurisdicciones o escenarios de uso, la dirección IP se puede considerar como información de identificación personal (PII). Usamos la dirección IP para obtener la ubicación geográfica amplia (ciudad, nivel de distrito) del dispositivo, pero no la dirección específica. Si es necesario, puedes seleccionar enmascarar las direcciones IP para que no aparezcan en los reportes de raw data.
- Los eventos in-app son la única fuente de datos sobre ingresos en AppsFlyer. Puedes adjuntar un valor de ingresos específico a cada evento y verlo en el panel de control de tu aplicación. Aprender más sobre los parámetros de monetización.
Limitaciones
Ten en cuenta lo siguiente al definir los nombres y parámetros de eventos en la aplicación:
- Recomendamos usar solo caracteres alfanuméricos en minúscula (a-z y 0-9) para los nombres de tus eventos in-app. Los nombres de eventos distinguen entre mayúsculas y minúsculas. Esto significa que af_purchase y af_PURCHASE son dos eventos diferentes en el raw data. Sin embargo, en los reportes de estadísticas agregadas (por ejemplo, General o Eventos) se pueden mostrar como un solo evento.
- Hay un límite de cardinalidad de 300 eventos únicos por día. Aprender más
- Los usuarios únicos solo se contabilizan para los primeros 100 eventos después de instalar la aplicación.
- Los nombres de eventos no pueden comenzar con estos caracteres: " = + -
- Los valores de eventos no deben contener el carácter +, excepto en URL codificadas o codificadas según ASCII.
- Los nombres de eventos no pueden contener espacios vacíos. Puedes usar espacios subrayados (guiones bajos) antes o después del nombre del evento.
- Los valores de los eventos no deben superar los 2000 caracteres, ya que podrían acortarse en los reportes de raw data.
- Si incluyes la URL de referencia como un valor de evento, debe estar codificada como URL.
- Anuncios de Meta tiene algunas limitaciones con respecto a los nombres y parámetros de los eventos. Puedes leer acerca de estas limitaciones aquí.
Preguntas frecuentes
La siguiente sección incluye varias preguntas frecuentes sobre los eventos in-app.
¿Cómo utilizo el parámetro de ingresos?
Puedes enviar valores de ingresos con cualquier nombre de parámetro y evento. Sin embargo, para registrar los ingresos (incluidos los ingresos negativos) en el raw data y los datos agregados de AppsFlyer, DEBES usar el parámetro af_revenue. Utilízalo siempre con los eventos in-app que representan una generación real de ingresos en tu lógica de negocios.
af_currency representa la divisa utilizada en af_revenue (o af_price). Si falta af_currency en los parámetros del evento, AppsFlyer lo envía con el valor predeterminado "USD".
Para más información acerca del parámetro af_revenue, consulta la guía de atribución de ingresos.
¿Cómo atribuye AppsFlyer los eventos?
Los eventos in-app se atribuyen a la fuente de medios original de la instalación de la aplicación.
Tras la instalación de una aplicación (primer inicio de aplicación), AppsFlyer utiliza varios métodos de atribución para determinar la atribución de la instalación. Al mismo tiempo, el SDK de AppsFlyer crea un nuevo ID de AppsFlyer único, que está asociado con los detalles de atribución.
Cada evento in-app resultante realizado por el mismo dispositivo en la aplicación tiene este ID. Esto permite a AppsFlyer atribuir el evento a la fuente de medios original. Los anunciantes pueden usarlo para seguir la trayectoria completa del usuario en su aplicación.
Los eventos de usuarios recientemente reorientados pueden tener doble atribución.
AppsFlyer atribuye los eventos de instalaciones atribuidas como orgánicas cuando:
- Pasan más de 24 meses desde la fecha de instalación
- Los términos de la fuente de medios dictan eliminar los datos de nivel de usuario
- El usuario elimina los datos almacenados de la aplicación en el dispositivo, forzando la creación de un nuevo ID de AppsFlyer.
¿Se registran los eventos si un dispositivo está sin conexión?
Si un usuario inicia un evento cuando no tiene conexión a Internet, AppsFlyer igualmente podrá registrarlo. Así es como funciona:
- El SDK envía los eventos a los servidores de AppsFlyer y espera una respuesta satisfactoria.
- Si el SDK no recibe una respuesta satisfactoria, el evento se almacena en el caché.
- Una vez recibida la respuesta satisfactoria, el evento almacenado se vuelve a enviar al servidor.
- Si hay varios eventos en el caché, se envían al servidor uno tras otro.
Nota
El caché del SDK puede almacenar hasta 40 eventos, lo que significa que solo se guardarán los primeros 40 eventos que ocurran sin conexión. Todo lo que suceda después se descartará, hasta la próxima respuesta satisfactoria.
La hora del evento que se muestra en el raw data es la hora en que se envía el evento a AppsFlyer después de que el dispositivo vuelva a tener conexión. No es la hora en que ocurrió el evento.
¿Qué son los eventos in-app complejos y cómo configurarlos?
Los eventos in-app complejos permiten enviar varios eventos en una misma llamada a la API.
Son útiles cuando quieres ver agrupadas varias acciones de usuario que estén estrechamente relacionadas, p. ej. agregar varios productos al carrito en una sola sesión.
Ejemplo:
{
"af_revenue":"50.87",
"af_currency":"USD",
"af_receipt_id":"57601333",
"product":[
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1177_8185",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"0153_9077",
"af_price":"14.99",
"af_quantity":"1"
}
]
}
Precaución
Los eventos in-app complejos generan problemas de postback con Anuncios de Meta y Criteo. Si necesitas que el evento se asigne completamente con Anuncios de Meta y Criteo, envía eventos separados por acción del usuario (por ejemplo, enviar un evento Agregar al carrito por cada artículo agregado). Puedes agrupar estos eventos utilizando el raw data de los eventos in-app.
¿Puedo agregar varios artículos a una sola transacción?
Puedes agregar múltiples artículos a una sola transacción. En lugar de utilizar valores únicos por parámetro de evento, puedes usar múltiples artículos para describir la transacción, separados por comas. El formato debe ser una cadena JSON.
Ejemplo
En una misma transacción, el Sr. Smith compra dos camisas idénticas, un par de zapatos y un sombrero en una tienda en línea de los EE. UU. La secuencia en la que se enumera cada artículo debe ser idéntica para cada parámetro.
"{\"af_content_id\": [\"123\",\"988\",\"399\"], \"af_quantity\": [\"2\",\"1\",\"1\"], \"af_price\": [\"25\",\"50\",\"10\"], \"af_revenue\": \"110\", \"af_currency\": \"USD\"}"
Se envían varios elementos como una matriz en postbacks. Actualmente, Anuncios de Meta y Twitter no pueden analizar correctamente los parámetros de matrices. Para ayudar con este problema, AppsFlyer suma la cantidad de elementos (af_quantity) en lugar de enviarlos a estas SRN como una matriz. En nuestro ejemplo, Anuncios de Meta obtiene af_quantity=4.
Nota
Se pueden usar múltiples artículos con los siguientes eventos in-app:
af_add_to_cart, af_add_to_wishlist, af_tutorial_completion, af_initiated_checkout, af_purchase, af_rate, af_spent_credits, af_content_view, af_travel_booking, af_update
¿Cómo maneja AppsFlyer la desduplicación de eventos?
Tenemos un mecanismo de desduplicación de eventos in-app. El mismo controla todos los eventos in-app para verificar si en los 10 segundos previos se ha registrado algún otro evento in-app idéntico proveniente del mismo appsflyer_id. De ser así, el mecanismo directamente elimina el duplicado.
Dos eventos se consideran idénticos si los campos que se detallan a continuación coinciden en ambos:
- Nombre del evento
- Valor del evento
- ID de aplicación
- ID de AppsFlyer
Nota
La desduplicación solo funciona para los eventos in-app enviados desde el SDK.
Los eventos in-app S2S no se desduplican.
¿Cuánto tiempo AppsFlyer retiene datos a nivel usuario y cuáles son las obligaciones respecto a la eliminación?
AppsFlyer retiene datos a nivel usuario (raw data) durante 24 meses, excepto cuando la ley indique, exija o permita lo contrario. Algunas SRN o partners requieren proveedores de atribución, incluido AppsFlyer, para eliminar los datos relacionados con las SRN/partners a nivel usuario antes de que el período de 24 meses caduque.
Después de la eliminación, los eventos relacionados con los usuarios eliminados se muestran como orgánicos. Los datos agregados anteriores no se modifican. Para obtener más información, consulta Obligaciones respecto a la eliminación y retención de datos.
¿Necesito agregar el parámetro OS (sistema operativo) a mis eventos?
- El SDK de Android y el SDK de iOS agregan automáticamente el parámetro OS (sistema operativo).
- Para la API S2S, a partir del 1 de julio de 2021, debes enviar el parámetro del SO (sistema operativo) para las aplicaciones de iOS. Si no envías este parámetro, se considera que los datos proceden de un usuario de iOS 14.5 y esto afecta la forma en que se pone a disposición el raw data.