5 myths of Google Analytics Spam

Google Analytics referral spam is a growing problem, and since Littledata has launched a feature to set up spam filters for you with one click, we’d like to correct a few myths circulating. 1. Google has got spam all under control Our research shows the problem exploded in May – and is likely to get worse as the tactics get copied. From January to April this year, there were only a handful of spammers, generally sending one or two hits to each web property, just to get on their reports. In May, this stepped up over one thousand-fold, and over a sample of 700 websites, we counted 430,000 spam referrals – an average of 620 sessions per web property, and enough to skew even a higher traffic website. The number of spammers using this tactic has also multiplied, with sites such as ‘4webmasters.org’ and ‘best-seo-offer.com’ especially prolific. Unfortunately, due to the inherently open nature of Google Analytics, where anyone can start sending tracking events without authentication, this is really hard for Google to fix. 2. Blocking the spam domains from your server will remove them from your reports A few articles have suggested changing your server settings to exclude certain referral sources or IP addresses will help clear us the problem. But this misunderstands how many of these ‘ghost referrals’ work: they are not actual hits on your website, but rather tracking events sent directly to Google’s servers via the Measurement Protocol. In this case, blocking the referrer from your own servers won’t do a thing – since the spammers can just go directly to Google Analytics.  It's also dangerous to amend the htaccess file (or equivalent on other servers), as it could prevent a whole lot of genuine visitors seeing your site. 3. Adding a filter will remove all historic spam Filters in Google Analytics are applied at the point that the data is first received, so they only apply to hits received AFTER the filter is added. They are the right solution to preventing future spam, but won’t clean up your historic reports. To do that you also need to set up a custom segment, with the same source exclusions are the filter. You can set up an exclusion segment by clicking 'Add Segment' and then red 'New Segment' button on the reporting pages and setting up a list of filters similar to this screenshot. 4. Adding the spammers to the referral exclusion list will remove them from reports This is especially dangerous, as it will hide the problem, without actually removing the spam from your reports. The referral exclusion list was set up to prevent visitors who went to a different domain as part of a normal journey on your website being counted as a new session when they returned. e.g. If the visitor is directed to PayPal to pay, and then returns to your site for confirmation, then adding 'paypal.com' to the referral exclusion list would be correct. However, if you add a spam domain to that list then the visit will disappear from your referral reports... but  still, be included under Direct traffic. 5. Selecting the exclude known bots and spiders in the view setting will fix it Google released a feature in 2014 to exclude known bots and spiders from reports. Unfortunately, this is mainly based on an IP address - and the spammers, in this case, are not using consistent IP addresses, because they don't want to be excluded. So we do recommend opting into the bot exclusion, but you shouldn't rely on it to fix your issue Need more help? Comment below or get in touch!

2015-05-28

Setting up a destination goal funnel in Google Analytics

Destination goal funnels in Google Analytics track how well certain actions on your website contribute to the success of your business. By setting up a goal for each crucial activity you will get more focused reports on how visitors are using your website, and at what stage they are dropping out of the conversion funnel. The first time I tried to set up a destination goal was daunting, but after some practice, I am now seeing valuable information on how well visitors are interacting with our clients' websites. If like Teachable you have different subscription packages, then you might want to track how each subscription is converting. For this, set up the purchase confirmation page of each subscription plan as a goal, with a funnel to get additional insight into where people drop off. Step 1: Create a new goal To set up a destination goal go to Google Analytics Admin settings > View > Goals. Click ‘new goal.’ Step 2: Fill in destination goal details Google has some goal templates that provide set-up suggestions. They will only display if you have set your industry category in property settings. Selecting any of the given templates will only populate the name and type of the goal, but not the conversion details, which are more complicated for some. This is not very useful for me so I will ignore this: select ‘custom’ and click ‘next.’ Goal name Give your goal a descriptive name. You will later see it in various reports in Google Analytics so use whatever makes sense for you. Here I am going to use the name of the subscription plan I am tracking - Basic Subscription. Goal slot ID Goal slot ID is set automatically and you might want to change it if you want to categorise your goals. Select ‘Destination’ and click ‘next step.’ Step 3: define your destination goal Destination type You have a choice between 3 different match types. If you have an exact URL that does not change for different customers (without '?=XXX'), then use ‘Equals to’ for an exact match. If the beginning of your converting URL is the same, but there are different numbers or characters at the end of the URL for various customers, then choose ‘Begins with.’ Use ‘Regular expression’ to match a block of text within the URL. For example, if all your subscriber URLs have 'subscriber_id=XXX' somewhere then type 'subscriber_id=' into the text field. You can also use 'regular expression' if you need to match multiple URLs and know how to use special characters to build regex. One of our favourite tools to test regular expressions is Regex Tester. The match type you select here will also apply to the URLs in the funnel, if you choose to create one. Destination page Destination page is the URL where the conversion occurs. For Teachable, and most other websites that sell something online, the destination is usually a ‘thank you' page that is displayed after successful purchase. You might also have a thank you page for contact forms and newsletter signups, which you would track the same way as a payment thank you page. Here you insert the request URI, which is the URL part that comes after the domain address. It would look something like this: /invoice/paid /thank you.html /payment/success Step 4: Should you set a goal value? (optional) You can set a monetary value to your goal if you want to track how much it contributes. e.g. If the goal is visitors completing a contact form, and you know the average lead generates you £100, then you can put the value at 100. If you are an ecommerce site and want to track exact purchases, then set up enhanced ecommerce tracking instead. Step 5: Should you set up a funnel? (optional) If you have several steps leading up to the conversion, you should set up a funnel to see how many people move through each defined step and where they fall out. If you do not set the first step as 'required', Google Analytics will also track people coming into funnel halfway through. i.e. If the first stage of your funnel is the homepage, then it will still include visitors who land straight on your contact page. Verify Now that you have set up your destination goal, click ‘verify the goal’ to check it works. If all is set up correctly, you should see an estimation of the conversion rate your goal would get. If you do not get anything, then check each step carefully. Once all is well, click ‘create goal’ and check it is working after a few days or a week, depending on how much traffic you get. If you set up a funnel, you will see it in Conversions > Goals > Funnel Visualisation. This is what a typical funnel would look like. Because I did not set the first step as 'required' you can see people entering the funnel at various steps.   Need more help? Get in touch or comment below!

2015-04-06

How to audit your Web Analytics Ecommerce tracking

Most companies will see a discrepancy between the transaction volumes recorded via web analytics and those recorded via internal sales or financial database. This article focuses on how to find and reduce that discrepancy, to give greater credibility to your web analytics data. Following on from our article on common Google Analytics setup problems, we are often asked why Google Analytics ecommerce tracking is not a 100% match with other records, and what is an acceptable level of difference. Inspired by a talk from Richard Pickett at Ensighten, here is a checklist to run through to reduce the sources of mismatch. The focus here is Google Analytics Ecommerce tracking, but it could apply to other systems. In summary, you wouldn’t ever expect there to be a 1:1 match, due to the different paths the two events take over the internet. The general consensus is that anything less than 4% of difference in transaction volumes is good, but could sometimes persist up to 10%. Factors that affect this target rate include how many users have got ad blockers or disable Google Analytics (popular in Germany, for example), what proportion are on mobile devices (which suffer from more network interruptions) and how the purchase thank you / confirmation page is built. So on to the list. 1. Are other Javascript errors on the page blocking the ecommerce event in certain situations? The most common reason for the tracking script not executing in the browser is that another bug on your page has blocked it (see GDS research). The bug may only be affecting certain older browsers (like Internet Explorer 7), and have missed your own QA process, so the best approach is to use Google Tag Manager to listen for any Javascript error events on the confirmation page and send these to Google Analytics as custom events. That way your users do the testing for you, and you can drill into exactly which browsers and versions the bugs are affecting. 2. Is the tracking code as far up the page as it could be? If the user drops their internet connection before the whole page loads then the ecommerce event data won’t get a chance to fire. The best approach is to load the script at the bottom of the <head> element or top of the <body>.  The Google Analytics script itself won't block the page load, and arguably in this one purchase confirmation page, the tracking is more important than the user experience. 3. Is the tracking code firing before all the page data has loaded? The inverse of the previous problem: you may need to delay firing the tracking code until the data is ready. This is particularly an issue if your ecommerce transaction data is ‘scraped’ from the HTML elements via Google Tag Manager. If the page elements in question have not loaded before the ecommerce tracking script runs, then the product names, SKUs and prices will be empty – or returning an error. 4. Is the problem only your ecommerce tracking script or just page tracking is general? It could be that the way you are sending the transaction data (e.g. product name, price, quantity) is the problem, or that the page tracking overall is failing in some cases. You can pinpoint where the problem lies by comparing the pageviews of the confirmation page, with the number of ecommerce events tracked. Caveat: on many sites, there’s another route to seeing the purchase confirmation page, which doesn’t involve purchasing (for example as a receipt of a historic purchase). In that case, you may need to capture a unique purchase event, which only fires when a new purchase is confirmed – but without any information on the transaction or products. 5. Are events from your test site excluded? Most companies will have a development, staging or user acceptance testing server to where the website is tested, and test users can purchase.  Are you blocking the tracking from these test sites? Some possible ways to block the test site(s) would be: Set up sub-domain specific blocking rules in Google Tag Manager (or better) Divert the tracking from your test subdomains to a test Google Analytics account, using a lookup macro/variable Set up filters in the Google Analytics view to exclude 6. Is your tag set with a high priority? Tag manager only. If you use Google Tag Manager and have multiple tags firing on the tracking page it’s possible that other tags are blocking your ecommerce data tag from firing. Under ‘Advanced settings’ in the tag editor, you can set a higher priority number for tag firing; I assume the ecommerce data to Google Analytics is always the first priority. 7. Are any strings in the product name properly escaped? A common problem is apostrophes: if your product name contains a quote mark character, then it will break the following Javascript. See Pete’s bunnies – the strings in yellow are valid, and everything after the stray apostrophe will be misinterpreted. The solution is to run a script across any text field to either strip out the quotation marks or replace any quotes with their HTML equivalent (eg &quot;). 8. Are your quantities all integers? One of our clients was selling time slots, and so had the ‘quantity’ of the ecommerce tracking data equivalent to a number of hours. Timeslots sold in half-hours (e.g. 1.5 hours) were not tracking… because Google Analytics only recognises a quantity which is a whole number, so sending ‘1.05’ will not be recognised as 1. 9. Are any possible ‘undefined’ values handled? It may be that the data on your products is incomplete, and some products that people buy do not have a name, price or SKU. The safest approach is to have some fall-back values in your Javascript tracking code to look for undefined or non-text variables and post a default value to Google Analytics. E.g. If ‘product name’ is undefined then post ‘No product name’, or for price, the default should be ‘0.00’. These will then clearly show up in your Ecommerce Product performance reports and the data can be cleaned up. 10. Are users reloading the page and firing duplicate tracking events? Check whether this is a problem for your site by using our duplicate transactions custom report to see multiple events with the same transaction ID. A solution is to set a ‘has tracked’ cookie after the ecommerce tracking has been sent the first time, and then check whether the cookie is set before sending again. 11. Are users going back to the page and firing the tracking at a later date? The sessions column in the transactionID report in step 9 should give you an idea of whether the problem is repeat page loads in one session, or users revisiting the page in another session. If you see duplicate transaction IDs appearing in other sessions there are a couple of possibilities to investigate: Could users be seeing the page again by clicking on a link to an email, or from a list of historic orders? Are there any back-end admin pages that might link to the confirmation page as a receipt? In both cases, the solution is to have a different URL for the receipt that the one where the ecommerce tracking is fired. If there are any other troubleshooting steps you have found helpful, please let us know in the comments or get in touch!  

2015-03-17

5 common Google Analytics setup problems

Can you rely on the data you are seeing in Google Analytics? If you use it daily in your business you should really give some time to auditing how the data is captured, and what glitches could be lurking unseen. The notifications feature in Google Analytics now alerts you to some common setup problems, but there are more simple ones you could check today. Here are 5 aspects of your Google Analytics account to check now. Are you running the latest Universal Analytics tracking code? Is your overall bounce rate below 10%? Are you getting referrals from your own website? Are you getting ‘referrals’ from your payment gateway? Have you got the correct website default URL set in GA? Are you getting full referring URL in reports? 1. Are you running the latest Universal Analytics tracking code? You may have clicked upgrade in the Google Analytics admin console, but have your developers successfully transferred over to the new tracker code? Use our handy tool to test for universal analytics (make sure you copy your URL as it appears in the browser bar). 2. Is your overall bounce rate below 10%? The 'bounce rate' is defined as sessions of only one page. It’s highly unlikely to be in single digits unless you have a very unique source of engaged traffic. However, it is possible that the tracking code is firing twice on a single page. This double counting would mean Google Analytics sees every single page view as two pages – i.e. not a bounce This is more common on template-driven sites like Wordpress or Joomla, where you may have one tracking script loaded by a plugin – and another pasted onto the main template page. You can check if you have multiple pageviews firing by using the Google Tag Assistant plugin for Chrome. 3. Are you getting referrals from your own website? A self-referral is traffic coming from your own domain – so if you are www.acme.com, then a self-referrals would be appearing as ‘acme.com’. Have a look at the (recently moved) referrals list and see if that is happening for you. This is usually caused by having pages on your website which are missing the GA tracking code, or have it misconfigured. You can see exactly which pages are causing the problem by clicking on your domain name in the list and seeing the referring path. If you are on universal analytics (please use our tool to check) you can exclude these referrals in one step with the Referral Exclusion list.  For a fuller explanation, see the self-referral guide provided by Google. 4. Are you getting ‘referrals’ from your payment gateway? Similar to point 3: if you have a 3rd party payment service where customers enter their payment details, after they redirect to your site – if you are on Universal analytics – they will show up as a new visit… but originating from ‘paypal.com’ or ‘worldpay.com’. You need to add any payment gateway or similar 3rd party services to that referral exclusion list.  Just add the domain name - so PayPal would be 'paypal.com' 5. Have you got the correct website default URL set in GA? When Google Analytics was first set up for your website you may have set a different domain name than what you now use. Or maybe you have switched to run your site on https:// rather than http://. So you need to change the default URL as set up in the admin page. For this go to Admin > Property > Property Settings. Once that is setup correctly, the ‘All Pages’ report becomes a lot more useful – because you can click through to view the actual page using the open link icon. Advanced: Are you getting full referring URL in reports? If you run your website across different subdomains (e.g. blog.littledata.co.uk and www.littledata.co.uk) then it can be difficult to tell which subdomain the page was on. The solution to this is to add the hostname to the URL using a custom filter. See the guide on how to view full page URLs in reports. What other setup issues are you experiencing? Let us know in the comments or by tweeting @LittledataUK.

2015-02-18

Under the hood of Littledata

Littledata tool gives you insight into your customers' behaviour online. We look through hundreds of Google Analytics metrics and trends to give you summarised reports, alerts on significant changes, customised tips and benchmarks against competitor sites. This guide explains how we generate your reports and provide actionable analytics. 1. You authorise our app to access your Google Analytics data As a Google Analytics user you will already be sending data to Google every time someone interacts with your website or app. Google Analytics provides an API where our app can query this underlying data and provide summary reports in our own style. But you are only granting us READ access, so there is no possibility that any data or settings in your Google Analytics will change. 2. You pick which view to report on Once you've authorised the access, you pick which Google Analytics view you want to get the reports on. Some people will have multiple views (previously called ‘profiles’) set up for a particular website. They might have subtly different data – for example, one excludes traffic from company offices – so pick the most appropriate one for management reports. We will then ask for your email so we know where to send future alerts to. 3. Every day we look for significant changes and trending pages There are over 100 Google Analytics reports and our clever algorithms scan through all of them to find the most interesting changes to highlight. For all but the largest businesses, day-by-day comparisons are the most appropriate way of spotting changing behaviour on your website. Every morning (around 4am local time) our app fetches your traffic data from the previous day – broken down into relevant segments, like mobile traffic from organic search – and compares it against a pattern from the previous week. This isn’t just signalling whether a metric has changed – web traffic is unpredictable and changes every day (scientists call this ‘noise’). We are looking for how likely that yesterday’s value was out of line with the recent pattern. We express this as signal bars in the app: one bar means there is a 90% chance this result is significant (not chance), two bars means a 99% chance and three bars means 99.9% certain (less than a 1 in 1000 chance it is a fluke). Separately, we look for which individual pages are trending – based on the same probabilistic approach. Mostly this is change in overall views of the page, but sometimes in entrances or bounce rate. If you are not seeing screenshots for particular pages there are a few reasons why: The website URL you entered in Google Analytics may be out of date Your tracking code may run across a number of URLs – e.g. company.com and blog.company.com – and you don’t specify which in Google Analytics The page may be inaccessible to our app – typically because a person needs to login to see it 4. We look for common setup issues The tracking code that you (or your developers) copy and pasted from Google Analytics into your website is only the very basic setup. Tracking custom events and fixing issues like cross-domain tracking and spam referrals can give you more accurate data – and more useful reports from us. Littledata offers setup and consultancy to improve your data collection, or to do further manual audit. This is especially relevant if you are upgrading to Universal Analytics or planning a major site redesign. 5. We email the most significant changes to you Every day - but only if you have significant changes - we generate a summary email, with the highest priority reports you should look at. You can click through on any of these to see a mobile-friendly summary. An example change might be that 'Bounce rate from natural search traffic is down by 8% yesterday'. If you usually get a consistent bounce rate for natural / organic search traffic, and one day that changes, then it should be interesting to investigate why. If you want your colleagues to stay on top of these changes you can add them to the distribution list, or change the frequency of the emails in My Subscriptions. 6. Every Sunday we look for changes over the previous week Every week we look for longer-term trends – which are only visible when comparing the last week with the previous week. You should get more alerts on a Sunday. If you have a site with under 10,000 visits a month, you are likely to see more changes week-by-week than day-by-day.   To check the setup of your reports, login to Littledata tool. For any further questions, please feel free to leave a comment below, contact us via phone or email, or send us a tweet @LittledataUK.

2015-02-05

6 helpful Google Analytics guides

I've been improving my knowledge of Google Analytics this month but found that documentation provided by Google and other heavy research can be difficult to absorb. So here are 6 guides and tools that I found useful in the last month. How to set up campaign tracking Expertise level: Newbie Social media analytics: How to track your marketing campaigns by Cory Rosenfield. When you run an ad, email or social promotion, you want to see which channel is most effective in acquiring visitors. By gathering this information through tracking your campaigns you will be able to focus on winning strategies and make adjustments to less performing ones. Cory’s how to guide takes you through the basics of how to set up campaign tracking with relevant explanations and practical examples. It’s as easy as it gets. What metadata needs fixing Expertise level: Beginner Introducing the Meta and Rich Snippet Tester by Bill Sebald. This tester from RankTank compares your site’s meta and rich snippet data to what you have in your site’s code. You will be able to see mismatches between how you have set your titles and descriptions against what is actually displayed in search results. Want to make sure rich snippets are working correctly or Google doesn’t replace missing meta tags with something unsuitable? Then this tool is for you. How to do keyword research effectively Expertise level: Intermediate Keyword research in 90 minutes by Jeremy Gottlieb. Keyword research for improved content targeting can take a lot of time but it doesn’t have to. Jeremy’s plan splits it into a 4-stage process, full of handy tips on how to spend your time effectively. Especially useful for when planning topics for your blog posts and finding words that are most relevant to include in your product descriptions. Setting up alerts for site errors Expertise level: Intermediate Google Analytics custom alerts which you must always use by Himanshu Sharma. How can you find errors and problems on your website with minimum manual labour? Set up custom alerts in your Google Analytics account with Himanshu's guide. You can create notifications for tracking and shopping cart issues, and any unusual changes in your bounce rate and traffic. How to improve multiscreen experience Expertise level: Advanced Enabling multiscreen tracking with Google Analytics by James Rosewell. This step by step guide by James shows how to get better data on the use of your site across various mobile devices. You will be able to make informed decisions on optimising your site whilst taking into consideration screen sizes and layouts. This means improved experience for customers on bigger smartphones and smaller tablets. Source: Infinium.co What were the different variables again? Expertise level: Advanced Variable guide for Google Tag Manager by Simo Ahava. Variables in Google Tag Manager can be powerful, once you get to grips with them. Simo's comprehensive guide is a useful reference that covers everything you need to know from technical details to set ups and debugging. Source: SimoAhava.com Need some help with Google Analytics? Get in touch with our experts!

2015-01-30

What's new in Google Analytics 2014

Google has really upped the pace of feature releases on Analytics and Tag Manager in 2014, and we’re betting you may have missed some of the extra functionality that’s been added. In the last 3 months alone we’ve counted 11 major new features. How many have you tried out? Official iPhone app. Monitor your Google Analytics on the go. Set up brand keywords. Separate out branded from non-brand search in reports. Enhanced Ecommerce reporting. Show ecommerce conversion funnels when you tag product and checkout pages. Page Analytics Chrome plugin. Get analytics for a particular page, to replace old in-page analytics. However, it doesn’t work if you are signed into multiple Google Accounts. Notifications about property setup. Troubleshoot common problems like domain mis-matches. Embeded Reports API. So you can build custom dashboards outside of GA quickly. Share tools across GA accounts. Now you can share filters, channel groupings, annotations etc easily between views and properties Tag Assistant Chrome plugin. Easily spot common setup problems on your pages using the Tag Assistant. Built-in user tracking. See our customer tracking guide for the pros and cons. Import historic campaign cost and CRM data (premium only). Previously, imported data would only show up for events added after the data import. Now you can enter a ‘Query Time’ to apply to past events, but only for Premium users. Get unsampled API data (Premium only - developers). Export all your historic data without restrictions Better Management API (for developers). Set up filters, Adwords links and user access programmatically across many accounts. Useful for large companies or agencies with hundreds of web properties.

2014-07-21

Pulling Google Analytics into Google Docs - automated template driven reporting

The Google Docs library for the analytics API provides a great tool for managing complex or repetitive reporting requirements, but it can be tricky to use. It would be great if it was a simple as dropping a spreadsheet formula on a page, but Google’s library stops a few steps short of that - it needs some script around it. This sheet closes that gap, providing a framework for template driven analytics reports in Google Docs. With it you can set up a report template, and click a menu to populate it with your analytics results and run your calculations - without needing to write a line of script - the code is there if you want to build on it, but you can get useful reports without writing a line of script. Prerequisites While you don't have to write code to use this, there are some technical requirements. To get the most out of it you'll need to have: your Google analytics tagging and views set up familiarity with Google’s reporting API familiarity with Google Docs spreadsheets - some knowledge of Google apps scripting is an advantage If you are looking for something more user-friendly or tailored to your needs, contact us and book a consultation to discuss - we can help with your analytics setup and bespoke reporting solutions. Getting started Setting this up takes a few steps, but you only need to do this once: Open the shared Google spreadsheet Make a copy Enter a view ID in the settings sheet - get this from the Google Analytics admin page. Authorise the script Authorise the API - in the API console - this is the only time you need to go into the script view using Tools|Script Editor Once in script editor select Resources|Advanced Google services On the bottom of the Advanced Google services dialogue is a link to the Google Developers Console, follow this and ensure that Google analytcs API is set to On You're done. You can go back to the spreadsheet and run the report (on the Analytics menu). From now on all you need to do is tweak any settings on the template and run the report.   Setting up your own report template You can explore how the template works using the example. Anywhere you want to retrieve value(s) from Google Analytics, place this spreadsheet function on the template: = templateShowMetric(profile, metric, startdate, enddate, dimensions, segment, filters, sort, maxresults) This works as a custom spreadsheet function, for example =templateShowMetric(Settings!$B$2,$B7,Settings!$B$3,Settings!$B$4,$C7,$D7,$E7,$F7,$G7) Note that in the example, several of the references are to the settings sheet, but they don't have to be, you can use any cell or literal value in the formula - it's just a spreadsheet function. To get the values for the API query, I'd suggest using Google’s query explorer. To set this up for a weekly report, say, you would have all the queries reference a single pair of cells with start and end dates. Each week you would change the date cells run the report again - all queries will be run exactly as before, but for the new dates. Using spreadsheet references for query parameters is key. This opens up use of relative and absolute references - for example if you need to run the same query against 50 segments, you list your segments down a column, set up segment as a relative reference, and copy the formula down spreadsheet style. You can use this to do calculations on the sheet and use results in the analytics API, for example you might calculate start and end dates relative to current date. Future posts will cover setting up templates in more detail. Under the hood The templateShowMetric function generates a JSON string. When you trigger the script, the report generator copies everything on the template to the report sheet and: runs any analytics queries specified by a templateShowMetric function removes any formulas that reference the settings sheet (so you can use the settings sheet to pass values to the template, but your reports are not dependant on the settings staying the same)

2014-04-21

Get the Littledata analytics app

Start your free 14-day trial

Learn More