Expand my Community achievements bar.

CJA: Session Persistence Not Working on Derived Field


Level 1


I am trying to create a Marketing Channel Group derived field in Customer Journey Analytics that uses a combination of Source, Medium, and Campaign Name in the Case When logic to identify channels. Some channels are also using Referring URL in the logic.


Source, Medium and Campaign have session persistence set up; however when validating the derived marketing channel group field, the session persistence is not working as expected on the Marketing Channel Group.

For example: A single session will have multiple marketing channel groups even though there is one source/medium which we expect would be grouped under one marketing channel group.

Note: Marketing Channel Group is set up with session persistence 



Detailed example:

Marketing Channel Group Logic:

IF source/medium contains any term "cpc"

or source/medium contains any term "sem"

THEN "Paid Search"


ElseIF source/medium is not set

and Referring URL starts with [our site's domain]

THEN "Direct - Internal"


This is what we are seeing in the output:

Session: Date/Time: 4:22pm

Page: pageA

Source/Medium: google/cpc

Referring URL: google.com

Marketing Channel Group: Paid Search


Date/Time: 4:27pm

Page: pageB (same domain as pageA)

Source Medium: google/cpc (persisted as expected from the entrance source/medium above)

Referring URL: [our site's domain]

Marketing Channel Group: Direct - Internal (we would expect to see Marketing Channel Group = Paid Search based on the Marketing Channel Group logic we have in the derived field.)


Topics help categorize Community content and increase your ability to discover relevant content.

2 Replies


Community Advisor

Derived fields look at the row level data in the connection.  Persistence and other settings are applied at the data view level.  At Summit I believed they announced some new functions were coming to derived fields, including looking at changes from previous/next hit.  Not sure if this will solve for your use case, but definitely opens up new use cases.

In CJA since derived fields are evaluated on every event, you can leverage No Value as a replacement for Direct / Session Refresh.  In your derived field logic, set these channels to No Value.  When you pull in your marketing channel dimension, here's the No Value settings I'd suggest.  When there isn't another channel, the user will see Direct / Session Refresh label.  But it won't overwrite other channels.

I have a blog post in review that I'll hopefully have published soon to help clarify this.