I use this 20 times a day, every day, on all my environments to test my marketing code and strategy. It tells me everything I need to know about my xDB Tracker Contact and Session.
8.2 - https://github.com/buildabonfire/Bonfire.Analytics.Dto/tree/feature/Sitecore8.2
9.0 - https://github.com/buildabonfire/Bonfire.Analytics.Dto
Example JSON: https://gist.github.com/dnstommy/0e8651ddff95c04d6463af4c81cc5889#file-analytics-dto-example-json
When I was at Sugcon EU recently, I was asking around how developers and marketers were seeing their xDB data, in session. This is seeing the facets, patterns, profile calculations, marketing automation, etc., in the current browser so that you can test your personalization in real time. Knowing what goals I have triggered, what pages I am tracking vs skipping, what profiles I am assigning to my pages, patterns I am triggerinng, am I assigning the proper data to the facets. All super important to develop a cohesive marketing strategy.
With one of my current clients, I have several facets that are full of valuable data that we are collecting during the user's visit. Based on what the user is doing, we are adding and clearing data, firing goals (from APIs and inner Sitecore), associating profile cards, calculating patterns, putting users in marketing automation, and more. During development, I am constantly needing to know exactly what the shape of the current visitor (contact) and visit (interaction) is, so I know my code is working right. A while ago, I think it was the Launch Sitecore demo, they introduced a side panel that has all this data in a nice clean display. They have carried this further into the Habitat and Habitat Commerce demos.
You could click on the side tab and a panel would slide out, showing you the visits patterns, scoring, etc... I thought this was cool stuff, but I needed more data and for it to be more analytical, less visual. So I created what I call the Bonfire Analytics DTO.
The JSON result has several details and I am adding more as I find I need more data.
Contact - The current user's contact from and for xDB. This has all the Sitecore facets like email, phone numbers,
Session - The current user's contact in the current session. This is the difference between visit and visitor. The session is what is happening in the current visit. The Contact is all the previous visits, plus this visit
KeyBehaviorCache - Tracker.Current.Session.Contact.GetKeyBehaviorCache(). This is all the goals, page events, channels, outcomes, and campaigns.
BehaviorProfiles - Tracker.Current.Contact.BehaviorProfiles
IsActive - If the tracker is active
CurrentPage - The current page the user is on.
Interaction - The interaction details like Geo, browser, etc.. All the stuff that is in the Mongo interactions database.
Campaign - The current campaign the user is in.
VisitCount - How many different sessions the user has had with the current site.
PagesViewed - All the pages viewed during this session. This is good to know what pages you are going to send back to analytics if you are trying to hide some from Path Analytizer.
GoalsList - All the goals the user has hit (and the EV value) during this session. All goals ever are in KeyBehaviorCache.
EventsList - All the events the user has hit during this session.
Here is an example of the DTO on my dev site.