Category : Analytics Setup
How to fix marketing attribution for Safari ITP 2.2
The latest version of Safari limits the ability for Google Analytics (and any other marketing tags) to track users across domains, and between visits more than a day apart. Here’s how to get this fixed for your site. This article was updated 12th June 2019 to clarify changes for ITP 2.2. How does this affect my analytics? Safari's Intelligent Tracking Prevention (ITP) dramatically changes how you can attribute marketing on one of the web's most popular browsers, and ITP 2.1 makes this even more difficult. How will the changes affect your analytics? Currently your marketing attribution in Google Analytics (GA) relies on tracking users across different visits on the same browser with a first-party user cookie - set on your domain by the GA tracking code. GA assigns every visitor an anonymous ‘client ID’ so that the user browsing your website on Saturday can be linked to the same browser that comes back on Monday to purchase. In theory this user-tracking cookie can last up to 2 years from the date of the first visit (in practice, many users clear their cookies more frequently than that), but anything more than one month is good enough for most marketing attribution. ITP breaks that user tracking in two major ways: Any cookie set by the browser, will be deleted after 7 days (ITP 2.1)Any cookie set by the browser, after the user has come from a cross-domain link, will be deleted after one day (ITP 2.2) This will disrupt your marketing attribution. Let’s take two examples. Visitor A comes from an affiliate on Saturday, and then comes back the next Saturday to purchase: Before ITP: sale is attributed to AffiliateAfter ITP: sale is attributed to ‘Direct’Why: 2nd visit is more than one day after the 1st Visitor B comes from a Facebook Ad to your latest blog post on myblog.com, and goes on to purchase: Before ITP: sale is attribute to FacebookAfter ITP: sale is attributed to ‘Direct’Why: the visit to the blog is not linked to the visit on another domain The overall effect will be an apparent increase in users and sessions from Safari, as the same number of user journeys are broken in down into more, shorter journeys. How big is the problem? This is a big problem! Depending on your traffic sources it is likely to affect between a quarter and a half of all your visits. The update (ITP 2.1) is included in Safari version 12.1 onwards for Mac OS and Safari Mobile. It does not affect Safari in-app browsing. Apple released iOS 12.2 and Mac OS 10.14.4 on 25th March 2019, and at the time of writing around 30% of all web visits came from these two browser versions on a sample of larger sites. The volume for your site may vary; you can apply this Google Analytics segment to see exactly how. The affected traffic will be greater if you have high mobile use or more usage in the US (where iPhones are more popular). Why is Apple making these changes? Apple has made a strong point of user privacy over the last few years. Their billboard ad at the CES conference in Las Vegas earlier this year makes that point clearly! Although Google Chrome has overtaken Safari, Internet Explorer and Firefox in popularity on the desktop, Safari maintains a very dominant position in mobile browsing due to the ubiquitous iPhone. Apple develops Safari to provide a secure web interface for their users, and with Intelligent Tracking Prevention (ITP) they intended to reduce creepy retargeting ads following you around the web. Genuine web analytics has just been caught in the cross-fire. Unfortunately this is likely not to be the last attack on web analytics, and a permanent solution may not be around for some time. Our belief is that users expect companies to track them across their own branded websites and so the workarounds below are ethical and not violating the user privacy that Apple is trying to protect. How to fix this There are three outline fixes I would recommend. I’m grateful to Simo Ahava for his research on all the possible solutions. The right solution for your site depends on your server setup and the development resources you have available. If you’re lucky enough to use our Shopify app the next version of our script will include solution 1 below. Contact our support team if you'd like to test the private beta version. For each solution, I’ve rated them out of three in these areas: Quick setup: how much development time it will take to solveCompatibility: how likely this is to work with different domain setupsLongevity: how likely this is to work for future updates to Safari ITP Solution 1: Local storage Quick setup *** Compatibility ** Longevity* To solve the one day cookie expiry, you store the GA client ID in the browser’s local storage (which does not expire), along with the cookie. So before we allow GA to set a new client ID we first check if the Safari browser has a local storage. Here are the full technical details. Solution 2: Common iFrame plus local storage Quick setup ** Compatibility*** Longevity * The problem with solution 1 is that local storage is only available to an individual subdomain. Let's imagine a user journey that goes: Day 1: Visits blog.mysite.comDay 8: Visits shop.mysite.com In this case, the two visits cannot be linked because after 7 days the cookie has expired, and shop.mysite.com cannot access local storage on blog.mysite.com. Solution 2 fixes this by setting up a page on the top level domain (e.g. www.mysite.com/tracker.html) on which that local storage is set, and the page can be accessed from any subdomain. What makes it longer to setup is it will require a new page on your web server, not just script changes on the existing pages (or via GTM). Full technical details. Solution 3: Server-side cookie service Quick setup * Compatibility *** Longevity *** In the long term, ITP may target the local storage API itself (which is already blocked in Private browsing mode). So solution 3 securely sets the HTTPS cookie from your web server itself, rather than via a browser script. This also has the advantage of making sure any cross-domain links tracked using GA's linker plugin can last more than one day after the click-through with ITP 2.2. The downside is this requires either adapting your servers, proxy servers or CDN to serve a cookie for GA and adapt the GA client-side libraries to work on a web server. If your company uses Node.js servers or a CDN like Amazon CloudFront or Cloudflare this may be significantly easier to achieve. If you don’t have direct control of your server infrastructure it’s a non-starter. Full technical details. What about other marketing tags working on Safari? All other marketing tags which track users across more than one session or one subdomain are going to experience the same problem. With Google Ads the best solution is to link your Ad account to Google Analytics, since this enables Google to use the GA cookie to better attribute conversion in Google Ads reporting. Facebook will no doubt provide a solution of their own, but in the meantime you can also attribute Facebook spend in GA using Littledata’s connection for Facebook Ads. Are there any downsides of making these changes? As with any technical solution, there are upsides and downsides. The main downside here is again with user privacy. Legally, you might start over-tracking users. By resetting cookies from the local storage that the user previously requested to be deleted, this could be violating a user’s right to be forgotten under GDPR. The problem with ITP is it is actually overriding the user’s preference to keep the cookie in usual circumstances, so there is no way of knowing the cookie was deleted by the user … or by Safari supposed looking out for the user! Unfortunately as with any customisation to the tracking code it brings more complexity to maintain, but I feel this is well worth the effort to maintain marketing attribution on one of the world's most popular browsers.
Shopify's 'sales by traffic source' report is broken
If you're a Shopify store manager, one of your biggest questions should be 'which campaigns lead to sales?'. We looked at data from 10 Shopify Plus customers to see whether the sales by traffic source report can be trusted. Under the Shopify store admin, and Analytics > Reports tab, you can (in theory) see which sessions and sales came from which traffic sources. BUT this sales by traffic source report is broken. Looking at 180,000 orders for 10 stores in Q4 2018, here are the marketing channels which Shopify Analytics says brought the traffic: Direct 83.5%Social 9%Search 4.5%Unknown (other websites, not social or search) 3%Email ~0.1% And using comparative data from Google Analytics we know this is all wrong. Here's a comparison of Shopify's attribution to Google Analytics last-click attribution of sales for one of these customers: Marketing attribution comparison for 700 orders Shopify Google Analytics Direct 99% 43% Search (Paid + Organic) 0.6% 7% Social 0.4% 10% Email - 25% Affiliates - 15% Here's why it's broken 'Direct' traffic is when the source is unknown. But for Shopify's report this means where the source of the last session is unknown - the user most probably visited a search ad or product review previously. Having only 1% visibility on your marketing performance is just not acceptable!We know that tagged Facebook traffic alone represents 7% of traffic for the average store, so 10% of sales from Social is more normal. Social also brings more than the actual sales in terms of visibility and influencers.Google generates billions of pageviews a month for ecommerce stores. If your site gets only 1% of its traffic from search, we'd be very surprised! Including paid search this site is still well below the 40% average. (Check out our 6 essential benchmarks for Shopify stores.)Monthly emails and personalised retargeting emails are now a staple of online marketing, and we know all the customers in this analysis use email marketing of some form - including for new product launches, discounts and cart abandonment campaigns. The problem is, it's unlikely to be the only campaign which brought customers, so it gets drowned out by other 'last click' channels. The solution: multi-channel attribution.Affiliates are a really important channel to get right, as they are paid based on the sales attributed to them. Why should you rely solely on the report the affiliate marketer gives you, and not see the same numbers in Google Analytics? So don't leave your marketing analytics to guess-work! Try the Littledata app to connect Shopify with Google Analytics on a free trial today. All paid plans include unlimited connections, to ensure accurate marketing attribution for sales via ReCharge (subscriptions), CartHook (one-page checkout), Refersion (affiliates) and more.
Why don't my transactions in Google Analytics match those in Shopify?
What's the real ROI on your Facebook Ads?
For the past decade Facebook’s revenue growth has been relentless, driven by a switch from TV advertising and online banners to a platform seen as more targetable and measurable. When it comes to Facebook Ads, marketers are drawn to messaging about a strong return on investment. But are you measuring that return correctly? Facebook has spent heavily on its own analytics over the last three years, with the aim of making you -- the marketer -- fully immersed in the Facebook platform…and perhaps also to gloss over one important fact about Facebook’s reporting on its own Ads: most companies spend money with Facebook 'acquiring' users who would have bought from them anyway. Could that be you? Here are a few ways to think about tracking Facebook Ads beyond simple clicks and impressions as reported by FB themselves. The scenario Imagine a shopper named Fiona, a customer for your online fashion retail store. Fiona has browsed through the newsfeed on her Facebook mobile app, and clicks on your ad. Let’s also imagine that your site -- like most -- spends only a portion of their budget with Facebook, and is using a mix of email, paid search, affiliates and social to promote the brand. The likelihood that Fiona has interacted with more than one campaign before she buys is high. Now Fiona buys a $100 shirt from your store, and in Facebook (assuming you have ecommerce tracking with Pixel set up) the sale is linked to the original ad spend. Facebook's view of ROI The return on investment in the above scenario, as calculated by Facebook, is deceptively simple: Right, brilliant! So clear and simple. Actually, not that brilliant. You see Fiona had previously clicked on a Google Shopping ad (which is itself powered by two platforms, Google AdWords and the Google Merchant Center) -- how she found your brand -- and after Facebook, she was influenced by a friend who mentioned the product on Twitter, then finally converted by an abandoned cart email. So in reality Fiona’s full list of interactions with your ecommerce site looks like this: Google Shopping ad > browsed products Facebook Ad > viewed product Twitter post > viewed same product Link in abandoned cart email > purchase So from a multi-channel perspective, how should we attribute the benefit from the Facebook Ad? How do we track the full customer journey and attribute it to sales in your store? With enough data you might look at the probability that a similar customer would have purchased without seeing that Facebook Ad in the mix. In fact, that’s what the data-driven model in Google Marketing Platform 360 does. But without that level of data crunching we can still agree that Facebook shouldn’t be credited with 100% of the sale. It wasn’t the way the customer found your brand, or the campaign which finally convinced them to buy. Under the most generous attribution model we would attribute a quarter of the sale. So now the calculation looks like this: It cost us $2 of ad spend to bring $1 of revenue -- we should kill the campaign. But there's a catch Hang on, says Facebook. You forgot about Mark. Mark also bought the same shirt at your store, and he viewed the same ad on his phone before going on to buy it on his work computer. You marked the source of that purchase as Direct -- but it was due to the same Facebook campaign. Well yes, Facebook does have an advantage there in using its wide net of signed-in customers to link ad engagement across multiple devices for the same user. But take a step back. Mark, like Fiona, might have interacted with other marketing channels on his phone. If we can’t track cross-device for these other channels (and with Google Marketing Platform we cannot), then we should not give Facebook an unfair advantage in the attribution. So, back to multi-channel attribution from a single device. This is the best you have to work with right now, so how do you get a simple view of the Return on Advertising Spend, the real ROI on your ads? Our solution At Littledata we believe that Google Analytics is the best multi-channel attribution tool out there. All it misses is an integration with Facebook Ads to pull the ad spend by campaign, and some help to set up the campaign tagging (UTM parameters) to see which campaign in Facebook brought the user to your site. And we believe in smart automation. Littledata's Facebook Ads connection audits your Facebook campaign tagging and pulls ad cost daily into Google Analytics. This automated Facebook-Ads-to-Google-Analytics integration is a seamless way to pull Facebook Ads data into your overall ecommerce tracking -- something that would otherwise be a headache for marketers and developers. The integration checks Facebook Ads for accurate tagging and automatically pulls ad cost data into GA. The new integration is included with all paid plans. You can activate the connection from the Connections tab in your Littledata dashboard. It's that easy! (Not a subscriber yet? Sign up for a free trial on any plan today.) We believe in a world of equal marketing attribution. Facebook may be big, but they’re not the only platform in town, and any traffic they're sending your way should be analysed in context. Connecting your Facebook Ads account takes just a few minutes, and once the data has collected you’ll be able to activate reports to show the same kind of ROI calculation we did above. Will you join us on the journey to better data?
How auditing Google Analytics can save you money
When is the last time you audited your Google Analytics account? If the answer is 'never', I understand, but you could be wasting a ton of cash - not to mention potential revenue. It's easy to put off an analytics audit as a 'someday' project considering the multitude of other tasks you need to accomplish each day. But did you know that auditing your Google Analytics account can save you money and add a big bump to online revenue, even with sites that are not ecommerce? Whether people spend money directly on your site, or your site is primarily for lead generation, you spend money to get those site visitors through your marketing channels. When you view a channel like AdWords, there is a clear financial cost since you pay for clicks on your ads. With organic traffic, such as from Facebook fans, you spend time crafting posts and measuring performance, so the cost is time. With an investment of any resource, whether time or money, you need to evaluate what works - and what does not - then revisit the strategy for each of your marketing channels. In this post, I’ll walk you through some of the automated audit checks in Littledata and take a look at what they mean for your online business. If your analytics audit doesn't ask the following questions, you're probably wasting money. Is your AdWords account linked to Google Analytics? If you run AdWords campaigns, linking AdWords and Analytics should be at the top of your to-do list. If AdWords and Analytics are not linked, you cannot compare your AdWords campaign performance to your other channels. Although you can still see how AdWords performs within the AdWords interface, this comparison among channels is important so you can adjust channel spend accordingly. If you discover that AdWords is not delivering the business you expected compared to other marketing channels, you may want to pause campaigns and reevaluate your PPC strategy. Are you tracking website conversions? There should be several conversion goals set up on your website because they represent visitor behavior that ultimately drives revenue. The above example shows a warning for a lead generation website. Although it is possible that no one contacted the site owner or scheduled an appointment in 30 days as indicated in the error, it does seem unlikely. With this warning, the site owner knows to check how goals are set up in Google Analytics to ensure they track behavior accurately. Or, if there really was no engagement in 30 days, it is a red flag to examine the strategy of all marketing channels! Although the solution to this warning will be different based on the individual site, this is an important problem to be aware of and setting up a goals in Google Analytics, such as for by destination, is straightforward. You can also get creative with your goals and use an ecommerce approach even for non-ecommerce websites. Do you use campaign tags with social media and email campaigns? This is an easy one to overlook when different marketing departments operate in silos and is a common issue because people do not know to tag their campaigns. Tagging is how you identify your custom social media and email campaigns in Google Analytics. For example, if you do not tag your paid and organic posts in Facebook, Google Analytics will lump them together and simply report on Facebook traffic in Google Analytics. In addition to distinguishing between paid and organic, you should also segment by the types of Facebook campaigns. If you discover poor performance with Facebook ads in Google Analytics, but do great with promoted posts in the Facebook newsfeed, you can stop investing money in ads at least for the short term, and focus more on promoted posts. Are you recording customer refunds in GA? Refunds happen and are important to track because they impact overall revenue for an ecommerce business. Every business owner, both online and offline, has dealt with a refund which is the nature of running a business. And this rate is generally fairly high. The return rate for brick-and-mortar stores is around 9% and closer to 20% for online stores, so less than 1% in the above audit seems suspicious. It is quite possible the refund rate is missing from this client’s Google Analytics account. Why does this matter? Let’s assume the return rate for your online store is not terrible - maybe 15% on average. However, once you track returns, you see one product line has a 25% return rate. That is a rate that will hurt your bottom line compared to other products. Once you discover the problem, you can temporarily remove that product from your inventory while you drill into data - and talk to your customer support team - to understand why that product is returned more than others, which is a cost savings. Are you capturing checkout steps? Most checkouts on websites have several steps which can be seen in Enhanced Ecommerce reports in Google Analytics. Shoppers add an item to their cart, perhaps log-in to an existing account or create a new one, add shopping information, payment etc. In the ideal world, every shopper goes through every step to ultimately make a purchase, but in the real world, that is rare. Last year alone, there was an estimated $4 trillion worth of merchandise abandoned in online shopping carts. Reasons for this vary, but include unanticipated extra costs, forced account creation, and complicated checkouts. By capturing the checkout steps, you can see where people drop out and optimize that experience on your website. You can also benchmark checkout completion rates see how your site compares to others. [subscribe] Are you capturing product list views? If you aren't tracking product list views correctly, your biggest cash cow might be sleeping right under your nose and you wouldn't even know it! Which products are the biggest money makers for you? If a particular product line brings in a lot of buyers, you want to make sure it is prominent on your website so you do not leave money on the table. Product list views enable you to see the most viewed categories, the biggest engagement, and the largest amount of revenue. If a profitable product list is not frequently viewed, you can incorporate it in some paid campaigns to get more visibility. The good news An audit is not only about what needs fixing on your website, but also can show you what is working well. After you run an audit, you will see the items that are set up correctly so give yourself a pat on the back for those - and know that you can trust reporting based on that data. Either way, remember to run an analytics audit regularly. Once a month is a good rule. I have seen cases where a website was updated and the analytics code was broken, but no one noticed. Other times, there may be a major change, such as to the customer checkout, so the original steps in your existing goal no longer work. Or an entirely new marketing channel was added, but with missing or inconsistent tagging. It is worth the time investment to ensure you have accurate Google Analytics data since it impacts influences your decisions as a business owner and your bottom line. Littledata's automated Google Analytics audit is especially useful for ecommerce sites, from online retailers to membership sites looking for donations. It gives a clear list of audit check results, with action plans for fixing your tracking. And Shopify stores can automatically fix tracking to capture all marketing channels and ensure that data in Google Analytics matches Shopify sessions and transactions (not to mention the data in your actual bank account!), even when using special checkouts like ReCharge and CartHook. When you're missing out on the revenue you should already have, an audit is the first step in understanding where it's falling away, or where you're over-spending. Run an audit. Make a list. Fix your tracking. Grow your revenue. Sometimes it really is that simple!
The World Cup guide to marketing attribution
It’s World Cup fever here at Littledata. Although two of the nationalities in our global team didn’t get through the qualifiers (US & Romania) we still have England and Russia to support in the next round. And I think the World Cup is a perfect time to explain how marketing attribution works through the medium of football. In football (or what our NYC office calls 'soccer'), scoring a goal is a team effort. Strikers put the ball in the net, but you need an incisive midfield pass to cut through the opposition, and a good move starts from the back row. ‘Route one’ goals scored from a direct punt up the pitch are rare; usually teams hit the goal from a string of passes to open up the opportunity. So imagine each touch of the ball is a marketing campaign on your site, and the goal is a visitor purchasing. You have to string a series of marketing ‘touches’ together to get the visitor in the back of the net. For most ecommerce sites it is 3 to 6 touches, but it may be more for high value items. Now imagine that each player is a different channel. The move may start with a good distribution from the Display Ads defender, then a little cut back from nimble Instagram in the middle. Facebook Ads does the running up the wing, but passes it back to Instagram for another pass out to the other wing for Email. Email takes a couple of touches and then crosses the ball inside for AdWords to score a goal – which spins if off the opposing defender (Direct). GOAL!!! In this neat marketing-football move all the players contribute, but who gets credit for the goal? Well that depends on the attribution model you are using. Marketing attribution as a series of football passes Last interaction This is a simplest model, but less informative for the marketing team. In this model the opposing defender Direct gets all the credit – even though he knew nothing about the end goal! Last non-direct click This is the attribution model used by Google Analytics (and other tools) by default. In this model, we attribute all of the goal to the last campaign which wasn’t a Direct (or session with unknown source). In the move above this is AdWords, who was the last marketing player to touch the ball. But AdWords is a greedy little striker, so do we want him to take all the credit for this team goal? First interaction You may be most interested in the campaign that first brought visitors to your website. In this model, Display ads would take all the credit as the first touch. Display often performs best when measured as first interaction (or first click), but then as a ‘defender’ it is unlikely to put the ball in the net on its own – you need striker campaigns as well. Time decay This model shares the goal between the different marketing players. It may seem weird that a player can have a fraction of a goal, but it makes it easy to sum up performance across lots of goals. The player who was closest to the goal gets the highest share, and then it decays as we go back in time from the goal. So AdWords would get 0.4, Email 0.5 (for the 2 touches before) and Instagram gets 0.1. [subscribe] Data-driven attribution This is a model available to Google Analytics 360 customers only. What the Data-driven model does is run through thousands of different goals scored and look at the contribution of each player to the move. So if the team was equally likely to score a goal without Facebook Ads run down the wing it will give Facebook less credit for the goal. By contrast, if very few goals get scored without that pass from Instagram in the midfield then Instagram gets more credit for the goal. This should be the fairest way to attribute campaigns, but the limitation is it only considers the last 4 touches before the goal. You may have marketing moves which are longer than 4 touches. Position based Finally you can define your own attribution weighting in Position Based model, based on which position the campaign was in before the goal. For example, you may want to give some weight to the first interaction and some to the last, but little to the campaigns in between. Still confused? Maybe you need a Littledata analytics expert to help build a suitable model for you. Or the advice of our automated coach known as the analytics audit. After all, every strategy could use a good audit to make sure it's complete and up-to-date. So go enjoy the football, and every time someone talks of that ‘great assist’ from the winger, think of how you can better track all the uncredited marketing campaigns helping convert customers on your site.
Google Analytics Data Retention policy - which reports does it limit?
From 25th May 2018 Google allowed you to automatically wipe user-level data from the reporting from before a cut-off date, to better comply with GDPR. We made the change for Littledata's account to wipe user-level data after 26 months, and this is what we found when reporting before February 2016. Reports you can still view before the user data removal Audience metrics Pageviews ✓ Sessions ✓ Users X Bounce rate ✓ Audience dimensions Demographics X OS / Browser X Location X User Type X Behaviour Pageviews ✓ Custom events X
Troubleshooting your Google Analytics goals setup (VIDEO)
https://www.youtube.com/watch?v=SGY013J9QGg So you've got your new sales plan in action and you've set up unique goals in Google Analytics. Are they tracking what you think they're tracking? Are you sure they're giving you reliable data? If you've audited your analytics setup, you might have noticed any number of incorrect audit checks about how you've set up custom events for your Google Analytics (GA) goals. Goals are used to make important business decisions, such as where to focus your design or advertising spend, so it's essential to get accurate data about them. In this quick video we cover common issues with setting up Google Analytics goals, including: Tracking pageviews rather than completed actions Selecting the wrong match type Inconsistent naming when tagging marketing campaigns Filters in your GA view rewriting URLs (so what you see in the browser is different from what you see in GA) Issues with cross-domain tracking [subscribe] In GA, a goal is any type of completed activity on your site or app. GA is a remarkably flexible platform, so you can use it to measure many different types of user behaviour. This could be visitors clicking a subscribe button, completing a purchase, signing up for membership -- known as 'conversion goals' -- or other types of goals such as 'destination goals', when a specific page loads, and 'duration goals', when a user spends over a particular amount of time on a page or set of pages. That all sounds well and good, but trouble comes if you simply set up goals and then trust the data they give you in GA, without double-checking to make sure that data's consistent and reliable. We hope you find the video useful. And don't despair -- even a little extra time spent on your GA setup can yield awesome results. Sign up for the Littledata app to audit your site for free, and let us know if you've experienced other common issues with setting up goals in GA.
Subscribe to Littledata news
Insights from the experts in ecommerce analytics
Get the Littledata analytics app
Complete picture of your ecommerce business. Free Google Analytics connection, audit and benchmarks.Sign up