What tool does Asana use for Analytics?

Hello the Asana team!

We’re fans of SPA in our company and we are getting started with Analytics to track how our products are used. We wondered what tools you’re using and how good it fits with the SPA-way.

We’ve been using Google Analytics and Google Tag Manager for a week but they really aren’t SPA-friendly to our taste, do you have any trick or advices? We’d love to hear about your experience :slight_smile:

On a side node, we joined the Asana community over 3 weeks ago from Trello, and to me it feels like moving from “working with people” to “working together”. We love the tool! Great job! :wink:

4 Likes

Thanks for the kind note, @Ambroise_Unly.org, and for the great feedback :smile: And welcome to the community!

@Jessie_Beck and @Alexis can share more on how we use Analytics tools in the Community and our static sites.

2 Likes

I know some things about our analytics pipeline that I’d be happy to share!

We indeed use Google Analytics for our “static” site (what you see if you go to asana.com and are not logged in) and my buddies here at Asana can tell you more about how that works. In our app itself, we log information using kinesis, which is a good tool for high-bandwidth data streams.

Each night, we have a cron job on a production machine that reads through these logs and takes this firehose of data and saves it in a more useful form in redshift. We then have some in-house tools that our data science team has built to consume this information, and we also use looker and interana for dashboards and useful one-off analysis.

4 Likes

Thanks for the explanation, it’s not a simple workflow you’ve got there. You must deal with a ton of analytics data! We’re not at this level of data-flow yet :slight_smile:

Google Analytics is nice to track pageviews, do you also use it to track events within your app, or do you use another solution? (Maybe linked to Google Tag Manager?)

We currently use Google Analytics for tracking pageviews (with manual pageviews when browsing in the SPA, we basically simulate natural browsing), and we use GTM to track events, which allows our analytic team to add new events anytime just by target existing DOM elements (ids, classes, etc.)

But, we’ve run into quite a few issues due to SPA. Basically, GTM binds events to DOM elements, but those elements are added/deleted dynamically without page refresh (i.e: when browsing), which messes up with GTM because it lost the bound DOM events and doesn’t work properly.

We’ve found a workaround which consists of re-binding all DOM events at every pageview, and it works (but has unwanted side effects)

Another workaround would be to send those events programatically, like for instance adding an event on a button and send the event when a user clicks on the button (<a onclick="ga.send()" />). Doing so will avoid the DOM bound events breaking issue, but then our analytic team doesn’t have the hand on the events and everything must be hard-coded in the source code, and therefore relies on a developer. (and add unwanted complexity in the source code, that may be the source of bugs, etc.)

Did you run into such issues? Tracking pageviews is quite simple, but tracking events is much harder on SPA (because the page never refreshes and bound DOM events are lost when the DOM content dynamically changes)

Hi @Ambroise_Unly.org - We appreciate your enthusiasm! Thanks for joining us here and starting this discussion. @Matt_Bramlage summed everything up succinctly! If you’re interested in learning more about how we engage with data on the Community side of things at Asana, let me know and I’ll be happy to share :slight_smile: