Adobe Customer Journey Analytics keeps getting better with Derived Fields

You won’t be too surprised when I tell you: I’m a big fan of Adobe’s Customer Journey Analytics. Ever since I got the pleasure of using it for the first time four years ago, I am excited for every new release and its many new features. Sure, there are some things that Adobe Analytics is still better at, but the way CJA innovates on familiar concepts clearly shows how it will one day surpass AA’s features. The most recent release is no exception to that trend.

As you know, Customer Journey Analytics works fundamentally different from Adobe Analytics. Where Adobe Analytics relies on the Visitor Profile to keep data about a Unique Visitor’s history and provide information like Entry Pages, Exit Pages, etc., Customer Journey Analytics does those things in real-time when we query the data. While this brings challenges for a couple of use cases (like deriving the Visit Number of a User) it brings some exciting potential through features like Derived Fields.

Derived Fields allow us to take the data we have collected from websites and apps (or any other data source in Experience Platform) and change it on the fly, without any re-ingestion or complicated SQL queries. And while some use cases are still best solved through Query Service, it’s great to see how Adobe reduces the reliance on this 90’s approach to data analysis. So, let’s look at what Adobe has just released!

New features in June release

On the “less impressive but maybe interesting to some”-side, we see how Adobe tries to innovate on the cost-saving measure that ruined customer service a while back: chatbots, but now with the universally required “something something AI something” marketing around it. Nothing to say about it, so let’s move on.

It’s much more exciting to see how Adobe is innovating on the concept of identities and user identification. Experience Platform had the Device Graph feature for a while, but CJA was never connected to it. That is about to change, with support for graph-based identities. There’s not much public information on this out yet, but this feature will be very helpful for a lot of companies, especially those with a focus on cross-device user journeys.

On a related note, Adobe is making it easier for B2B companies to bring account-related data into CJA, mirroring what they are doing with B2B RTCDP. This is pretty much what Customer Attributes did in Adobe Analytics and we could manually do through some AEP transformations, but easier and more automated. Pretty neat!

I can appreciate most of those features, but for me, there is a way more exciting part to the release notes!

The exciting part

Derived Fields just got updated again! Two items from my personal wish list finally got implemented. And not just that: They will get updated again later this month, so stay tuned for another post!

With the first new feature, we can now do some simple math directly within Derived Fields. To do that, we just need to open the Derived Fields editor and drag the Math function in:

After that, we can drag and drop any Schema fields from the list (1) into the formula (2) and type in whatever operator we want to use (3). Very easy! In this case, I’m creating a new field for the pixel count of the client’s device. In a similar way, it would be super easy to do some revenue calculations or even directly convert page load time metrics from milliseconds to seconds, making them much easier to handle. I can even think of some more advanced calculations, like calculating the difference between two timestamps, allowing to calculate the time between a travel booking and the travel date. Pretty cool! In a future release, it would be great to have support for datetime fields or some conversion options.

The next feature is probably one of the most requested ones, both for Adobe Analytics and Customer Journey Analytics: Previous and next values. The interface looks quite simple:

As we would expect, we can select which field we want to calculate the next or previous value for. In the row below, we can then ask CJA for the next or previous value for a Session or User, as well as specifying if we want the first, second, third, and so on value. So, if we want to have a Previous Page Name field, we could simply create it like this:

If we would increment the Index field, we could get the second previous value. That’s super cool! With the “Include repeats” field, we can even ask CJA to not report any repeated occurrences, eliminating reloads or on-page events. Neat! While the documentation mentions a “include No Values” option, it’s not in the interface yet and might be to be released soon.

Now, getting a single previous value is cool, but how often can we use this function? Right now, we are limited to three instances of this function per Derived Field. That made me think: Can we use it for pathing use cases? The answer is: Absolutely, with a config like below:

As you can see, I’m first asking CJA to give me the previous (1), second previous (2), and third previous page (3) in the User’s Session. After that, I’m using the Concatenate function to put the values into a single string, separated by a ” -> ” delimiter. In Analysis Workspace, I can now quickly use this as a breakdown for my important pages to understand what people have done before that page:

How cool is that! With those exciting two features, I can think of a bunch of neat use cases:

  • As shown above, create pathing dimensions across pages, clicks, or even a combined field, both for previous and next actions
  • Create a dimension combining the previous, current, and next page into a “page context” dimension, showing precisely what people are doing before and after a given page
  • Thinking back to the math function introduced above, we could calculate the difference between a previous time stamp and the current one, given both are integer fields. Once the “ignore empty values” feature is here and we have timestamps on our most important events, this would allow us to calculate things like “time since last purchase”, “time since last page view”, “time until next purchase”, etc.
  • Compare the previous page name with the current page name to create a “Reloads” metric, like we have in Adobe Analytics
  • And so much more!

This. Is. Amazing! Once we start combining functions, we have an insanely powerful set of tools right at our fingertips. I can’t even begin to express my excitement for this. Great job, Adobe!

Conclusion

I love to see the great work of Adobe’s excellent product team lead to great features like this. Analysis Workspace has made Adobe the undisputed leader in the analytics space, which now finally gets a powerful-enough backend to enable the same playful exploration and real-time analysis capabilities. I originally wanted to wait for the release of the other features mentioned in the release notes, but I wanted to share how happy I am with this release right away. You can find an update on the new Summarize feature in this new post!