Skip to content
All Posts
CJAAnalyticsAEP

Setting Up Cross-Channel Reporting in Customer Journey Analytics

February 1, 2025 | 5 min read | Mihai Hurjui

What CJA Actually Solves

Customer Journey Analytics exists because most enterprise teams have customer data scattered across platforms that don’t talk to each other. Web analytics in one tool, app analytics in another, call center data in a CRM, email engagement in the ESP. Everyone has their own user ID, their own event taxonomy, and their own definition of a “conversion.”

CJA pulls all of this into one analysis environment. It sits on top of Adobe Experience Platform datasets and lets you build cross-channel reports without writing SQL or building custom ETL pipelines.

The catch: it only works well if the data flowing into AEP is structured correctly. Garbage in, garbage out applies here more than anywhere.

Step 1: Get Your AEP Datasets Right

Before touching CJA, you need clean datasets in AEP. Each dataset represents one channel or data source:

  • Web behavioral data — Collected via Web SDK, mapped to XDM ExperienceEvent schema. This is your page views, clicks, form submissions, and Target activity impressions.
  • Mobile app data — If applicable, collected via the Edge Network mobile SDK. Same XDM ExperienceEvent schema, different data source.
  • CRM/offline data — Uploaded via batch ingestion or streaming API. Uses a custom ExperienceEvent schema with your offline interaction fields.
  • Profile data — Customer attributes that don’t change per event (account type, LTV segment, registration date). Uses XDM Individual Profile schema.

Each event dataset must have an identity field that CJA can use to stitch sessions across channels. This is typically an authenticated user ID (like a CRM ID or login email hash) set as the primary identity in the XDM schema.

For anonymous web visitors, you’ll rely on the ECID (Experience Cloud ID) and use CJA’s cross-device stitching to connect anonymous sessions to authenticated ones retroactively.

Step 2: Create the CJA Connection

The connection is the bridge between AEP datasets and CJA. This is where you define which datasets CJA can access.

In the CJA interface:

  1. Add datasets — Select the event, profile, and lookup datasets you need. You can combine web + app + offline event datasets into one connection.
  2. Set the person ID — For each event dataset, map the field that represents your person identifier. This must match across datasets for cross-channel stitching to work. If your web data uses ECID and your CRM data uses a customer ID, you need identity resolution configured in AEP first.
  3. Enable backfill — Choose how much historical data to pull in. CJA can backfill months of data, but the initial ingestion takes time. Start with 3 months if you’re setting up for the first time.
  4. Set the rolling data window — This determines how much data CJA retains. Unlike Adobe Analytics, CJA has no perpetual data retention by default. Configure based on your reporting needs and contract.

Step 3: Build the Data View

The data view is where CJA becomes powerful. It’s where you define dimensions, metrics, and business logic without touching the raw data.

Key configuration decisions:

Dimensions

Map XDM fields to named dimensions. For example:

  • web.webPageDetails.name becomes “Page Name”
  • productListItems.name becomes “Product Name”
  • Your custom _tenant.campaignSource becomes “Campaign Source”

You can create derived fields for logic that doesn’t exist in the raw data. For example, combining UTM parameters into a standardized channel grouping, or bucketing page URLs into content categories.

Metrics

Define how events translate to countable metrics:

  • Page Views — Count of events where web.webPageDetails.pageViews.value exists
  • Orders — Count of events where commerce.order exists
  • Revenue — Sum of commerce.order.priceTotal
  • Custom events — Any XDM field can become a metric with the right counting method (occurrences, unique people, sessions)

Attribution Settings

CJA lets you set default attribution per metric. This is one of its biggest advantages over Adobe Analytics, where attribution models were limited:

  • Set orders to use “last touch” with a 30-day lookback across all channels
  • Set assists to use “participation” to give credit to every touchpoint
  • Set engagement metrics to use “same touch” for immediate attribution

These defaults apply across all reports in this data view but can be overridden per panel in Workspace.

Session Settings

Define what constitutes a “session” in your data view. The default is 30 minutes of inactivity, but you can customize:

  • Timeout-based (standard): Session ends after X minutes of no events
  • Event-based: Session ends when a specific event occurs (like a purchase or logout)

For cross-channel reporting, session definition matters. If a customer browses on web, then calls support 20 minutes later, should that be one session or two? The answer depends on your analysis goals.

Step 4: Build Workspace Reports

With the data view configured, build reports in Analysis Workspace. CJA’s Workspace is nearly identical to Adobe Analytics Workspace but with cross-channel capabilities.

Essential cross-channel reports to build first:

  1. Channel overlap — Freeform table showing which channel combinations drive the most conversions. Dimension: marketing channel, broken down by marketing channel for the same person.
  2. Cross-device pathing — Flow visualization showing how customers move between web, app, and offline touchpoints before converting.
  3. Attribution comparison — Build the same conversion report with 3 different attribution models side by side. This immediately shows which channels are overvalued by last-touch and undervalued by the default model.
  4. Cohort retention by acquisition channel — Group customers by their first-touch channel, then measure retention over weeks/months. This reveals which channels bring loyal customers vs. one-time buyers.

Common Setup Mistakes

  • Mismatched person IDs — If web data uses ECID and CRM data uses email, you need identity stitching in AEP. Don’t try to use different ID fields across datasets in the CJA connection — the reports will show separate people for the same customer.
  • Over-scoping the data view — Start with 10-15 dimensions and 5-8 metrics. You can always add more. A data view with 200 fields is unusable.
  • Ignoring session definition — The default 30-minute timeout creates misleading session counts for cross-channel journeys. Test different thresholds against known customer journeys.
  • Skipping data validation — Before building reports, verify record counts in CJA match what’s in AEP. Discrepancies usually mean identity field mismatches or dataset connection issues.

CJA setup is not a one-day project, but the first useful reports can be running within a week if the AEP data foundation is solid. The hardest part is always the identity resolution — get that right and everything else is configuration.

Written by Mihai Hurjui

Adobe Experience Platform Consultant

More Posts