Exemples de requêtes query-examples

Sur cette page : explorez des exemples de requête SQL prêtes à l’emploi pour les jeux de données du système Journey Optimizer afin d’analyser le suivi des e-mails et des notifications push, le retour des messages, l’étape de parcours et les données de prise de décision pour la création de rapports et la résolution des problèmes.

Dans cette page, vous trouverez la liste des jeux de données Adobe Journey Optimizer et des cas d’utilisation associés :

Pour consulter la liste complète des champs et attributs de chaque schéma, consultez le dictionnaire de schémas de Journey Optimizer.

Consultez également plusieurs exemples couramment utilisés pour interroger des événements d’étape de parcours.

Choisir le jeu de données approprié choose-the-correct-dataset

Avant d’exécuter une requête, vérifiez quel jeu de données correspond au type d’action à analyser dans votre parcours.

  1. Pour vérifier les retours de diffusion des messages pour les actions de canal Journey Optimizer natives (telles que les statuts sent ou bounce), utilisez le Jeu de données d’événement de retour de message.
  2. Pour vérifier les événements d’interaction avec les e-mails tels que les ouvertures et les clics, utilisez le ​ Jeu de données d’événement d’expérience de suivi d’e-mail.
  3. Pour vérifier que Journey Optimizer a exécuté une action personnalisée et inspecter son statut d’exécution, sa latence et les détails de l’erreur, utilisez le jeu de données Événement d’étape de Parcours ​.
NOTE
Un appel HTTP d’action personnalisée réussi confirme uniquement que l’appel est terminé. Cela ne confirme pas que le système externe a diffusé un message. Pour confirmer la diffusion en aval, vérifiez les journaux ou les rapports du système externe. Découvrez comment résoudre les problèmes liés à l’exécution de votre parcours dynamique.

Si une requête renvoie « Table non configurée pour le jeu de données » table-not-provisioned

Ce message ne signifie pas nécessairement que le jeu de données n’a pas été configuré. Avant de contacter l’assistance Adobe, vérifiez les points suivants :

  1. Dans l’espace de travail Jeux de données , activez Afficher les jeux de données système. Les jeux de données générés par le système sont masqués par défaut. Découvrez comment accéder aux jeux de données.
  2. Vérifiez que le nom exact de la table utilisé dans votre requête correspond au nom de la table affiché dans l’espace de travail Jeux de données pour votre sandbox.
  3. Vérifiez que le type d’action de parcours correspond au jeu de données que vous interrogez. Voir ​ Choisir le jeu de données approprié.
  4. Pour les jeux de données qui utilisent l’ingestion par lots, comme le jeu de données d’événement de retour de message , attendez jusqu’à deux heures avant que les données ne soient disponibles.
  5. Pour les actions personnalisées, interrogez le jeu de données Événement d’étape de Parcours ​ plutôt que d’attendre un enregistrement d’événement de retour de message pour la diffusion externe.

Si le jeu de données doit contenir des données et que le tableau n’est toujours pas disponible, collectez le nom du sandbox, le nom du jeu de données, l’identifiant de requête et l’horodatage avant de contacter l’assistance Adobe.

Jeu de données d’événement d’expérience de tracking d’e-mail email-tracking-experience-event-dataset

Nom dans l’interface : Jeu de données d’événement d’expérience de tracking e-mail sur AJO

Jeu de données système pour l’ingestion d’événements d’expérience de tracking e-mail à partir de Journey Optimizer.

Le schéma associé est celui d’événements d’expérience de tracking e-mail sur AJO.

Cette requête affiche le nombre de différentes interactions d’e-mail (ouvertures, clics) pour un message donné :

select
    _experience.customerJourneyManagement.messageInteraction.interactionType AS interactionType,
    count(1) eventCount
from ajo_email_tracking_experience_event_dataset
where
     _experience.customerJourneyManagement.messageExecution.messageExecutionID IN ('UMA-30647505')
group by
    _experience.customerJourneyManagement.messageInteraction.interactionType

Cette requête affiche la répartition du nombre d’interactions d’e-mail (ouvertures, clics) par message pour un parcours donné :

select
    _experience.customerJourneyManagement.messageExecution.messageExecutionID AS messageExecutionID,
    _experience.customerJourneyManagement.messageInteraction.interactionType AS interactionType,
    count(1) eventCount
from ajo_email_tracking_experience_event_dataset
where
     _experience.customerJourneyManagement.messageExecution.journeyVersionID IN ('0e86ac62-c315-48cc-ab4f-3f8b741ae667')
group by
    _experience.customerJourneyManagement.messageExecution.messageExecutionID,
    _experience.customerJourneyManagement.messageInteraction.interactionType
order by
    _experience.customerJourneyManagement.messageExecution.messageExecutionID,
    _experience.customerJourneyManagement.messageInteraction.interactionType
limit 100;

Jeu de données d’événement de retour de message message-feedback-event-dataset

Nom dans l’interface : Jeu de données d’événement de retour de message AJO

Le jeu de données d’événement de retour de message AJO stocke les retours de diffusion de message générés par Adobe Journey Optimizer. Il prend en charge l’analyse des retours de diffusion sur l’ensemble des canaux de message, y compris e-mail, SMS/RCS/MMS et publipostage direct. Les événements de retour peuvent être utilisés pour les cas d’utilisation de création de rapports et d’audiences.

Le schéma associé est celui d’événement de retour de message AJO.

NOTE
Ce jeu de données utilise l’ingestion par lots. Prévoyez une latence des données allant jusqu’à 2 heures lors de l’interrogation de ce jeu de données ou de son utilisation à des fins de création de rapports.

Pour obtenir la liste complète des champs, chemins d’accès aux champs, types de données et descriptions, consultez la Référence du schéma ​.

NOTE
Il n’est pas garanti que les champs de contexte spécifiques au canal soient renseignés sur chaque événement de retour de message. La disponibilité du champ peut dépendre du canal, de la payload des commentaires du fournisseur, du type d’événement et de la phase de diffusion. Utilisez les identifiants d’exécution du message, le statut des commentaires, les détails de l’échec, l’horodatage et les informations d’identité comme champs de corrélation principaux.

Classer les exécutions de test et non-test classify-test-executions

Utilisez le champ isTestExecution pour distinguer les exécutions de test des exécutions autres que des tests lorsque le champ est renseigné.

Avant de créer une requête, utilisez Référence du schéma Adobe Journey Optimizer 🔗 pour confirmer le chemin d’accès au champ, le type de données et la description actuels pour le schéma d’événement de retour de message AJO.

Interpréter les valeurs renseignées comme suit :

Valeur
Interprétation
true
Le message faisait partie d’une exécution de test.
false
Le message ne faisait pas partie d’une exécution de test.
NULL ou manquant
Aucune valeur n’a été enregistrée pour le champ. Traiter cela comme inconnu sauf si un mappage spécifique au canal et à l’heure a été validé.

Ne convertissez pas automatiquement les NULL en false et ne supposez pas que chaque valeur nulle représente une exécution en production. Si une implémentation de création de rapports a validé que les valeurs nulles représentent des enregistrements non tests pour un canal ou une période historique spécifique, appliquez ce mappage dans une vue de création de rapports en aval et documentez explicitement la règle.

Certains enregistrements historiques ou spécifiques à un canal peuvent ne pas renseigner tous les champs de contexte de message. Vous devez donc tester la disponibilité des champs par canal et conserver les nulls plutôt que de les traiter comme des chaînes vides ou des valeurs déduites.

Exécutez cette requête uniquement après avoir confirmé le chemin d’accès isTestExecution dans la référence de schéma Adobe Journey Optimizer 🔗 :

SELECT
  _experience.customerJourneyManagement.messageProfile.isTestExecution AS isTestExecution,
  _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus AS feedbackStatus,
  COUNT(*) AS eventCount
FROM ajo_message_feedback_event_dataset
GROUP BY
  _experience.customerJourneyManagement.messageProfile.isTestExecution,
  _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus
ORDER BY
  isTestExecution,
  feedbackStatus;

Cette requête regroupe les enregistrements de commentaires sur les messages par indicateur de test-exécution et statut de commentaires sur la diffusion. Le résultat conserve les valeurs de isTestExecution nulles ou manquantes afin que les enregistrements sans valeur d’exécution de test enregistrée puissent être examinés séparément.

Cette requête affiche le nombre de différents statuts de retour par e-mail (envoyés, rebonds, etc.) pour un message donné :

select
    _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus AS feedbackStatus,
    count(1) eventCount
from ajo_message_feedback_event_dataset
where
     _experience.customerJourneyManagement.messageExecution.messageExecutionID IN ('UMA-30647505')
group by
    _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus;

Cette requête affiche la répartition du nombre de différents statuts de retours par e-mail (envoyés, rebonds, etc.) par message pour un parcours donné :

select
    _experience.customerJourneyManagement.messageExecution.messageExecutionID AS messageExecutionID,
    _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus AS feedbackStatus,
    count(1) eventCount
from ajo_message_feedback_event_dataset
where
     _experience.customerJourneyManagement.messageExecution.journeyVersionID IN ('0e86ac62-c315-48cc-ab4f-3f8b741ae667')
group by
    _experience.customerJourneyManagement.messageExecution.messageExecutionID,
    _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus
order by
    _experience.customerJourneyManagement.messageExecution.messageExecutionID,
    _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus
limit 100;

Au niveau agrégé, rapport au niveau des domaines (trié par domaines principaux) : Nom de domaine, Message envoyé, Rebonds

SELECT split_part(_experience.customerJourneyManagement.emailChannelContext.address, '@', 2) AS recipientDomain, SUM( CASE WHEN _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'sent' THEN 1 ELSE 0 END)AS sentCount , SUM( CASE WHEN _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'bounce' THEN 1 ELSE 0 END )AS bounceCount FROM ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' GROUP BY recipientDomain ORDER BY sentCount DESC;

Envois quotidiens d’e-mails :

SELECT date_trunc('day', TIMESTAMP) AS rolluptimestamp, SUM( CASE WHEN _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus = 'sent' THEN 1 ELSE 0 END) AS deliveredcount FROM ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' GROUP BY date_trunc('day', TIMESTAMP) ORDER BY rolluptimestamp ASC;

Recherchez si un ID d’e-mail particulier a reçu un e-mail ou non et, dans le cas contraire, quelle était l’erreur, la catégorie de rebond, le code :

SELECT _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus AS status, _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.reason AS failurereason, _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.type AS bouncetype FROM ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' AND _experience.customerjourneymanagement.emailchannelcontext.address = 'user@domain.com' AND TIMESTAMP >= now() - INTERVAL '7' DAY ORDER BY status ASC

Recherchez la liste de tous les ID d’e-mails individuels qui ont eu une erreur particulière, une catégorie de rebond ou un code dans les x dernières heures/jours ou qui ont été associés à une diffusion de message spécifique :

SELECT _experience.customerjourneymanagement.emailchannelcontext.address AS emailid, _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus AS status, _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.reason AS failurereason, _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.type AS bouncetype FROM ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' AND _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus != 'sent' AND TIMESTAMP >= now() - INTERVAL '10' HOUR AND _experience.customerjourneymanagement.messageexecution.messageexecutionid = 'BMA-45237824' ORDER BY emailid

Taux de rebond définitif au niveau agrégé :

select hardBounceCount, case when sentCount > 0 then(hardBounceCount/sentCount)*100.0 else 0 end as hardBounceRate from ( select SUM( CASE WHEN _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'bounce' AND _experience.customerJourneyManagement.messageDeliveryfeedback.messageFailure.type = 'Hard' THEN 1 ELSE 0 END)AS hardBounceCount , SUM( CASE WHEN _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'sent' THEN 1 ELSE 0 END )AS sentCount from ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' )

Erreurs permanentes regroupées par code de rebond :

SELECT _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.reason AS failurereason, COUNT(*) AS hardbouncecount FROM ajo_message_feedback_event_dataset WHERE _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus = 'bounce' AND _experience.customerjourneymanagement.messagedeliveryfeedback.messagefailure.type = 'Hard' AND _experience.customerjourneymanagement.messageprofile.channel._id = 'https://ns.adobe.com/xdm/channels/email' GROUP BY failurereason
NOTE
Dans certains parcours, les messageID peuvent ne pas être uniques pour chaque diffusion individuelle. Si un parcours envoie à nouveau la même action au même profil, le même messageID peut être réutilisé. Par conséquent, pour suivre ou attribuer avec précision des événements au niveau de l’envoi individuel, combinez les champs journeyVersionID, journeyActionID et batchInstanceID (pour les parcours par lots) ou identityMap pour plus de précision.

Identifier les adresses en quarantaine après une panne du FAI isp-outage-query

En cas de panne du fournisseur d’accès à Internet (FAI), vous devez identifier les adresses e-mail qui ont été considérées incorrectement comme des rebonds (mises en quarantaine) pour des domaines spécifiques et pendant une période donnée. Pour obtenir ces adresses, utilisez la requête suivante :

SELECT
    _experience.customerJourneyManagement.emailChannelContext.address AS RecipientAddress,
    timestamp AS EventTime,
    _experience.customerJourneyManagement.messageDeliveryfeedback.messageFailure.reason AS "Invalid Recipient"
FROM ajo_message_feedback_event_dataset
WHERE
    eventtype = 'message.feedback' AND
    DATE(timestamp) BETWEEN '<start-date-time>' AND '<end-date-time>' AND
    _experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus = 'bounce' AND
    _experience.customerJourneyManagement.emailChannelContext.address ILIKE '%domain.com%'
ORDER BY timestamp DESC;

dans laquelle le format des dates est le suivant : YYYY-MM-DD HH:MM:SS.

Une fois identifiées, supprimez ces adresses de la liste de suppression de Journey Optimizer. En savoir plus.

NOTE
Lors du référencement de l’identityMap dans le jeu de données d’événement de retour de message, notez qu’il reflète uniquement l’identité utilisée au moment de l’exécution. Pour les notifications push, un événement « envoyé » ne s’appuierait que sur l’ECID lié au jeton push utilisé pour envoyer cette notification, tandis qu’un événement d’« exclusion » pourrait s’appuyer sur une identité personnalisée. Par exemple, si un profil a été exclu car aucun jeton push n’a été trouvé, l’identité utilisée au niveau de la campagne d’action ou du parcours sera sélectionnée pour enregistrer cet événement. Si vous avez besoin d’espaces de noms supplémentaires (par exemple, d’identifiants personnalisés), joignez ces enregistrements de retour à un jeu de données lié au profil (par exemple, profile_snapshot) pour récupérer la liste complète des identités.

Jeu de données d’événement d’expérience de tracking de notifications push push-tracking-experience-event-dataset

Nom dans l’interface : Jeu de données d’événement d’expérience de tracking de notifications push sur AJO

Jeu de données pour l’ingestion d’événements d’expérience de tracking mobile pour les notifications push à partir de Journey Optimizer.

Le schéma associé est celui d’événement d’expérience de tracking de notifications push sur AJO.

Exemple de requête :

select _experience.customerJourneyManagement.pushChannelContext.platform, sum(pushNotificationTracking.customAction.value)  from ajo_push_tracking_experience_event_dataset
group by _experience.customerJourneyManagement.pushChannelContext.platform

select  _experience.customerJourneyManagement.pushChannelContext.platform, SUM (_experience.customerJourneyManagement.messageInteraction.offers.offerCount) from ajo_email_tracking_experience_event_dataset
  group by _experience.customerJourneyManagement.pushChannelContext.platform

Événement d’étape de parcours journey-step-event

Nom interne : Événements d’étape de parcours (jeu de données système)

Jeu de données pour l’ingestion d’événements d’étape dans le parcours.

Le schéma associé est celui d’événements d’étapes de parcours pour Journey Orchestration.

Cette requête affiche la répartition des succès d’action par libellé d’action pour un parcours donné :

select
    _experience.journeyOrchestration.stepEvents.actionName AS actionLabel,
    count(1) actionSuccessCount
from journey_step_events
where
     _experience.journeyOrchestration.stepEvents.journeyVersionID IN ('0e86ac62-c315-48cc-ab4f-3f8b741ae667')
     AND _experience.journeyOrchestration.stepEvents.actionID IS NOT NULL
     AND _experience.journeyOrchestration.stepEvents.actionType IS NOT NULL
     AND _experience.journeyOrchestration.stepEvents.actionExecutionErrorCode IS NULL
group by
    _experience.journeyOrchestration.stepEvents.actionName;

Cette requête affiche la répartition des nombres d’étapes renseignés par nodeId et nodeLabel pour un parcours donné. nodeId est inclus ici car nodeLabel peut être le même pour différents nœuds de parcours.

select
    _experience.journeyOrchestration.stepEvents.nodeID AS nodeID,
    _experience.journeyOrchestration.stepEvents.nodeName AS nodeLabel,
    count(1) stepEnteredCount
from journey_step_events
where
     _experience.journeyOrchestration.stepEvents.journeyVersionID IN ('0e86ac62-c315-48cc-ab4f-3f8b741ae667')
     AND _experience.journeyOrchestration.stepEvents.journeyNodeProcessed = TRUE
     AND _experience.journeyOrchestration.stepEvents.eventID IS DISTINCT FROM 'createInstance'
group by
    _experience.journeyOrchestration.stepEvents.nodeID,
    _experience.journeyOrchestration.stepEvents.nodeName;

Cette requête récupère les nœuds (par nodeID et nodeName) du parcours qui sont associés à la diffusion d’un message à un profil, à l’aide de son identifiant de profil et du jeu de données Événement de retour de message :

select
    _experience.journeyorchestration.stepevents.nodeID, JSE._experience.journeyorchestration.stepevents.nodeName
from journey_step_events JSE
where
    _experience.journeyOrchestration.stepEvents.actionID
    in

    (
    select
        _experience.customerJourneyManagement.messageExecution.journeyActionID
    from  ajo_message_feedback_event_dataset
    where
        _experience.customerJourneyManagement.messageProfile.messageProfileID = '<PROFILE ID>'
    group by
        _experience.customerJourneyManagement.messageExecution.journeyActionID
    )

group by
    _experience.journeyorchestration.stepevents.nodeID, JSE._experience.journeyorchestration.stepevents.nodeName

Consultez également plusieurs exemples couramment utilisés pour interroger des événements d’étape de parcours.

Découvrez comment dépanner les types d’événements rejetés dans journey_step_events.

Jeu de données d’événement de prise de décision ode-decisionevents

Nom dans l’interface : ODE DecisionEvents (jeu de données système)

Jeu de données pour ingérer des propositions d’offre aux utilisateurs.

Le schéma associé est ODE DecisionEvents.

Cette requête affiche toutes les offres renvoyées le jour précédent :

SELECT date_format(Decision.Timestamp, 'MM/dd/yyyy') as Date
,HOUR(Decision.timestamp) as Hour
,COUNT(*)  as Count
FROM ode_decisionevents_b699fa78_efec_41b1_99fa_78efecc1b1ef_decision AS Decision
WHERE date_format(Decision.timestamp, 'MM/dd/yyyy') = date_format(CURRENT_DATE, 'MM/dd/yyyy') and Decision._experience.decisioning.propositionDetails.activity[0].id = 'xcore:offer-activity:13ab41890a335ad6'
GROUP BY date_format(Decision.Timestamp, 'MM/dd/yyyy')
,HOUR(Decision.timestamp)
ORDER BY 1, 2 DESC;

Cette requête indique le nombre de fois où des offres ont été proposées au cours des 30 derniers jours d’une activité/décision particulière et sa priorité d’offre associée.

select proposedOffers.id,proposedOffers.name, po._experience.decisioning.ranking.priority, count(proposedOffers.id) as ProposedCount from (
select explode(propositionexplode.selections) AS proposedOffers from
(select explode(_experience.decisioning.propositionDetails) AS propositionexplode,timestamp FROM ode_decisionevents_itca_decisioning_20230925_235340_379  where date_format(timestamp, 'MM/dd/yyyy') >= date_format(DATE_ADD(CURRENT_DATE, -30), 'MM/dd/yyyy') and _experience.decisioning.propositionDetails.activity[0].id = 'xcore:offer-activity:12ae6f35a055c6f0')) a, decision_object_repository_personalized_offers po where proposedOffers.id LIKE 'xcore:personalized-offer%' and po._id=proposedOffers.id
group by proposedOffers.id, proposedOffers.name, po._experience.decisioning.ranking.priority;

Jeu de données d’événement de retour de destinataire secondaire (Cci) bcc-feedback-event-dataset

Nom dans l’interface : jeu de données d’événement de retour de destinataire secondaire d’AJO (jeu de données système). Dans le service de requêtes, le tableau du jeu de données peut toujours être nommé ajo_bcc_feedback_event_dataset.

Jeu de données pour les messages e-mail Cci (destinataire secondaire) lorsque l’archivage de Cci est activé.

Requête pour tous les messages en Cci dans les 2 jours (pour une campagne donnée) :

SELECT bcc.*
FROM ajo_bcc_feedback_event_dataset AS bcc
WHERE
    bcc._experience.customerJourneyManagement.messageExecution.messageExecutionID = '<message-execution-id>' AND
    bcc.timestamp >= now() - INTERVAL '2' day;

Requête avec jeu de données de retour pour afficher les utilisateurs qui n’ont pas reçu (tous les rebonds et suppressions) et qui ont une entrée Cci pour un message donné :

SELECT
    distinct bcc._experience.customerJourneyManagement.secondaryRecipientDetail.originalRecipientAddress AS OriginalRecipientAddress
FROM ajo_bcc_feedback_event_dataset  AS bcc
WHERE
    bcc.timestamp > now() - INTERVAL '2' DAY AND     bcc._experience.customerJourneyManagement.messageExecution.messageExecutionID  = '<message-execution-id>' AND      bcc._experience.customerJourneyManagement.secondaryRecipientDetail.originalRecipientAddress != '' AND
    (
            bcc._experience.customerJourneyManagement.secondaryRecipientDetail.originalRecipientAddress NOT IN (
        SELECT distinct mfe._experience.customerJourneyManagement.emailChannelContext.address
        FROM ajo_message_feedback_event_dataset AS mfe
        WHERE
            mfe.timestamp > now() - INTERVAL '2' DAY AND
            mfe._experience.customerJourneyManagement.messageExecution.messageExecutionID  = '<message-execution-id>' AND
            mfe._experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus = 'sent'
        )
    OR     bcc._experience.customerJourneyManagement.secondaryRecipientDetail.originalRecipientAddress IN (
        SELECT distinct mfe._experience.customerJourneyManagement.emailChannelContext.address
        FROM ajo_message_feedback_event_dataset AS mfe
        WHERE
        mfe.timestamp > now() - INTERVAL '2' DAY AND
            mfe._experience.customerJourneyManagement.messageExecution.messageExecutionID  = '<message-execution-id>' AND
            mfe._experience.customerJourneyManagement.messageDeliveryfeedback.messageFailure.category = 'async' AND
            mfe._experience.customerjourneymanagement.messagedeliveryfeedback.feedbackstatus

Jeu de données d’entité entity-dataset

Nom dans l’interface : ajo entity_dataset (jeu de données système)_

Jeu de données permettant de stocker les métadonnées des entités pour les messages envoyés à l’utilisateur final.

Le schéma associé est le schéma d’entité AJO.

Ce jeu de données vous donne accès aux métadonnées définies par le spécialiste du marketing, ce qui vous permet d’obtenir de meilleures informations sur les rapports lorsque des jeux de données Journey Optimizer sont exportés pour la visualisation de rapports dans des outils externes. L’attribut messageID permet de regrouper divers jeux de données, tels que les jeux de données de commentaires sur les messages et les jeux de données de suivi des événements d’expérience, pour obtenir des détails sur la diffusion d’un message, de l’envoi au suivi, au niveau d’un profil.

Remarques importantes

  • Une entrée pour un message n’est créée qu’après la publication d’un parcours ou d’une campagne.

  • L’entrée s’affichera 30 minutes après la publication de la campagne ou du parcours.

NOTE
Pour l’instant, il y a deux entrées pour chaque publication de message dans le jeu de données d’entités pour des raisons de compatibilité future. Cela n’a aucune incidence sur votre capacité à utiliser des requêtes de jointure selon les besoins dans les jeux de données pour récupérer les informations souhaitées.

Si vous souhaitez trier, dans vos rapports, les e-mails envoyés par un parcours spécifique en fonction de l’action qui les a envoyés, vous pouvez joindre le jeu de données Commentaires de message au jeu de données Entité. Les champs à utiliser sont les suivants : _experience.decisioning.propositions.scopeDetails.correlationID et _id field in entity dataset.

La requête suivante permet d’obtenir le modèle de message associé à une campagne donnée :

SELECT
  AE._experience.customerJourneyManagement.entities.channelDetails.template
from
  ajo_entity_dataset AE
    WHERE AE._experience.customerJourneyManagement.entities.campaign.campaignVersionID = 'd7a01136-b113-4ef2-8f59-b6001f7eef6e'

La requête suivante permet d’obtenir les détails du Parcours et l’objet de l’e-mail associés à tous les événements de commentaires :

SELECT
  AE._experience.customerJourneyManagement.entities.journey.journeyActionName,
  AE._experience.customerJourneyManagement.entities.journey.journeyActionID,
  AE._experience.customerJourneyManagement.entities.journey.journeyVersionID,
  AE._experience.customerJourneyManagement.entities.channelDetails.email.subject
from
  ajo_entity_dataset AE
  INNER JOIN ajo_message_feedback_event_dataset MF ON AE._experience.customerJourneyManagement.entities.channelDetails.messageID = MF._experience.customerJourneyManagement.messageExecution.messageID
WHERE
  AE._experience.customerJourneyManagement.entities.channelDetails.channel._id = 'https://ns.adobe.com/xdm/channels/email'
  AND MF._experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'sent'
  AND AE._experience.customerJourneyManagement.entities.journey.journeyVersionID IS NOT NULL

Vous pouvez assembler des événements d’étape de parcours, des retours de message et des jeux de données de suivi pour obtenir les statistiques sur un profil particulier :

SELECT
  AE._experience.customerJourneyManagement.entities.journey.journeyActionName,
  AE._experience.customerJourneyManagement.entities.journey.journeyActionID,
  AE._experience.customerJourneyManagement.entities.journey.journeyVersionID,
  AE._experience.customerJourneyManagement.entities.channelDetails.email.subject,
    JE._EXPERIENCE.JOURNEYORCHESTRATION.STEPEVENTS.PROFILEID,
    JE._EXPERIENCE.JOURNEYORCHESTRATION.STEPEVENTS.NODENAME
from
  ajo_entity_dataset AE
  INNER JOIN ajo_message_feedback_event_dataset MF
    ON AE._experience.customerJourneyManagement.entities.channelDetails.messageID = MF._experience.customerJourneyManagement.messageExecution.messageID
    INNER JOIN journey_step_events JE
    ON AE._experience.customerJourneyManagement.entities.journey.journeyActionID = JE._experience.journeyOrchestration.stepEvents.actionID
WHERE
  AE._experience.customerJourneyManagement.entities.channelDetails.channel._id = 'https://ns.adobe.com/xdm/channels/email'
  AND MF._experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus = 'sent'
  AND AE._experience.customerJourneyManagement.entities.journey.journeyVersionID IS NOT NULL
AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page provides ready-to-use SQL query examples for Journey Optimizer system datasets so you can analyze email and push tracking, message feedback, journey step, decisioning, BCC, and entity data for reporting and troubleshooting.

Intents:

  • Choose the correct system dataset for a given analysis (message feedback versus email tracking versus journey step).
  • Query email and push interaction counts (opens, clicks).
  • Query message delivery feedback statuses (sent, bounce) and bounce categories.
  • Distinguish test executions from non-test executions using the isTestExecution field.
  • Join the Entity Dataset with feedback and tracking datasets using messageID or correlationID.
  • Troubleshoot the “Table not provisioned for dataset” message.

Glossary:

  • AJO Email Tracking Experience Event Dataset: system dataset for email tracking events; queried as ajo_email_tracking_experience_event_dataset (product-specific)
  • AJO Message Feedback Event Dataset: message delivery feedback across channels (Email, SMS/RCS/MMS, Direct Mail); queried as ajo_message_feedback_event_dataset; uses batch ingestion (product-specific)
  • AJO Push Tracking Experience Event Dataset: push interaction events; queried as ajo_push_tracking_experience_event_dataset (product-specific)
  • Journey Step Event: journey step events; queried as journey_step_events (product-specific)
  • Decisioning Event Dataset (ODE DecisionEvents): offer proposition events (product-specific)
  • Secondary Recipient Feedback Event Dataset (BCC): email BCC events when BCC archiving is enabled; table may still be named ajo_bcc_feedback_event_dataset (product-specific)
  • Entity Dataset: stores entity metadata for messages; queried as ajo_entity_dataset (product-specific)
  • isTestExecution: field distinguishing test executions (true) from non-test executions (false), with NULL or missing treated as unknown (product-specific)

Guardrails:

  • The AJO Message Feedback Event Dataset uses batch ingestion; expect a data latency of up to 2 hours (expected latency, batch ingestion — not a configurable limit) when querying it or using it for reporting.
  • If a query returns “Table not provisioned for dataset”, for batch-ingested datasets allow up to two hours for data to become available before contacting Adobe Support.
  • System datasets are hidden by default; enable Show system datasets in the Datasets workspace to query them.
  • An Entity Dataset entry for a message is created only after the journey or campaign is published, and may appear about 30 minutes after publication (observed delay).
  • Do not automatically convert a NULL or missing isTestExecution value to false, and do not assume null represents a production execution.
  • A successful custom action HTTP call confirms only that the call completed, not that the external system delivered a message.

Terminology:

  • Canonical name: Journey Step Event — table: journey_step_events
  • Do not confuse: “AJO Message Feedback Event Dataset” (delivery feedback such as sent or bounce) ≠ “AJO Email Tracking Experience Event Dataset” (interaction events such as opens and clicks) ≠ “Journey Step Event” (custom action execution status and errors)
  • Do not confuse: “isTestExecution = NULL” (unknown) ≠ “isTestExecution = false” (non-test execution)

FAQ:

  • Q: Which dataset do I query for opens and clicks? — The AJO Email Tracking Experience Event Dataset.
  • Q: Which dataset do I query for sent and bounce delivery status? — The AJO Message Feedback Event Dataset.
  • Q: Why does my query return “Table not provisioned for dataset”? — It does not necessarily mean provisioning failed; enable Show system datasets, confirm the table name matches the Datasets workspace, and for batch datasets allow up to two hours for data to become available.
  • Q: How do I separate test executions from non-test executions? — Use the isTestExecution field; treat NULL or missing values as unknown rather than converting them to false.
  • Q: How do I enrich feedback records with campaign, journey, and message metadata? — Join the Entity Dataset using messageID or _experience.decisioning.propositions.scopeDetails.correlationID.
recommendation-more-help
journey-optimizer-help