To develop better reporting, we merged our marketing and product data into one. This outlines how we got that done.
Teams can answer questions like these without the help of a data analytics team:
The setup was achieved by just a full-stack engineer and myself. For the initial product analytics setup, I brought on a consultant. This took a few weeks of work + additional few weeks of testing data. The work with the consultant wasn't very successful so we eventually took it on internally.
For the marketing analytics this also took a month long implementation process. Our tech stack includes a react app, framer websites, a blog hosted on Ghost, a shopify store, and multiple plugins and extensions. We use a mix of server-side and client-side tracking to get the most amount of data.
We ran through the analytics setup ourselves and made some mistakes. That's ok and was expected!
For UTMs, we used Mixpanel's out of the box setup.
To stitch prelogin and post login data, we used a combination of mixpanel.alias (backend) and mixpanel.indentify (frontend). If you are using only frontend library, then mixpanel.identify will do all the work for you.
The UTM params are stored in the cookie but are only being sent on certain events and not all of them. I use the Initial UTM params on the profiles most of the time so it's not that big of a deal. But it can be a problem and you could use formulas to bypass this.
We still have code lying around for GA4 but I honestly cannot stand their UX anymore. I don't recommend using it. Plus, Mixpanel integrates with Hotjar so you can see a lot more visual data alongside metrics.
The insights we get out of Mixpanel was historically impossible to do so and we couldn't be happier with the time invested. What we ended up with was a robust analytics system that I once only dreamt of having. This allows me to focus on channels that work and remove ones that don't. It also helps identify friction points in the product.
1) Filters display only 3,000 rows at a time. To view more, you can filter, segment, or export in CSV format with up to 10,000 results. However, for larger sites, especially in programmatic SEO, you'll need to analyse outside of Mixpanel.
2) There is no native integration with Search Engine Console. However, GSC data is sampled and not entirely accurate for low volume keywords in terms of click data. So Mixpanel is reliable in terms of click data.
3) Unlike Google Analytics, there's isn't a no-code integration with Looker or Data Studio.
4) Tag Manager integration is now available. I implemented it quickly on my site (toption.org) in 10 minutes, but it doesn't track 'time spent'. This might be an error on my part but could also not be. But the team is shipping fast. A month ago, they didn't have GTM but now they do (after I had a feedback session with their PM). So, tech is evolving in the right direction.
5) If you have a landing page that also acts as a navigational site item, it's much harder (or impossible to get data) on how many users land because you need to exclude users that just find the page via navigational search.
6) You don't see metrics like bounce rate right off the top of Mixpanel but you could create a funnel report.