Saltar al contenido principal
Los Outcomes personalizados de OneSignal le permiten rastrear acciones significativas de usuarios resultantes de notificaciones push y mensajes in-app. Estas acciones—como compras, registros o eventos de aplicación—pueden rastrearse con métricas de conteo, suma y únicas, brindándole información sobre el impacto de sus campañas de mensajería.
Los Outcomes personalizados están disponibles en los planes Professional y Enterprise. Obtenga más información sobre nuestros precios.

Tipos de outcomes y métodos del SDK

Puede activar un Outcome agregando una línea de código cuando un usuario completa una acción específica (por ejemplo, toca “Agregar al carrito” o “Actualizar”).
Tipo de OutcomeMétodo del SDK móvilMétodo del SDK webDescripción
Conteo estándaraddOutcomesendOutcomeAumenta el conteo en 1 cada vez que se llama. Sin seguimiento de valor.
Valor (Suma)addOutcomeWithValuesendOutcomeAumenta el conteo en 1 y la suma por el valor numérico especificado. Útil para rastrear ingresos.
Conteo únicoaddUniqueOutcomesendUniqueOutcomeAumenta el conteo en 1, solo una vez por ventana de atribución. Mejor para acciones de usuario binarias como “Sesión de deslizamiento iniciada” o “CTA tocado”.
Los eventos de outcomes se almacenan localmente en caché si están sin conexión y se reintentan en la siguiente inicialización de OneSignal.

Conteo vs suma

Los outcomes admiten dos métricas clave:
MétricaDescripción
ConteoNúmero de veces que se activó el evento de outcome
SumaTotal de todos los valores numéricos enviados con el outcome (si aplica)
Los outcomes con valores siempre se redondean al número entero más cercano. Ejemplo: Para rastrear ingresos de una compra:
// "Purchase" button pressed in the app
   ...
   OneSignal.Session.addOutcomeWithValue("Purchase", 18.76);

Atribución de outcomes

Cada Outcome se rastrea con un tipo de atribución que explica cómo se generó:
  • directo — el Outcome ocurrió cuando el usuario interactuó directamente con el mensaje. Algunos Outcomes, como os__click y os__confirmed_delivery, solo tienen atribución directa porque ocurren únicamente como resultado del mensaje.
  • influenciado — el Outcome ocurrió dentro de la ventana de tiempo de atribución después de que se envió el mensaje, pero el usuario nunca interactuó directamente con el mensaje.
  • no atribuido — el Outcome ocurrió sin una relación directa o influenciada con el mensaje.
  • total (predeterminado) — la suma de directo + influenciado + no atribuido.

Casos de uso

Sitio de comercio electrónico

Las tiendas en línea pueden usar notificaciones push de OneSignal para llevar a los usuarios de vuelta a carritos abandonados, ventas flash, promociones y más. Con Outcomes, los propietarios de tiendas ahora pueden correlacionar fácilmente las notificaciones push con acciones de usuario como agregar al carrito, compra o cupón canjeado. Para compras, los outcomes van más allá de simples conteos y pueden rastrear montos de compra. Esto permite a los propietarios del sitio ver fácilmente el total de ingresos generados por pushes individuales.
OneSignal.Session.addOutcomeWithValue("Purchase", 18.76);

Aplicaciones sociales

Las aplicaciones sociales pueden querer re-involucrar a los usuarios usando un push para notificarles de una coincidencia o solicitud de amistad, un nuevo me gusta, o simplemente para que comiencen a deslizar. Al usar Outcomes, un desarrollador puede ver si una notificación push llevó a un evento de usuario como iniciar un chat con una coincidencia o una sesión de deslizamiento de 34 segundos. Estos datos pueden luego usarse para refinar estrategias de notificación y segmentación. En el siguiente ejemplo, queremos rastrear si un usuario comenzó a deslizar perfiles de citas después de un push. Dado que no querríamos contar cada deslizamiento como una conversión, usamos sendUniqueOutcome Este outcome “Swipe” solo se atribuirá una vez al push que lo activó. Ejemplos:
  • Si el usuario hizo clic en el push y realizó la acción que llamó a este método, será una atribución directa.
  • Si el usuario recibió el push pero no hizo clic en él y realizó la acción dentro de la ventana de atribución, será una atribución influenciada. Incluso si luego hacen clic en el mismo push y realizan la acción nuevamente, seguirá siendo solo influenciada.
  • Si el usuario realiza el método fuera de una ventana de atribución, no se atribuirá una vez por sesión.
OneSignal.Session.addUniqueOutcome("Swipe");

Pushes clicados por idioma

Dentro de los métodos de escucha de notificación abierta/clicada de nuestro SDK, puede configurar Outcomes para incrementar cuántos dispositivos clicaron un push por su idioma configurado. Esto requerirá algo de código nativo para detectar el idioma del dispositivo, pero luego puede pasar ese idioma al Outcome de esta manera:
  public void notificationOpened(OSNotificationOpenResult result) {
    String languageCode = Locale.getDefault().getLanguage();
    System.out.println("languageCode " + languageCode);
    OneSignal.Session.addOutcome(languageCode);
  }

Pushes clicados por sistema operativo y navegador

Dentro de los métodos de escucha de notificación abierta/clicada de nuestro SDK, puede configurar Outcomes para incrementar qué plataformas específicamente fueron clicadas. Esto es genérico para iOS y Android ya que puede establecer OneSignal.addOutcome("iOS") o OneSignal.addOutcome("Android") en el controlador de clics de su aplicación móvil, pero si también desea rastrear plataformas de push web, puede usar esto por ejemplo:
// Example taken from Stackoverflow: https://stackoverflow.com/questions/11219582/how-to-detect-my-browser-version-and-operating-system-using-javascript
var os = "Unknown OS";
if (navigator.userAgent.indexOf("Win") != -1) os = "Windows";
if (navigator.userAgent.indexOf("Mac") != -1) os = "Macintosh";
if (navigator.userAgent.indexOf("Linux") != -1) os = "Linux";
if (navigator.userAgent.indexOf("Android") != -1) os = "Android";
if (navigator.userAgent.indexOf("like Mac") != -1) os = "iOS";
console.log('Your os: ' + os);

var browserType = "Unknown Browser Type";
if (navigator.userAgent.indexOf("Safari") != -1) browserType = "Safari";
if (navigator.userAgent.indexOf("Chrome") != -1) browserType = "Chrome";
if (navigator.userAgent.indexOf("OPR") != -1) browserType = "Opera";
if (navigator.userAgent.indexOf("Firefox") != -1) browserType = "Firefox";
console.log('Your Browser: ' + browserType);

OneSignal.push(["addListenerForNotificationOpened", function(data) {
OneSignal.Session.sendOutcome(os);
OneSignal.Session.sendOutcome(browserType);
}]);


Deshabilitar el seguimiento de Outcomes

Deshabilite Outcomes específicos para que no se rastreen en el panel Settings > Push & In-App > Outcomes Tracking. Desde aquí, puede hacer clic en el botón Stop Tracking para seleccionar un outcome para dejar de rastrear en el panel. Una vez que haya dejado de rastrear outcomes, los verá listados aquí y puede comenzar a rastrearlos nuevamente haciendo clic en el enlace Start Tracking.

Preguntas frecuentes

¿Cuánto tiempo se almacenan los datos de Outcome?

  • Las notificaciones enviadas desde el panel mantienen sus datos de Outcome para siempre.
  • Las notificaciones enviadas a través de la API tienen una retención de 30 días de outcomes antes de ser eliminados.

¿Qué canales admiten outcomes personalizados?

Actualmente, los outcomes personalizados solo se pueden agregar a acciones en notificaciones push y mensajes in-app. Los Outcomes enviados a través de mensajes in-app se mostrarán como “No atribuido” y establecerán una etiqueta en el dispositivo con el formato: nombre del outcome : true.

¿Puedo exportar Outcomes?

Puede exportar un conjunto de outcomes o todos los outcomes como CSV. También proporcionamos acceso API a outcomes para una notificación individual o para todas las notificaciones.

¿Puedo almacenar cadenas como valores en Outcomes personalizados?

Esto no es compatible.

¿Qué sucede si un dispositivo está sin conexión?

Los datos para outcomes activados se ponen en cola para enviarse a OneSignal una vez que el dispositivo esté en línea nuevamente.

Si un usuario pone la aplicación en segundo plano después de hacer clic en una notificación y luego regresa a ella, activando un Outcome, ¿se cuenta como directo o influenciado?

Siempre que el usuario regrese a la aplicación dentro de los 30 segundos después de ponerla en segundo plano, la sesión aún se considerará la sesión original y obtendrá atribución directa.

¿Cuándo surte efecto la nueva ventana de atribución?

Si cambia la ventana de atribución de 24 horas a 1 hora, por ejemplo, entonces la ventana de 1 hora surtirá efecto por dispositivo una vez que cada dispositivo abra la aplicación desde una sesión completamente nueva. Esta nueva sesión se crea después de 30 segundos de estar fuera de la aplicación.

¿Por qué las sesiones no coinciden con otros análisis?

OneSignal solo cuenta una sesión después de que el usuario haya dejado la aplicación durante más de 30 segundos. Si cierra la aplicación o el sitio web y regresa a ella dentro de los 30 segundos, no será una sesión nueva. Por ejemplo, el análisis de Apple rastrea la sesión como el número de veces que se ha usado la aplicación durante al menos dos segundos. Si la aplicación está en segundo plano y luego se usa nuevamente, eso cuenta como otra sesión.