Passer au contenu principal

Vue d’ensemble

L’intégration OneSignal + Elasticsearch permet la synchronisation automatique des événements personnalisés de votre cluster Elasticsearch vers OneSignal. Cela vous permet de déclencher des Journeys automatisés et des campagnes de messagerie personnalisées basées sur les données comportementales des utilisateurs stockées dans votre moteur de recherche et d’analytique.

Exigences

  • Accès aux Event Streams pour les événements de message sortants (Les limitations de forfait et les dépassements s’appliquent)
  • Accès aux Événements personnalisés pour la synchronisation des événements entrants (Les limitations de forfait et les dépassements s’appliquent)
  • Forfait de compte mis à jour (non disponible sur les applications gratuites)

Elasticsearch

  • Cluster Elasticsearch (version 7.0 ou supérieure recommandée)
  • Identifiants d’authentification (clé API, nom d’utilisateur/mot de passe ou certificat)
  • Indices d’événements contenant des données comportementales avec une structure de document appropriée
  • Accès réseau de OneSignal à votre cluster Elasticsearch

Configuration

1

Configurer l'accès à Elasticsearch

Assurez-vous que OneSignal peut se connecter à votre cluster Elasticsearch :Pour Elasticsearch Cloud :
  • Accédez à Security dans votre console Elasticsearch Cloud
  • Créez une clé API avec des autorisations de lecture pour les indices d’événements
  • Notez votre Cloud ID et votre clé API
Pour Elasticsearch auto-hébergé :
  • Configurez l’authentification (authentification de base ou clé API)
  • Assurez-vous que votre cluster est accessible depuis les adresses IP de OneSignal
  • Notez l’URL du point de terminaison de votre cluster et les identifiants
2

Créer un utilisateur dédié (recommandé)

Créez un utilisateur dédié pour OneSignal avec un accès en lecture seule aux indices d’événements :
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

Ajouter l'intégration dans OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Elasticsearch et fournissez :
  • Cluster URL : Votre point de terminaison Elasticsearch (par ex., https://your-cluster.es.amazonaws.com)
  • Authentication Method : API Key, Basic Auth ou Certificate
  • Username/Password ou API Key : Identifiants d’authentification
  • Cloud ID (si vous utilisez Elasticsearch Cloud) : L’ID Cloud de votre déploiement
4

Configurer la source de données d'événements

Spécifiez l’index Elasticsearch contenant vos données d’événements :
  • Index Pattern : Index ou modèle d’index contenant les événements (par ex., events-*)
  • Event Query : Requête DSL Elasticsearch optionnelle pour filtrer les documents d’événements
  • Time Field : Champ d’horodatage pour le filtrage temporel (par ex., @timestamp)
Vos documents d’événements doivent contenir des champs pour :
  • Nom/type d’événement (String)
  • Identifiant utilisateur (String)
  • Horodatage de l’événement (Date)
  • Propriétés d’événement supplémentaires (Object)
5

Tester la connexion

Cliquez sur Test Connection pour vérifier que OneSignal peut accéder à votre cluster Elasticsearch et lire les données d’événements.

Mappage des données d’événement

Mappez vos au format des événements personnalisés de OneSignal :
Champ OneSignalDescriptionRequis
nameevent_nameIdentifiant de l’événementOui
external_iduser_idIdentifiant de l’utilisateurOui
timestampevent_timestampQuand l’événement s’est produitNon
propertiesevent_dataNon

Configuration avancée

Filtrage Query DSL

Utilisez Elasticsearch Query DSL pour filtrer et transformer les données d’événements avant la synchronisation avec 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.*"
  ]
}

Configuration du modèle d’index

Interrogez efficacement plusieurs indices :
  • Indices temporels : Utilisez des modèles comme events-2024-* pour les données partitionnées par temps
  • Routing : Assurez un routage cohérent pour les requêtes basées sur l’utilisateur
  • Alias : Utilisez des alias d’index pour une gestion simplifiée

Optimisation des performances

Optimisez les requêtes pour de gros volumes d’événements :
  • Filtrage de champs : Utilisez le filtrage _source pour récupérer uniquement les champs nécessaires
  • API Scroll : Pour les grands ensembles de résultats, OneSignal utilise la pagination par défilement
  • Date math : Utilisez les opérations mathématiques de date Elasticsearch pour un filtrage temporel efficace
Assurez-vous que votre cluster Elasticsearch dispose de ressources suffisantes pour gérer les requêtes de OneSignal sans affecter les autres applications utilisant le cluster.

FAQ

À quelle fréquence OneSignal synchronise-t-il les événements depuis Elasticsearch ?

OneSignal synchronise les données d’événements en fonction de votre planning configuré, avec un intervalle minimum de 15 minutes.

Puis-je synchroniser les événements de plusieurs indices Elasticsearch ?

Oui, vous pouvez utiliser des modèles d’index (par ex., events-*) pour interroger plusieurs indices, ou créer plusieurs intégrations pour différents groupes d’index.

Que se passe-t-il si mon cluster Elasticsearch est temporairement indisponible ?

OneSignal réessayera les connexions avec un délai exponentiel. La synchronisation des événements reprendra automatiquement une fois que votre cluster sera à nouveau accessible.