Interactions entre les composants d'emplacement

Le composant Emplacement utilise plusieurs méthodes pour interagir avec les enregistrements d'emplacement client. Cette interaction inclut des méthodes qui aident à collecter, résoudre, filtrer et conserver les enregistrements client. Ces méthodes interrogent les points d'intérêt, distribuent des événements d'emplacement et invoquent et utilisent le déclencheur marketing Le client s'enregistre.

Lorsqu'un enregistrement d'emplacement client est signalé au composant Emplacement, ChangeClientLocationBasePartCmdImpl appelle une séquence de commandes qui dirigent le traitement du rapport d'emplacement client. Cette séquence de commandes forme un pipeline de commandes qui affine et résout les informations brutes (telles que la latitude et la longitude) dans un rapport d'emplacement client entrant. Le pipeline se termine par un ensemble de rapports d'emplacement client de sortie, liés à des points d'intérêt particuliers. Le pipeline peut être personnalisé en fournissant une sous-classe de ChangeClientLocationBasePartCmdImpl, qui remplace la méthode getPipelineCommandInterfaces(). La méthode getPipelineCommandInterfaces() émet une liste ordonnée de noms d'interface de commande à utiliser dans le traitement du pipeline. Le traitement par défaut du pipeline est décrit dans le flux de travaux suivant :

Collecte d'enregistrements d'emplacement client

Une source d'emplacement peut signaler un enregistrement d'emplacement client au composant Emplacement en appelant :
Collecte des enregistrements d'emplacement client (OAGIS)
Service OAGIS Code d'action Expression
ChangeClientLocation Modifier /ClientLocation[1]
Alternativement, il peut appeler :
Collecte des enregistrements d'emplacement client (REST)
Service REST Méthode
clientLocation PUT

Filtrage des enregistrements d'emplacement client

Après les appels ChangeClientLocationBasePartCmdImpl ResolveClientLocationCmd, il appelle FilterClientLocationCmd pour vérifier si l'enregistrement d'emplacement client nécessite un traitement ultérieur.

Son implémentation par défaut, FilterClientLocationCmdImpl, pour le type source GPS filtre les enregistrements d'emplacement client en fonction des propriétés telles que le type de client, le type de source, le type du POI, l'ID de région ou l'ID de zone.

L'implémentation par défaut de Filtre abandonne les enregistrements qui n'ont pas User comme ClientType et n'examine aucune autre zone.

Résolution des enregistrements d'emplacement client

Son implémentation par défaut, ResolveClientLocationCmdImpl, pour le type source GPS tente de résoudre les informations suivantes :
  • ID du point d'intérêt, s'il n'est pas spécifié par la source d'emplacement, et les zones connexes, par exemple le type du POI, l'ID de région ou l'ID de zone, à partir de son emplacement géographique.
  • ID de l'enregistrement d'emplacement client, s'il n'est pas spécifié par la source d'emplacement, s'il y a un enregistrement existant dans la base de données avec l'ID client, le type de source et l'ID du point d'intérêt spécifié.
  • Délai d'expiration, s'il n'est pas spécifié par la source d'emplacement, provient de la propriété de configuration DefaultExpirationTimeOffset/source_type, qui spécifie le délai d'expiration par défaut du type de source qui est décalé en millisecondes.
La table suivante indique comment un ID de point d'intérêt est résolu :
Emplacement du client
Emplacement du client emplacement de point d'intérêt Emplacement résolu à un point d'intérêt ?
A B, dans le rayon.

C, en dehors de la portée du rayon.

Oui, seul le point d'intérêt qui est représenté par B. Un enregistrement d'emplacement client correspondant à POI B est créé.
A D, dans le rayon.

E, dans le rayon.

Si la précision est de zéro mètre :
  • Oui, le point d'intérêt unique qui est le plus proche de l'emplacement client par défaut.

    Les enregistrements d'emplacement client sont créés et correspondent à POI D ou POI E, selon l'emplacement qui est plus proche de l'emplacement client.

Si la précision est supérieure à zéro mètre :
  • Oui, plusieurs points d'intérêt (POI D et POI E) sont résolus.

    Un enregistrement d'emplacement client correspondant à POI D et POI E.

Remarque : Ce comportement peut être personnalisé en fonction de vos besoins métier.
A F, en dehors de la portée du rayon. Non, les points d'intérêt sont hors de portée. Aucun enregistrement d'emplacement client correspondant à un POI n'est créé.
Remarque : Il est possible pour un emplacement client de se déplacer hors du rayon d'un point d'intérêt à mesure que la précision du GPS client s'améliore.

Distribution d'événements d'emplacement

Après que ChangeClientLocationBasePartCmdImpl appelle ResolveClientLocationCmd, il appelle DispatchLocationEventCmd ensuite pour distribuer d'un événement d'emplacement.

Par défaut, DispatchLocationEventCmdImpl appelle MarketingFacadeClient.evaluateMarketingTrigger(Map) pour distribuer un événement d'emplacement au composant Marketing.

L'implémentation par défaut tient compte de deux seuils, l'un dans l'espace et l'autre dans le temps, pour prendre sa décision. Ces seuils sont définis dans le fichier de configuration wc-component.xml.

Le fichier wc-component.xml se trouve dans le répertoire WC_eardir/xml/config/com.ibm.commerce.location. Par défaut, il contient les configurations de seuil suivantes :

<_config:configgrouping name="MarketingEngineParameters"> 
<_config:property name="TimeThresholdMilliseconds" value="60000"/> 
<_config:property name="DistanceThresholdMeters" value=""/> 
</_config:configgrouping> 

Comme pour n'importe quel fichier de personnalisation de composants, il peut être étendu pour répondre à vos besoins métier.

Le seuil d'espace appelle le moteur Marketing si la distance physique entre des valeurs ClientLocations consécutives dépasse le seuil. Le seuil de temps appelle le moteur Marketing si le décalage horaire entre la publication de valeurs ClientLocations consécutives dépasse le seuil.
Remarque : Les valeurs ClientLocations consécutives doivent respecter l'espace ou le seuil de temps pour invoquer le moteur Marketing. Par exemple, cette logique garantit que :
  • Un enregistrement client dans un magasin le jour 1 et le même magasin à nouveau le jour 2 invoque le moteur Marketing sur les deux jours (seuil de temps atteint)
  • Un enregistrement client dans un magasin suivi d'un enregistrement dans un magasin différent dans le seuil de temps appelle le moteur Marketing pour les deux magasins (seuil d'espace atteint).
Pour calculer si les emplacements précédents et actuels d'un client atteignent les seuils, un cache en mémoire de ClientLocations est conservé (un enregistrement par PersonalizationID). Ce comportement peut être modifié en prolongeant ou en remplaçant DispatchClientLocationEventCmd.

Interrogation des points d'intérêt

Le composant Emplacement fournit le service GetPointOfInterest OAGIS et son service pointOfInterest GET REST correspondant pour interroger les points d'intérêt par paramètres tels que l'ID de magasin, le type du POI, l'ID de région, l'ID de zone ou l'emplacement géographique.

Les paramètres sont utilisés pour les tâches suivantes :
  • Lorsque vous créez une activité de marketing basée sur l'emplacement, un responsable marketing reçoit les régions géographiques (points d'intérêt de type Region) et les emplacements de magasin (points d'intérêt de type Store) que l'activité peut cibler.
  • Lorsqu'il y a plusieurs emplacements de magasins à proximité, un client reçoit les emplacements de magasins à proximité (points d'intérêt de type Store) qu'il peut enregistrer.

Déclencheur : le client s'enregistre

Le déclencheur Le client s'enregistre dans l'outil Marketing est utilisé pour créer des activités Dialogue basées sur l'emplacement. Ce déclencheur peut être utilisé dans une activité Dialogue pour démarrer ou poursuivre l'activité lorsqu'un client s'inscrit à un point d'intérêt un nombre de fois spécifié dans un délai spécifié.

Le moteur marketing est averti par le composant Emplacement lorsque vous utilisez ce déclencheur. La notification se produit en appelant le service Web Traiter le déclencheur marketing, via la méthode MarketingFacadeClient evaluateMarketingTrigger(Map parameters).

Voici un exemple de l'appel de service :

Map parameterMap = new HashMap();
parameterMap.put("DM_ReqCmd", "LocationEvent");
parameterMap.put("storeId", "10001");
parameterMap.put("userId", "10001");
parameterMap.put("personalizationId", "10001");
parameterMap.put("action", "Check-in");

parameterMap.put("pointOfInterestId", "10001");
parameterMap.put("regionId","CA-ON");
parameterMap.put("zoneId","Markville Mall Store");
marketingFacadeClient.evaluateMarketingTrigger(parameterMap);
Chaque événement d'emplacement comprend les paires nom-valeur suivantes :
Emplacement des paires nom-valeur de l'événement
Nom Description
DM_ReqCmd Nom de l'événement. La valeur doit être LocationEvent.
storeId L'ID du magasin HCL Commerce.
userId ID utilisateur HCL Commerce.
personalizationId L'ID de personnalisation HCL Commerce.
action L'action qui déclenche l'événement. La valeur doit être Check-in.
pointOfInterestId L'ID du point d'intérêt.
regionId L'ID de la région.
zoneId L'ID de zone.