Who visited my website? Find out with Google Analytics

In every retail business, knowing your customers is vital to succeeding. All decisions you make about business and marketing strategies must begin from the user's perspective. Let's find out how we can build the user persona with the data that lies in Google Analytics. Even though Google's user profile is not as fancy as Facebook's, you can still have a pretty good idea about your customers. Let's start with the basics, and ask the most basic questions: How many of my customers are men or women? What is the age range of my customers? What devices do they use to access my website? How often do they visit my website? What are their interests? What makes them convert? For the first two questions, you should already have enabled Demographics and Interest reports in your Google account. If not, go to Admin > Property Settings > Enable Demographics and Interest reports. The split of age and sex can be seen in Audience > Demographics. The most interesting thing here is that you can add a second dimension to compare and see how people are different based on more than one vector. If you add a second dimension, such as Device Category, you will get a split like this: You can see from the above screenshot that females prefer mobile and are the majority user. Also when females are on desktop, they are more likely to spend more time on the website. You can go into more depth and analyse the conversion rate also. You can find out the behaviour of new vs. returning customers from the report, New vs. Returning under Audience. Add a second dimension "Gender" and you will see who's more likely to come back to your website. Based on the above screenshot, women are returning about 25% of the time, while men return about 21% of the time. Also, men have a higher bounce rate. Under Audience, you will also find the Frequency & Recency report and the Engagement report. If you create two new segments by gender: female and male, you will find who your most loyal visitors are. The interests (Google reads them from the user behaviour online) can be found under Audience > Interests. It is best to split the report based on females and males. You will now have a full view of your customers. And for the final and most important question: what makes them convert?, you can find this out by going to Aquisition > Channels. Add a second dimension by gender, age or interests and analyse the traffic for each channel. Find out what channel brings the most important users. In the screenshot below, you can see that woman are more likely to buy if the website is referred. This means that the reputation of the website is a big factor in their decision. Don't be shy when creating custom reports because you can drill down the data to multiple levels of understanding. Applying second dimensions has its limitations and you can see only a part of the information at once. If you still need a more detailed view of what each customer does on the website, we strongly recommend the User Explorer menu. We found it useful to find out how different touch points are important and how long the path is for a valuable customer. Also, it was useful in debugging and creating a marketing strategy based on the customer's flow. The bottom line is that you can answer "who is your customer?" with Google Analytics through its reports if you learn to see the report from different perspectives. Feel free to drop us a line if you use any other report that is relevant to this article!   Get Social! Follow us on LinkedIn, Twitter, and Facebook and keep up-to-date with our Google Analytics insights.

2016-11-17

Exclude fake 'bot' traffic from your site with Google Analytics

Ever wondered why so few visitors convert on your site? One answer is that a big chunk of your traffic is from search engine spiders and other web 'bots' which have no interest in actually engaging with you. Google Analytics has a great new feature to exclude this bot traffic from your site. All you need to do is check a box under the Admin > View > View Settings. The new option is down the bottom, underneath currency selection. It uses the IAB /ABC Bots and Spiders list, which is standard for large publishers, and updated monthly. Warning: you will see a dip in traffic from the date you apply the setting. If you're looking for a more comprehensive method to exclude spam and ghost referrals, check out our how-to guide! Have some questions about this? Get in touch with our Google Analytics experts!   Get Social! Follow us on LinkedIn, Twitter, and Facebook and keep up-to-date with our Google Analytics insights.

2016-11-15

What are Enhanced Ecommerce reports?

In May 2014 Google Analytics introduced a new feature: Enhanced Ecommerce tracking. If you run an ecommerce operation, this gets you much more detailed feedback on your checkout process. What will I see? Shopping behaviour: how are people converting from browsers to purchasers? Checkout behaviour: at what stage of your checkout do buyers abandon the process Product performance: which products are driving your sales, and which have a high return rate Real campaign returns: see your real return on marketing investment including promotional discounts and returns How do I set this up? The bad news is it definitely requires an experienced software developer for the setup. The reports require lots of extra product and customer information to be sent to Google Analytics. You can read the full developer information on what you can track, or our own simpler guide for tracking ecommerce via Tag Manager. However, if you already have standard ecommerce tracking and Google Tag Manager, we can set Enhanced reports up in a couple of days with no code changes on your live site - so no business disruption or risk of lost sales. Is it worth implementing? Imagine you could identify a drop-off stage in your checkout process where you could get a 10% improvement in sales conversion or a group of customers who were unable to buy (maybe due to language or browser difficulties) – what would that be worth? Many businesses have that kind of barrier just waiting to be discovered…   Get Social! Follow us on LinkedIn, Twitter, and Facebook and keep up-to-date with our Google Analytics insights.

2016-11-14

How to track time on page with Google Tag Manager

Our script for accurate tracking of time on page beats Google's default measurement to give you an accurate picture of how long users are spending on your page open and in focus. This post translates the approach into Google Tag Manager. The setup consists of two tags (one custom), one firing rule and two variables. Step by step: 1. Add the timer script as a custom HTML tag <script><br /> /*<br /> Logs the time on the page to dataLayer every 10 seconds<br /> (c) LittleData consulting limited 2014<br /> */<br /> (function () {<br /> var inFocus = true;<br /> var intervalSeconds = 10; //10 seconds<br /> var interval = intervalSeconds * 1000;<br /> var eventCount = 0;<br /> var maxEvents = 60; //stops after 10 minutes in focus<br /> var fnBlur = function(){inFocus = false; };<br /> var fnFocus = function(){inFocus= true; };<br /> if (window.addEventListener) {<br /> window.addEventListener ('blur',fnBlur,true);<br /> window.addEventListener ('focus',fnFocus,true);<br /> }<br /> else if (window.attachEvent) {<br /> window.attachEvent ('onblur',fnBlur);<br /> window.attachEvent ('onfocus',fnFocus);<br /> }<br /> var formatMS = function(t){<br /> return Math.floor(t/60) +':'+ (t%60==0?'00':t%60);<br /> }<br /> var timeLog = window.setInterval(function () {<br /> if (inFocus){<br /> eventCount++;<br /> var secondsInFocus = Math.round(eventCount * intervalSeconds);<br /> dataLayer.push({"event": "LittleDataTimer", "interval": interval, "intervalSeconds": intervalSeconds, "timeInFocus": formatMS(secondsInFocus) });<br /> }<br /> if (eventCount>=maxEvents) clearInterval(timeLog);<br /> }, interval);<br /> })();<br /> </script> 2. Add two variables to access the data layer variables One for the formatted time, which will feed through the event label And one for the number of seconds in focus since the last event, which will feed through the event value 3. Add the firing rule for the event 4. Add the tag that reports the timer event to Google Analytics Options and further information You can change the timer interval in the custom HTML tag - the reporting will adjust accordingly. Choosing the interval is a trade-off between the resolution of the reporting and the load on the client in sending events, as well as Google's 500 hit per session quota. We've chosen ten seconds because we think the users who are in 'wrong place' and don't engage at all will leave in under ten seconds, anything more is some measure of success. If you'd like assistance implementing this or something else to get an accurate picture of how users interact with your site, get in touch!   Get Social! Follow us on LinkedIn, Twitter, and Facebook and keep up-to-date with our Google Analytics insights.

2016-11-14

Accurate tracking of time on site

There’s a flaw in the way Google Analytics measures ‘time on site’: the counter only starts from the second page visited, so all one-page visits are counted as zero time on site. If a visitor comes to your page, stays for 10 minutes reading – and then closes the window… that’s counted as ZERO time. With landing pages that have lots of interaction, or the call to action is a phone call rather than a click, this can be a real problem. Pasting the Javascript below onto all the pages of your site will fix the problem. The script logs an event to Google Analytics for every 10 seconds the visitor stays on the page, regardless of whether they bounced or not. But it won't affect your bounce rate or time on site for historical comparison *. We suggest you look closely at how visitors drop off after 10, 20 and 30 seconds to see which of your web content could be improved. Paste this into the source of your all your pages, after the Google Analytics script [dm_code_snippet background="yes" background-mobile="yes" slim="no" bg-color="#abb8c3" theme="dark" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] <!-- Time on Site tracking --> <script> (function(e){var t=true;var n=0;var r=true;var i=function(){t=false};var s=function(){t=true};if(window.addEventListener){window.addEventListener("blur",i,true);window.addEventListener("focus",s,true)}else if(window.attachEvent){window.attachEvent("onblur",i);window.attachEvent("onfocus",s)}var o=function(e){return Math.floor(e/60)+":"+(e%60==0?"00":e%60)};var u=window.setInterval(function(){e=e+10;if(t){n=n+10;if(typeof _gaq==="object"){_gaq.push(["_trackEvent","Time","Log",o(n),n,r])}else if(typeof ga==="function"){ga("send",{hitType:"event",eventCategory:"Time",eventAction:"Log",eventLabel:o(n),eventValue:10,nonInteraction:"true"})}}},1e4);window.setTimeout(function(){clearInterval(u)},601e3)})(0) </script> [/dm_code_snippet] What you'll see In Google Analytics go to Behaviour .. Events .. Top Events and click on the event category 'Time'. Searching for a particular time will find all the people who have stayed at least that length of time. e.g. 0:30 finds people who have stayed more than 30 seconds. FAQs Does this affect the way I compare bounce rate or time-on-site historically? No. The script sends the timer events as 'non-interactive' meaning they won't be counted in your other metrics. Without this, you would see a sharp drop in bounce rate and an increase in time on site, as every visitor was counted as 'non-bounce' after 10 seconds. If you prefer this, see below about adapting the script. Will this work for all browsers? Yes, the functions have been tested on all major, modern browser: IE 9+, Chrome, Safari and Firefox. What if I upgrade to Universal Analytics? Don’t worry – our script already checks which of the two tracking scripts you have (ga.js or analytics.js) and sends the appropriate log. Will this max out my Google Analytics limits? The script cuts off reporting after 5 minutes, so not to violate Google’s quota of 200 – 500 events that can be sent in one session Can I adapt this myself? Sure. The full source file is here.

2016-11-13

Top 5 pitfalls of tracking ecommerce in Google Analytics

We all need our Google Analytics data to be correct and realistic. Online stores, just like any other website, needs correct data to make optimal marketing and sales decisions. What makes ecommerce websites more open to error, however, is ecommerce data capturing. We have put together a list of 5 mistakes of Google Analytics integrations that are worth checking. With faulty or incomplete tracking, not only will your monthly reporting suffer: Poor/inaccurate reporting likely hurts your order volume and sales revenue Poor tracking from Shopify to Google Analytics means you might invest more in low-return marketing channels while missing out on more high-quality leads from better channels Your lack of accurate marketing attribution can hurt your bottom line and more [tip]Learn about data mismatches between Shopify <> Google Analytics...and how to fix them![/tip] Here are the top 5 pitfalls of ecommerce tracking (including Shopify tracking) that we've found in Google Analytics: Tracking code is missing from some pages Multiple page views sent Multi- and subdomain tracking issues Wrong usage of UTM parameters Wrong usage of filters 1. Tracking code is missing from some pages The easy way to check if your tracking setup is complete is to go to Google Analytics > Acquisition > Referrals and search the report for the name of your website:. If you have a lot of pages and are not sure how to find which exact pages are missing the code, you can use the GA Checker. 2. Multiple page views sent The second most common issue we found is having multiple Google Analytics scripts on the same page. The easiest way to check this is with the Google Tag Assistant extension from Chrome. On your online store, inspect the page (see image below). You can also use the GA Checker for this. The solution is to leave only one script on the page. There are situations where you're sending data through Google Tag Manager. If you see 2 pageviews in Tag Assistant or gachecker.com, you should take a look at your tags. There should be only one for pageview tracking! 3. Multi- and subdomain tracking issues Are you seeing sales attributed to your own website? Or your payment gateway? Then you have a cross-domain issue. Here's how to set up cross-domain tracking in Google Analytics. To make sure you don't have a blocker with cross-domain tracking, go to Acquisition > Overview > Source/Medium and find your domain name or payment provider. 4. Wrong usage of UTM parameters You should never tag your internal links with UTM parameters. If you do, every time a customer clicks on a UTM-tagged link, a new session will overwrite the original source, which means you can't accurately trace back your shoppers to the marketing channels that brought them to your site in the first place. Pay attention to your campaign sources and search if something suspicious appears in the list. When you look for the source of your orders, you'll may find the name of the UTM parameters from your website instead. If so, here's how you can avoid this issue.  5. Wrong usage of filters Using filters will improve the accuracy of your data. However, data manipulated by your filters cannot be undone! To prevent your filter settings or experiments to permanently alter your traffic data, you should set up separate views in Google Analytics and leave an unfiltered view with raw data just in case. Check your filters section and be sure you know each purpose. Here's how you can set up your filters correctly. Need help with any of these common mistakes? Get in touch and we'd be happy to help! Our team of ecommerce experts and Google Analytics consultants is here to help. ?

2016-11-01

How to track forms which don't redirect to a thank you page

Many contact forms now use Javascript to submit and do not redirect to a new page. So to track the form, unless you trigger an event on the submit button, you need to listen for a piece of text (usually saying thank you). We have created a custom HTML script that listens to the changes in the page and triggers an event called 'formSubmitted'. This event can then be used to fire a separate tag with event details to Google Analytics. We've tested this on our contact form at Littledata and here's how you can set it up too. [subscribe] Step 1 The first step is to go through the contact form and see what the steps are in completing it. On ours, you just enter the information in the fields and press "SUBMIT MESSAGE". When the message is sent out, the button will say "SENT!". Here the only thing that changed was the text on the button from 'submit message' to 'sent'. We built this HTML script that listens to the changes on the page, but you'll need to change line 10 to be whatever the message is in your form. You will also need to change line 15 if you have multiple forms on the page. [code lang="js"] &lt;script&gt; // **** Littledata Javascript form tracker **** // Generates a GTM custom event called 'formSubmitted' // When an on-page form is submitted // CHANGE the text to match the message displayed // when the form is successfully completed // It is not case sensitive var text = "sent!" // By default it will search for text within the first form // Set to false if text is outside a form // or change to a higher false if there are multiple forms var formIndex = 0; // OPTIONALLY, restrict the search to an HTML element ID // If you leave this blank, the whole page will be searched; // this causes the script to run more slowly var targetId = "" // **** No changes needed to the script below **** text = text.toLowerCase() dataLayer = dataLayer || []; if (!formIndex &amp;&amp; targetId.length == 0) console.error('Form tracker needs either a form or an element ID') var checkEveryMilliseconds = 500; formTrackerInterval = window.setInterval(function(){ var target = "" if (formIndex &gt;= 0) { var form = document.getElementsByTagName('form') target = (form.length &gt; 0) ? form[formIndex].textContent : ""; } else target = document.getElementById(targetId).textContent target = target.toLowerCase() if (target.indexOf(text) &gt; -1) { window.clearInterval(formTrackerInterval); dataLayer.push({ event: 'formSubmitted' }) } },checkEveryMilliseconds) &lt;/script&gt; [/code] Step 2 Now we need to add the script to listen out for when the form is submitted. Create a custom HTML tag in your GTM container. You can name the tag 'LISTENER Contact form submit event' or anything else you will remember it by. Choose the tag type 'Custom HTML'. Copy and paste your HTML/Javascript into the textbox, and remember to change the var text (line 10) with your own text. Step 3 This tag needs a firing trigger, specifying the rules when it needs to be activated. If you can, only fire on specific pages - the script will slow down the page a little, as it runs every half a second to check the form. Give the trigger a descriptive name - here I've chosen "PAGE About us" Select trigger type as 'Custom Event' and for the event name put " gtm.load ", which means this trigger at page load. We want this trigger to work on a specific page only, so the firing rule goes 'page path equals /about-us', which means that our trigger will work on the www.littledata.io/about-us page only. If you have a number of pages that have the form you're tracking, then you could use 'contains' rule and select part of the link that is applicable to all. For example, if all of your links have word 'contact' in them, then your firing rule would say 'page path contains contact'. Step 4 Now that you have your listener tag set up, you need to create a separate tag to send the event details to Google Analytics. Again, give it a descriptive name so you know what it's for - here I've used 'GA event - contact form submitted'. Select tag type as 'Universal Analytics' and in the tracking ID field, select the variable that contains your GA tracking id. For event category, action and label you have to specify the namings by which this data will be categorised in Google Analytics. Step 5 This tag needs its own trigger to know when to fire, and here you have to use the event created by the listener tag set up during steps 2-3. Here you have to specify that this tag can only fire when event 'formSubmitted' happens. I've called my trigger 'Contact form event', selected trigger type as 'custom event' and entered event name 'formSubmitted. Now you can save it and test in the debugger mode. Try submitting your contact form and see if the event 'formSubmitted' appears. You should also see the tag 'GA event - contact form submitted' fire. If everything's ok, publish the container and do a final test. Make a new form submission and check if you can see the event details come through in Google Analytics real time reports, under events. Need some help setting this up or Google Tag Manger? Get in touch with our lovely Google Analytics experts! If you're looking for more advanced help, our Google Analytics consulting team is here to help, too.   Further reading: How to set up event tracking in Google Tag Manager Why should you tag your campaigns? Set up Ecommerce tracking with Google Tag Manager

2016-10-11

Create and customise dashboards and widgets in Google Analytics

Every view in Google Analytics comes with a default "My Dashboard". Learn how to customise your dashboards and widgets for the best account overview. Dashboards contain one or more widgets (up to 12 per dashboard) that give you an overview of the KPI’s that you care about most. Create your dashboard To create a dashboard, navigate to your view, then: Go to reporting tab. Click dashboards. Select + new dashboard. In the create dashboard pop-up select blank canvas (no widgets) or starter dashboard (default set of widgets). You can also import dashboard configurations from the solutions gallery, where is most likely that someone thought about some of the KPI’s you are interested and already build a dashboard. Give your dashboard a title, then click create dashboard. Add widgets to your dashboard A dashboard can have up to 12 instances of the following kinds of widgets <piece of information>: Metric—displays a simple numeric representation of a single selected metric. Timeline—displays a graph of the selected metric over time. You can compare this to a secondary metric. Geomap—displays a map of the selected region, with the specified metric plotted on the map. Hover over the map to see the actual metric values. Table—displays up to 2 metrics describing the selected dimension, laid out in a tabular format. Pie—displays a pie chart of the selected metric grouped by a dimension. Mouse over a slice to see the specific metric values. Bar—displays a bar chart of the selected metric grouped by up to 2 dimensions. Mouse over a slice to see the specific metric values. Difference between standard vs. real-time widgets Some of the available widgets can display their data in real-time. These widgets update the metrics automatically (standard widgets, by comparison, update when you load or refresh the dashboard). Real-time widgets can display only the active users or pageviews metrics, depending on the widget. The following widget types are available as real-time widgets: Counter—displays a count of the active users on your site. You can optionally group these users by a selected dimension. Timeline—displays a timeline graph of pageviews on your site for the past 30 to 60 minutes. Geomap—displays a map showing where your active users are coming from. Table—plots a table of your active users against up to 3 selected dimensions. How to add a widget to a dashboard: Create a new dashboard and select blank canvas, or click + add widget on an existing dashboard to open the widget editor. Select the type of widget. Configure the widget’s dimensions, metrics and other options. These vary depending on the type of widget. Scroll or use the search box to locate the specific metric or dimension you want. You can limit the data shown by the widget by clicking add a filter. Filters let you include or exclude data in the specified dimension that match your filter criteria. You can add multiple rows to your filter definition. All conditions must be met for the filter to work. Report and dashboard filters are not the same as view filters. View filters permanently change your data, while report and dashboard filters only limit the data displayed in the report or dashboard. Dashboard filters are specific to the dashboard in which you define them. You can link the widget to a report or a URL. Doing so makes the widget title a link, taking you to the specified report or web page. To link to a report, begin typing a report name. Google Analytics will autocomplete your entry, trying to match it to an existing report. Alternatively, you can copy and paste the report’s URL into this field. Enter a widget title or accept the suggested title. Click save. Add a linked report directly to your dashboard Another way to link a report to your dashboard is to add it directly from the Google Analytics reporting tool. Locate or create the report you want to see in your dashboard. Click add to dashboard below the report title. Select an existing dashboard, or create a new one by clicking new dashboard. Select the check boxes for the dashboard widgets you want to include (e.g., table, pie chart, timeline). You can add up to 2 widgets per report to your dashboard. You can change the widget titles using the click to edit links. Click add to dashboard. Your new linked report widget opens on the dashboard you selected. Use the widget title link to open the underlying report. Linked report limitations Linked reports can’t have metric filters or secondary dimensions. If you try to add a report with a metric filter or secondary dimension, you will see a warning icon. Hover over the icon to see the warning message. You can still add the report, but it will not include the filter or secondary dimension. You can only embed the data view of a report in your dashboard. If you try to add a report that uses another view of the table (e.g., percentage, performance, comparison or pivot), you will see a warning icon. Mouse over the icon to see the warning message. You can still add the report, but it will display only the data view. Linked reports display only the first two metric columns from your reports. If your report contains more than two metrics, additional metrics will not be displayed in the dashboard. Edit a widget To modify an existing widget, mouse over the widget title, then click the edit (pencil) icon. To delete an individual widget, mouse over the widget title, then click the close (X) icon. Clone a widget You can create an exact copy of a widget using the clone widget link. This is convenient when you want to use one widget as a base for another. Add segments to your dashboard In the Google Analytics reports, you can add segments to your dashboard, allowing you to compare and contrast metrics generated by different session or user groupings. To edit an existing segment, click the segment label at the top of your dashboard. To add a segment, click the empty + add segment label. You can learn more about segments. Share your dashboard with other users Dashboards are private to you until you share them. If you develop a dashboard that you think is useful to other users in your account, or to other Google Analytics users in general, you have several options for sharing it. You can also send a snapshot of your dashboard data via email or generate a PDF file you can distribute however you please. Share dashboards with the current view Once you have your private dashboard working the way you like, you can create a copy of it to share with other users. When you do this, anyone with access to this view can see the dashboard’s data and add to or edit any widgets contained in the dashboard. There’s no way to make dashboards read-only; however, changes to the shared dashboard won’t affect your private version of that dashboard. You must have edit permission to share dashboards and data with the current view. If you have only read-only permission, you can still share your private dashboard by sending it as a template link or by adding it to the solutions gallery. See below for more information. To share a dashboard with the current view: View the dashboard you want to share. Click share > share object A copy of the current dashboard will now be available to all other users in that view, located in the shared dashboards section of the reports panel. Note: to unshare the dashboard you must delete it. Share dashboard templates with other views and accounts The share > share template link option generates a URL you can copy and send to other users, embed in a document or host on a website. When you share a dashboard via a template, you share only the settings for the dashboard - you do not share any data. You can send the link to anyone with a Google Analytics account, and that person can then import the settings. Learn more about sharing customizations via templates. Share dashboards in the solutions gallery The solutions gallery lets you share and import custom reporting tools and assets, like dashboards and segments, into your Google Analytics accounts. When you share a dashboard using the share > share in solutions gallery, only the dashboard’s configuration is shared. Your personal information and Google Analytics data stay private in your account. Learn more about the solutions gallery. Send dashboards via email If you need to distribute a snapshot of your dashboard data to people who might not have access to your Google Analytics account, the share > email option is for you. You can send them a customised email with an attached PDF file showing your dashboard to any valid email account. Scheduling dashboard emails Dashboard emails can be sent as “one-offs”, or you can schedule them on a recurring basis. Use the frequency controls to select the timing of the email. By default, recurring emails will be sent for 6 months. The advanced options let you adjust this from 1 month to 1 year. After this period expires, you’ll need to set up the recurring email schedule again. Tip: If there are any previously scheduled emails, you’ll see a link allowing you to add to an existing email. This lets you send out multiple dashboards or reports using the same distribution and timing. Manage all your scheduled emails by navigating to admin > views > select your view > personal tools & assets > scheduled emails. Export dashboards to PDF The export > PDF option saves a copy of your current dashboard exactly as it appears on screen to a PDF file. You can then embed or distribute this exported view in other documents as needed. Get Social! Follow us on LinkedIn, Twitter, and Facebook to keep up-to-date with Google Analytics.   Further reading: Vital Google Analytics custom reports and dashboards for ecommerce Attributing goals and conversions to marketing channels Tips to optimise your ecommerce landing pages

2016-10-04

Try the top-rated Google Analytics app for Shopify stores

Get a 30-day free trial of Littledata for Google Analytics or Segment