Saltar al contenido principal

Descripción general

La integración de OneSignal + Elasticsearch permite la sincronización automática de eventos personalizados desde su clúster de Elasticsearch a OneSignal. Esto le permite activar Journeys automatizados y campañas de mensajería personalizadas basadas en datos de comportamiento del usuario almacenados en su motor de búsqueda y análisis.

Requisitos

Elasticsearch

  • Clúster de Elasticsearch (versión 7.0 o superior recomendada)
  • Credenciales de autenticación (clave API, nombre de usuario/contraseña o certificado)
  • Índices de eventos que contienen datos de comportamiento con estructura de documento adecuada
  • Acceso de red desde OneSignal a su clúster de Elasticsearch

Configuración

1

Configurar acceso a Elasticsearch

Asegúrese de que OneSignal pueda conectarse a su clúster de Elasticsearch:Para Elasticsearch Cloud:
  • Navegue a Security en su consola de Elasticsearch Cloud
  • Cree una clave API con permisos de lectura para índices de eventos
  • Anote su Cloud ID y API Key
Para Elasticsearch autohospedado:
  • Configure la autenticación (autenticación básica o clave API)
  • Asegúrese de que su clúster sea accesible desde las direcciones IP de OneSignal
  • Anote la URL del endpoint del clúster y las credenciales
2

Crear usuario dedicado (recomendado)

Cree un usuario dedicado para OneSignal con acceso de solo lectura a los índices de eventos:
PUT _security/user/onesignal_reader
{
  "password": "strong_password",
  "roles": ["onesignal_events_reader"]
}

PUT _security/role/onesignal_events_reader
{
  "indices": [
    {
      "names": ["events-*", "user_events"],
      "privileges": ["read", "view_index_metadata"]
    }
  ]
}
3

Agregar integración en OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.Seleccione Elasticsearch y proporcione:
  • Cluster URL: Su endpoint de Elasticsearch (por ejemplo, https://your-cluster.es.amazonaws.com)
  • Authentication Method: API Key, Basic Auth o Certificate
  • Username/Password o API Key: Credenciales de autenticación
  • Cloud ID (si usa Elasticsearch Cloud): Su Cloud ID de implementación
4

Configurar fuente de datos de eventos

Especifique el índice de Elasticsearch que contiene sus datos de eventos:
  • Index Pattern: Índice o patrón de índice que contiene eventos (por ejemplo, events-*)
  • Event Query: Query DSL de Elasticsearch opcional para filtrar documentos de eventos
  • Time Field: Campo de marca de tiempo para filtrado basado en tiempo (por ejemplo, @timestamp)
Sus documentos de eventos deben contener campos para:
  • Nombre/tipo de evento (String)
  • Identificador de usuario (String)
  • Marca de tiempo del evento (Date)
  • Propiedades de evento adicionales (Object)
5

Probar la conexión

Haga clic en Test Connection para verificar que OneSignal pueda acceder a su clúster de Elasticsearch y leer datos de eventos.

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

Configuración avanzada

Filtrado Query DSL

Use Query DSL de Elasticsearch para filtrar y transformar datos de eventos antes de sincronizar con OneSignal:
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-7d"
            }
          }
        },
        {
          "terms": {
            "event_name": ["purchase", "signup", "upgrade"]
          }
        }
      ],
      "must_not": [
        {
          "term": {
            "test_user": true
          }
        }
      ]
    }
  },
  "_source": [
    "event_name",
    "user_id",
    "@timestamp",
    "properties.*"
  ]
}

Configuración de patrón de índice

Consulte eficientemente en múltiples índices:
  • Índices basados en tiempo: Use patrones como events-2024-* para datos particionados por tiempo
  • Enrutamiento: Asegure un enrutamiento consistente para consultas basadas en usuario
  • Alias: Use alias de índice para una gestión simplificada

Optimización de rendimiento

Optimice las consultas para grandes volúmenes de eventos:
  • Filtrado de campos: Use filtrado _source para recuperar solo los campos necesarios
  • API Scroll: Para conjuntos de resultados grandes, OneSignal usa paginación de scroll
  • Matemáticas de fecha: Use matemáticas de fecha de Elasticsearch para filtrado eficiente basado en tiempo
Asegúrese de que su clúster de Elasticsearch tenga suficientes recursos para manejar las consultas de OneSignal sin afectar otras aplicaciones que usan el clúster.

Preguntas frecuentes

¿Con qué frecuencia OneSignal sincroniza eventos desde Elasticsearch?

OneSignal sincroniza datos de eventos según su programación configurada, con un intervalo mínimo de 15 minutos.

¿Puedo sincronizar eventos desde múltiples índices de Elasticsearch?

Sí, puede usar patrones de índice (por ejemplo, events-*) para consultar en múltiples índices, o crear múltiples integraciones para diferentes grupos de índices.

¿Qué sucede si mi clúster de Elasticsearch no está disponible temporalmente?

OneSignal reintentará las conexiones con retroceso exponencial. La sincronización de eventos se reanudará automáticamente una vez que su clúster sea accesible nuevamente.