I've used most of the usual suspect tools. Currently we're primarily using Amplitude and Google Analytics.
GA is great for aggregate signup/funnel analysis, but doesn't let you go much deeper. Also, GA conversion goals seem to always have a significant margin of error.
Amplitude is great, but we can't seem to tie the data together. We're using Amplitude via Segment's JS widget, which tracks the pages a user visits etc., and then we also fire a signup event through Segment's Ruby gem. Both of these things work great, but we can't seem to find a way to tie the data from the front-end, logged out user tracking to the back end event that fires on signup.
Is this a problem with our implementation? Would we have better data in Amplitude if we integrated directly?
Also just curious if folks have suggestions on better ways to handle this (whether with the tools we're using or other ones!)
Hey Austin, If you're only calling .identify() on your backend you'll also need to call this on your front-end and make sure you're passing the same userId. This is a requirement to be able to associate the events with the correct user regardless of if you're implementing it via Segment or directly with Amplitude. This article describes how it works with Segment pretty well. There are a lot of pros to calling events on the backend and I generally prefer this approach, namely, because it is more reliable as events don't get lost because of adblockers. The advantage of tracking events on the client is that you can capture additional context about the event that might not be available on the backend. As far as new tools, I'm building Iterative.ly to help make it easier for folks to document their tracking plan and generate type-safe SDKs that match the spec.
Hey,
I think that your amplitude implementation has some issues. I can for sure link the data.
I’m using segment and amplitude and everything works well. But in my case I’m doing everything in the front end.
I believe that you should look at segment and amplitude doc about the user id and anonymous id.
I think the issue should come from something like the front and back are not using the same ids, or the identify method (segment) is not triggered at the right moment.
Do you use segment for the backend also ?
Why you don’t trigger all the event by the front end ?
Thanks for the tip on anonymous ids - we are not using them for our identify calls to Segment. I think if we implement anonymous ids, it will help tie everything together.
Looking for a better way to plan remote meetings across time zones, and keep up with events. What software is doing that best today?
Interesting, this is super helpful. Thanks! Also, Iteratively looks really cool. We'll take a closer look.