Belfius Questions
Questions
- Can we work with nested arrays as profile attributes?
Belfius stores contract information (1-N relation) as a nested array in profile. Can we create a relation from this nested array to a contracts lookup table? Can we use the atributes of array as dimensions and use them in reporting?
- Define lookups for nested array attributes?
Can we define lookup datasets for nested contracts? We need to be able to load additional contract information for analysis. Information we do not keep in profile.
- What is the effect of binding dimensions?
We would like to understand which "product find methods" (offer click or search) led to a product view. Not just recent or last, we need all.
- What is the effect of "session"-timeout?
- Can we we do reporting with just device id's? Just like Adobe Analytics?
Answers
Can we work with nested arrays as profile attributes?
CJA Filter: Nest Array - Lookup
Belfius stores contract information (1-N relation) as a nested array in profile. Can we create a relation from this nested array to a contracts lookup table? Can we use the atributes of array as dimensions and use them in reporting?

Create Dataset and load data
- Create dataset "BF_PROFILE_CONTRACT_LOAD" based on XDM "BF_PROFILE_CONTRACT_LOAD"
- Create workflow "Map CSV to Schema"
- Data to load into BF_PROFILE_CONTRACT_LOAD

Create a profile schema with a nested array (not profile enabled)
- XDM: BF_PROFILE_CJA_NESTED_ARRAY
- Fieldgroup: BF_CJA_NESTED_ARRAY
- Identity Namespace: BF_CLOUD_ID

Transfer data from BF_PROFILE_CONTRACT_LOAD to BF_PROFILE_CJA_NESTED_ARRAY
insert into BF_PROFILE_CJA_NESTED_ARRAY
select struct(
struct(
struct(r.identity as identity) as identification,
r.contracts
) as BF_CJA
) _demoemea
from (
select c.identity, collect_set(c.contracts) as contracts
from (
select l._demoemea.IDENTITY,
struct (
l._demoemea.CONTRACTID as contractID,
l._demoemea.CONTRACTTYPE as contractType ,
l._demoemea.CONTRACTFREQUENCY as contractFrequency
) as contracts
FROM bf_profile_contract_load l
) c
group by c.identity
) r
Create XDM for event data BF_EVENTS_CJA
- XDM: BF_EVENTS_CJA
- Fieldgroup: BF_EVENTS_CJA
- Identity Namespace: BF_CLOUD_ID

Create dataset BF_EVENTS_CJA
- Create workflow "Map CSV to Schema"
- Data to load into BF_EVENTS_CJA:
- !(BF_EVENTS_CJA_MAPPING.png)(./assets/BF_EVENTS_CJA_MAPPING.png)
Create connection and dataview in CJA
- Connection: Datasets: BF_PROFILE_CJA_NESTED_ARRAY, CJA_EVENTS
- Dataview:
- (Profile datasets) Add nested array attriutes _demoemea.BF_CJA.contracts as dimensions
- (Event datasets) Add event attributes _demoemea.BF_EVENT as dimensions
Create Project Project in CJA
- Project name: mmeewis - BF CJA Questions
What are the current holdings of customers that view a page or sign a contract?

Define lookups for nested array attributes?
CJA Filter: Nest Array - Lookup
Create XDM and dataset BF_CONTRACT_LOOKUP
Schema:

Dataset: BF_CONTRACT_LOOKUP
Add dataset BF_CONTRACT_LOOKUP to CJA Connection
- Add BF_CONTRACT_LOOKUP and select contractReg as key, select contractID as matching key in BF_PROFILE_CJA_NESTED_ARRAY

Create workflow "Map CSV to Schema"
Data to load into BF_CONTRACT_LOOKUP: File: bf-cja-contract-lookup.csv

Edit CJA project
- Add a new freefrom table in mmeewis - BF CJA Questions
What is the relation between a profile's contract brand and a profile's behavior?

What is the effect of binding dimensions?
CJA Filter: Binding
We would like to understand which "product find methods" (offer click or search) led to a product view. Not just recent or last, we need all.
Extend CJA_EVENTS
Add the following attributes to CJA_EVENTS
Type "string"
- _demoemea.BF_EVENT.useCase
- _demoemea.BF_EVENT.searchTerm
- _demoemea.BF_EVENT.productName
- _demoemea.BF_EVENT.productFindMethod
- _demoemea.BF_EVENT.offerName
Type "integer"
- _demoemea.BF_EVENT.searches.value
- _demoemea.BF_EVENT.productViews.value
- _demoemea.BF_EVENT.clicks.value

Create workflow "Map CSV to Schema"
- Data to load into BF_EVENTS_CJA:


Edit CJA project
- Add a new freefrom table in mmeewis - BF CJA Questions:
What is the effect of binding dimensions?


What is the effect of "session"-timeout?
CJA Filter: Session
Create workflow "Map CSV to Schema"
- Data to load into BF_EVENTS_CJA
- Our data is about one single customer going through a number of journey steps (eventtype). Between step4 and step5 is a gap of 2 days (Jan 4th - Jan 6th).


- Copy data view "mmeewis - BF CJA Questions" and rename to mmeewis - BF CJA Questions - Timeout 3 days
- Edit mmeewis - BF CJA Questions - Timeout 3 days and set Session timeout (via Settings tab) to 3 days

Edit CJA project
Add 2 panels one linked to data view mmeewis - BF CJA Questions and another one to mmeewis - BF CJA Questions - Timeout 3 days:
- Add Use Case = Session filter to each of teh pannels
- Add free form table, using Use Case field as the dimension (will be limited to Session because of panel filter.
- Use People, Sessions and Events as metrics and compare the value for sessions using all the data ingested. With a timeout of 30 minutes we have 2 sessions. The reason for this is the 2 day gap between event4 and event5. With a timeout of 3 days we have only one sessions.
- Add a funel to both panels and change to Session in its settings. Start with journey.step1 and end with journey.step8. For a session timeout of 30 minutes we have a fallout of 100%. For a session timeout of 3 days we have a fallout of 0%.

