Who wants more conversions?
Of course you do!
We all put lots of effort into improving conversions on our website or mobile app traffic. To accomplish that we need to better understand our customers, our conversion path flow, abandonment and struggle points. The more information we have, the better. And this includes time to conversion or transaction on our website.
Google Analytics, out of the box gives us invaluable information such as number of sessions before transaction and number of days before conversions. This gives data supported insight into how keen our customers are. Is the purchase an impulsive act or well thought through decision? Do people tend to research the market before committing to the brand or just convert immediately?
But what about number of days from the first touch point? Or minutes or seconds (lucky you if it's just seconds) before the conversion happened? Here are a few analytics questions where such metrics would be invaluable:
- How much of the content was consumed prior to the purchase decision? Was the visitor convinced within the first half OR did they need to read to the bottom of the page to satisfy their decision?
- How long is it taking my visitors to get through the content? Is it a quick process or long process?
- If it is taking visitors a long time for what should be a simple process - does this indicate that there are issues/hurdles in the process which need to be rectified?
- How long does it take for my customers to complete the checkout process?
I am sure you can think of a couple more.
Well - Google Analytics is not going to help us. The Goal Funnel in GA is not recording time and you can't create a funnel for an Event-based Goal.
We, at Internetrix believe that if you need some specific data - you should have it! It's doable, we just need to get a little bit technical.
Luckily, Google Analytics has customisable User Timing reports and Timing Hit Type which can deliver user specified timing value to Google Analytics. Timing works pretty much like Google Analytics Events - you send a timing hit (instead of event) together with Category, Variable, Label and time as a value.
- Timing Category - Conversion or Transaction or anything else you see fit
- Timing Variable - Completed or Reached Step 1 or 2 or 3 of the conversion pathway
- Timing Label - Product Name or Conversion (Goal) Name
- Timing Value - time passed in milliseconds
As you can see, it's pretty flexible and you can fit lots of data in these 4 fields. All you need is to "remember" the time when the current session has started and send a GA timing hit when the transaction or conversion happened.
If you are taking tagging seriously (like me), then you are using a tag manager solution (for example Google Tag Manager) to collect analytics data.
Let's do this!
1. Create 1st Party Cookie Variable to store session start timestamp
In my example I named the cookie irx_time2conversion_sesson_start. But you can name the cookie whatever you like.
2. Create Trigger for Session Start
On session start we will save the current timestamp to the cookie and timestamps usually contain numbers. So our trigger checks if the cookie is not empty and contains digits.
3. Create Tag, making sure to write session start time to cookie (very important)
4. Use the Session Start Trigger you just created to fire this Tag, so it will only fire when the cookie has no value (first hit of the session)
5. Create a Variable returning time since Session Start in milliseconds
6. Google Analytics Transaction Timing Tag using Track Type as Timing.
Name your timing Variable Completed, Category Transaction and Label leave empty for now.
Use your just created Variable IRX - Time2Conversion - Time Since Session Started as a timing value.
Fire this tag on your conversion page.
That's it - 6 simple steps for awesome insights!
Now, what could possibly go wrong with that implementation? Honestly? A lot! Cookies are not the best place to save data such as this as cookies are being sent with every page request. A better way of doing so would be leveraging the browsers' sessionStorage object. However, not every browser supports this so that's why we need to fallback to using a cookie. The current implementation is not robust enough - it just solves razor task of tracking session time to conversion. But what if we want to know the time from the first user touchpoint? What if we need to measure timing on each checkout step? We will have to modify our implementation to be more universal or repeat it again and again.
As you have noticed, we have left the Timing Label variable unused. It can be used to break-down timing reports by product name or category, selected payment options, delivery etc.. You can even measure how long it takes for the processing centre to process payment.
The beauty of Google Analytics is that Timing data is placed into the right content of page, session and user.
Yeah, this guy definitely wants more conversions as well!