このページ: Journey Optimizer システムデータセットに対する、すぐに使用できる SQL クエリの例について説明します。これにより、メールやプッシュのトラッキング、メッセージフィードバック、ジャーニーステップ、決定データを分析し、レポートやトラブルシューティングに役立てることができます。
このページでは、Adobe Journey Optimizer データセットと関連する使用例のリストを示します。
各スキーマのフィールドと属性の一覧を表示するには、Adobe Journey Optimizer スキーマ リファレンス を参照してください。
また、一般的に使用されるいくつかのジャーニーステップイベントのクエリを実行する例も参照してください。
適切なデータセットの選択 choose-the-correct-dataset
クエリを実行する前に、ジャーニーで分析するアクションのタイプと一致するデータセットを確認します。
- ネイティブ Journey Optimizer チャネルアクション(
sentまたはbounceステータスなど)のメッセージ配信フィードバックを確認するには、メッセージフィードバックイベントデータセットを使用します。 - 開封数やクリック数などのメールのインタラクションイベントを確認するには、メールトラッキングエクスペリエンスイベントデータセットを使用します。
- Journey Optimizer がカスタムアクションを実行したことを確認し、その実行ステータス、待ち時間、エラーの詳細を調査するには、ジャーニーステップイベントデータセットを使用します。
クエリが「データセット用にテーブルがプロビジョニングされていません」を返す場合 table-not-provisioned
このメッセージは、必ずしもデータセットのプロビジョニングが失敗したことを意味するわけではありません。 アドビサポートに連絡する前に、次の点を確認します。
- データセットワークスペースで、システムデータセットを表示を有効にします。 システム生成データセットは、デフォルトでは非表示になっています。 方法について詳しくは、データセットへのアクセスを参照してください。
- クエリで使用される正確なテーブル名が、サンドボックスのデータセットワークスペースに表示されるテーブル名と一致することを確認します。
- ジャーニーのアクションタイプが、クエリを実行しているデータセットと一致することを確認します。 適切なデータセットの選択を参照してください。
- メッセージフィードバックイベントデータセットなど、バッチ取り込みを使用するデータセットの場合、データが使用可能になるまでに最大 2 時間かかります。
- カスタムアクションの場合は、外部配信にメッセージフィードバックイベントレコードを期待するのではなく、ジャーニーステップイベントデータセットのクエリを実行します。
データセットにデータを含める必要があり、テーブルが使用できないままの場合は、アドビサポートに連絡する前に、サンドボックス名、データセット名、クエリ ID、タイムスタンプを収集します。
メールトラッキングエクスペリエンスイベントデータセット email-tracking-experience-event-dataset
インターフェイスの名前:AJO メールトラッキングエクスペリエンスイベントのデータセット
Journey Optimizer からメールトラッキングエクスペリエンスイベントを取り込むためのシステムデータセット。
関連するスキーマは、AJO メールトラッキングエクスペリエンスイベントスキーマです。
このクエリは、特定のメッセージに対する様々なメールインタラクション数(開封数、クリック数)を表示します。
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
このクエリは、特定のジャーニーに関してメッセージ別に、様々なメールのインタラクション(開封数、クリック数)のカウントの分類を表示します。
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;
メッセージフィードバックイベントデータセット message-feedback-event-dataset
インターフェイスの名前:AJO メッセージフィードバックイベントのデータセット
AJO メッセージフィードバックイベントデータセットには、Adobe Journey Optimizer により生成されたメッセージ配信フィードバックが保存されます。 電子メール、モバイルメッセージ、ダイレクトメールなど、メッセージチャネルをまたいだ配信フィードバック分析をサポートしています。 フィードバックイベントは、レポートやオーディエンス作成のユースケースに使用できます。
関連するスキーマは AJO Message Feedback Event スキーマです。
-
Adobe Journey Optimizer では、
sentはメッセージ配信の成功に使用される値です。メッセージフィードバックイベントデータセットでは、deliveredは使用されません。 -
このデータセットでは、バッチ取り込みが使用されるので、データは最大 2 時間遅延する場合があります。
-
チャネル固有のコンテキストフィールドは、すべてのイベントで入力されることは保証されません。 メッセージ実行識別子、フィードバックステータス、エラーの詳細、タイムスタンプ、ID 情報をプライマリ相関フィールドとして使用します。
フィールド、フィールドパス、データタイプ、説明の完全なリストについて詳しくは、Adobe Journey Optimizer スキーマリファレンスを参照してください。
テスト実行とテスト以外の実行の分類 classify-test-executions
isTestExecution フィールドに入力されている場合は、そのフィールドを使用して、テスト実行とテスト以外の実行を区別します。
クエリを作成する前に、Adobe Journey Optimizer スキーマリファレンスを参照して、AJO メッセージフィードバックイベントスキーマの現在のフィールドパス、データタイプ、説明を確認します。
入力された値は、次のように解釈します。
truefalseNULL または欠落しているNULL を false に自動的に変換しないでください。また、すべての null 値が本番環境での実行を表していると想定しないでください。 特定のチャネルや履歴期間に対して、null 値がテスト以外のレコードを表していることがレポートの実装で検証された場合は、ダウンストリームのレポートビューにそのマッピングを適用し、ルールを明示的に文書化します。
一部の履歴レコードやチャネル固有のレコードでは、メッセージコンテキストのすべてのフィールドが入力されない場合があります。 したがって、フィールドの可用性をチャネルごとにテストし、null を空の文字列や推測値として処理するのではなく、保持する必要があります。
Adobe Journey Optimizer スキーマリファレンスで isTestExecution パスを確認した後にのみ、このクエリを実行します。
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;
このクエリは、メッセージフィードバックレコードを、テスト実行インジケーターおよび配信フィードバックステータスごとにグループ化します。 結果では、null または欠落した isTestExecution 値が保持されるので、テスト実行値が記録されていないレコードを個別に確認できます。
このクエリは、特定のメッセージに対する様々なメールフィードバックステータス(送信済み、バウンスなど)の数を表示します。
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;
このクエリは、特定のジャーニーに関してメッセージ別に、様々なメールのフィードバックステータス(送信済み、バウンスなど)のカウントの分類を表示します。
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;
集計レベルにおけるドメインレベルのレポート(トップドメイン順):ドメイン名、送信されたメッセージ、バウンス
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;
毎日のメール送信:
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;
特定のメール ID がメールを受け取ったかどうか、受け取っていない場合は、エラー、バウンスカテゴリ、コードを調べます。
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
過去 x 時間/日間に、特定のエラー、バウンスカテゴリまたはコードを持つ、または特定のメッセージ配信に関連する、個々のメール ID のリストを見つけます。
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
集計レベルでのハードバウンス率:
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' )
バウンスコード別にグループ化された永続的なエラー:
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
messageID は個々の配信ごとに一意ではない場合があります。 ジャーニーで同じアクションを同じプロファイルに再送信する場合は、同じ messageID を再利用できます。 したがって、個々の送信レベルでイベントを正確に追跡したり属性を設定したりするには、journeyVersionID、journeyActionID、batchInstanceID(バッチジャーニーの場合)または identityMap フィールドを組み合わせて、より正確な一意性を実現します。ISP のサービス停止後に強制隔離されたアドレスの識別 isp-outage-query
インターネットサービスプロバイダー(ISP)のサービス停止が発生した場合は、特定のドメインに対してバウンス(強制隔離)と誤ってマークされたメールアドレスを、一定期間識別する必要があります。 これらのアドレスを取得するには、次のクエリを使用します。
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;
日付の形式は、YYYY-MM-DD HH:MM:SS です。
識別したら、これらのアドレスを Journey Optimizer 抑制リストから削除します。 詳細情報
プッシュトラッキングエクスペリエンスイベントデータセット push-tracking-experience-event-dataset
インターフェイスの名前:AJO プッシュトラッキングエクスペリエンスイベントのデータセット
Journey Optimizer からプッシュ用のモバイルトラッキングエクスペリエンスイベントを取り込むためのデータセット。
関連するスキーマは、AJO プッシュトラッキングエクスペリエンスイベントスキーマです。
クエリの例:
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
ジャーニーステップイベント journey-step-event
内部名:ジャーニーステップイベント(システムデータセット)
ジャーニーでステップイベントを取り込むデータセット。
関連するスキーマは、Journey Orchestration のジャーニーのイベントステップイベントです。
このクエリは、特定のジャーニーのアクションラベル別に、アクション成功数の分類を表示します。
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;
このクエリは、特定のジャーニーの nodeId および nodeLabel ごとに、エントリしたステップ数の分類を表示します。 異なるジャーニーノードに対して nodeLabel を同じにできるので、nodeId はここに含まれます。
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;
このクエリは、プロファイル ID とメッセージフィードバックイベントデータセットを使用して、プロファイルへのメッセージの配信に関連付けられているジャーニー内のノード(nodeID と nodeName 別)を取得します。
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
また、一般的に使用されるいくつかのジャーニーステップイベントのクエリを実行する例も参照してください。
詳しくは、journey_step_events で破棄されたイベントタイプのトラブルシューティングを参照してください。
決定イベントデータセット ode-decisionevents
インターフェイスの名前:ODE DecisionEvents (システムデータセット)
オファーの提案をユーザーに取り込むデータセット。
関連するスキーマは、ODE DecisionEvents です。
このクエリでは、前日に返されたすべてのオファーを表示します。
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;
このクエリは、特定のアクティビティ/決定において、過去 30 日間にオファーが提案された回数と関連するオファーの優先度を表示します。
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;
セカンダリ受信者フィードバックイベントデータセット(BCC) bcc-feedback-event-dataset
インターフェイスの名前:AJO セカンダリ受信者フィードバックイベントデータセット(システムデータセット)。 クエリサービスでは、データセットテーブルの名前は ajo_bcc_feedback_event_dataset のままである場合があります。
BCC アーカイブが有効な場合のメール BCC(セカンダリ受信者)メッセージのデータセット。
2 日以内のすべての BCC メッセージに対するクエリ(特定のキャンペーンの場合):
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;
フィードバックデータセットを含むクエリで、受信しなかったユーザー(すべてのバウンスと抑制)と、特定のメッセージに対して BCC エントリを持つユーザーを表示します。
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
エンティティデータセット entity-dataset
インターフェイスでの名前:ajo entity_dataset(システムデータセット)_
エンドユーザーに送信されるメッセージのエンティティメタデータを保存するデータセット。
関連するスキーマは AJO エンティティスキーマです。
このデータセットを使用すると、マーケターが定義したメタデータにアクセスし、外部ツールでレポート視覚化するために Journey Optimizer がデータセットをエクスポートした際に、レポートに関するより優れたインサイトを得ることができます。 messageID 属性を使用することで、メッセージフィードバックデータセットやエクスペリエンスイベントトラッキングデータセットなどの様々なデータセットをつなぎ合わせて、プロファイルレベルでの送信からトラッキングまでのメッセージ配信の詳細を取得することができます。
重要な注意事項
-
メッセージのエントリは、ジャーニーまたはキャンペーンが公開された後にのみ作成されます。
-
キャンペーン/ジャーニーが公開されてから 30 分後にエントリが表示される場合があります。
レポートで、特定のジャーニーで送信されたメールを送信元のアクションに従って並べ替える場合は、 メッセージフィードバックデータセットをエンティティデータセットと結合できます。 使用するフィールドは _experience.decisioning.propositions.scopeDetails.correlationID と _id field in entity dataset です。
特定のキャンペーンに関連するメッセージテンプレートを取得するのに役立つクエリは次のとおりです。
SELECT
AE._experience.customerJourneyManagement.entities.channelDetails.template
from
ajo_entity_dataset AE
WHERE AE._experience.customerJourneyManagement.entities.campaign.campaignVersionID = 'd7a01136-b113-4ef2-8f59-b6001f7eef6e'
すべてのフィードバックイベントに関連付けられているジャーニー詳細とメール件名を取得するのに役立つクエリは次のとおりです。
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
ジャーニーステップイベント、メッセージフィードバックおよびトラッキングデータセットをスティッチして、特定のプロファイルの統計を取得できます。
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
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 interaction counts (opens, clicks) and see the push tracking query examples.
- Query message delivery feedback statuses (
sent,bounce) and bounce categories. - Distinguish test executions from non-test executions using the
isTestExecutionfield. - Join the Entity Dataset with feedback and tracking datasets using
messageIDorcorrelationID. - 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: mobile tracking experience events for push; 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): dataset for ingesting offer propositions to the users (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), withNULLor missing treated as unknown (product-specific)
Guardrails:
- The AJO Message Feedback Event Dataset uses batch ingestion; data may be delayed by up to 2 hours.
- 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.
- The CJM Consent Service Dataset and CJM Push Profile Dataset are system datasets used by Journey Optimizer for consent and push profile data. They are not available as queryable tables in Query Service, so a “Table not provisioned for dataset” response is expected when querying them.
- System datasets are hidden by default; enable Show system datasets in the Datasets workspace to see them.
- An Entity Dataset entry for a message is created only after the journey or campaign is published, and you may see the entry 30 minutes after the publication of the campaign or journey.
- Do not automatically convert a
NULLor missingisTestExecutionvalue tofalse, and do not assume that every null value represents a production execution. - In some journeys,
messageIDmay not be unique for each individual delivery; to track events at the individual send level, combinejourneyVersionID,journeyActionID, andbatchInstanceID(for batch journeys) oridentityMapfields. - 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
sentorbounce) ≠ “AJO Email Tracking Experience Event Dataset” (interaction events such as opens and clicks) ≠ “Journey Step Event” (custom action execution status, latency, and error details) - 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: Why does a query for the CJM Consent Service Dataset or CJM Push Profile Dataset return “Table not provisioned for dataset”? — These system datasets are not available as queryable tables in Query Service, so the response is expected.
- Q: How do I separate test executions from non-test executions? — Use the
isTestExecutionfield; treatNULLor missing values as unknown rather than converting them tofalse. - Q: How do I get marketer-defined metadata for messages in reporting? — Use the Entity Dataset, which uses the
messageIDattribute to stitch datasets such as the Message Feedback Dataset and Experience Event Tracking Datasets; to sort emails sent by a journey by action, join the Message Feedback dataset with the Entity dataset using_experience.decisioning.propositions.scopeDetails.correlationIDand the_idfield in the Entity dataset.