How to fix marketing attribution for Safari ITP 2.1
The latest version of Safari limits the ability for Google Analytics (and any other marketing tags) to track users across subdomains, and between visits more than a day apart. Here’s how to get this fixed for your site. 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 browser, 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 2.1 (and soon ITP 2.2) breaks that user tracking in two major ways: Any cookie set by the browser, and used to identify visitors, will be deleted after one day (or 7 days with ITP 2.1) Browser cookies set on one subdomain (e.g. www.mysite.com) cannot be accessed from another sub-domain (e.g. blog.mysite.com) 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 Monday to purchase: Before ITP: sale is attributed to Affiliate After 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 blog.mysite.com, and goes on to purchase: Before ITP: sale is attribute to Facebook After ITP: sale is attributed to ‘Direct’ Why: the visit to the blog is not linked to the visit on another subdomain 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 solve Compatibility: how likely this is to work with different domain setups Longevity: how likely this is to work for future updates to Safari ITP Solution 1: Local storage plus cross-domain linking 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. If your site runs across subdomains, then you also need to add the GA linker to every link to a different subdomain. This is similar to the method you would use to track users across different top-level domains, but you have toaccess the linker plugin directly rather than use ‘autolink’. Here are the full technical details. Solution 2: Common iFrame plus local storage Quick setup ** Compatibility** Longevity ** The problem with solution 1 is ITP also targets those cross-subdomain linker parameters (?_ga=longnumber), meaning it is unlikely to work in all cases. Solution 2 improves upon 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. 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 vs Magento: Ecommerce performance
Whether you're choosing a new enterprise ecommerce platform for your online business, or considering a platform migration, choosing Shopify vs Magento is not an easy choice. But when it comes to ecommerce performance, it pays to take a look at the data. Littledata has a range of customers on different ecommerce platforms, with a majority of larger stores using Shopify Plus or Magento. So which platform has the best ecommerce performance? For this post, we crunched data from 1,600 Shopify and Magento stores to see where the platforms typically perform best, from technical performance essentials like site speed, to ecommerce essentials like conversion rate and average order value. Ecommerce benchmarks Littledata benchmarks stores using our platform on 30 key metrics. Any merchant can sign up to benchmark their ecommerce website, and we like to dive into the benchmark data to find key stats and unexpected trends. Comparing Shopify vs Magento benchmarks, we looked at the median performance of stores of all sizes in all sectors, and then just larger stores (those getting more than 20,000 sessions per month). The headline news is that Shopify converts more visitors into customers than Magento, mainly due to better add-to-cart rate, but also slightly more efficient checkout conversion rate. Shopify stores have a higher Average Conversion Rate, but Magento stores have a higher Average Order Value However, since Magento stores have a larger average order (maybe because stores selling high value items are put off by Shopify’s percentage pricing) the Magento stores get more revenue per visit. And it is really the higher customer lifetime value that you should care about (Shopify agrees). Magento stores outperform on landing page engagement and marketing, and have a significantly higher usage of product search. Shopify vs Magento: a benchmark-by-benchmark comparison Average conversion rate The headline ecommerce conversion rate is better on Shopify (2% vs 1.7%) and this actually widens for larger stores (2.3% Shopify vs 1.5% on Magento). This is reflected in Shopify being better on both underlying metrics of performance: add-to-cart rate (5.5% vs 4.6%) and the percent of those starting to checkout. [subscribe button_text="benchmark your site"] The checkout completion rate is actually better on most Magento stores (48.6% vs 51.3%), although for larger stores this is flipped around (50.0% Magento vs 48.7% Shopify). Average order value Average revenue per customer is much higher for the Magento stores surveyed (and this difference persists for larger sites) - $75 USD per customer on Shopify vs $161 on Magento. This is driven by both a higher average order value, and more repeat purchasing on Magento stores. This extra money per order more than compensates for the lower conversion rate on Magento, and means Magento stores get an average $2.79 per visit versus $1.52 for Shopify store visits. Site speed There are two factors to website speed - how long the server takes to response, and how long the page takes to render in the browser. Shopify's cloud infrastructure is better at the former (609 milliseconds versus 967 milliseconds average server response time on Magento), but for the more important delay before page content appears there is little difference between the platforms (2.6 seconds for Shopify vs 2.8 seconds for Magento). Larger Shopify stores do typically install lots of 3rd party apps, which can increase the script load time, and so the time to full page load is higher on larger Shopify stores (6.8 seconds vs 6.0 seconds on Magento). Marketing channels There are some big differences between how Shopify and Magento store owners go about Marketing. Shopify stores get a far higher proportion of traffic from Facebook (5.8% vs 2.7%), but this is still below the global average for Facebook referrals. Shopify stores also had a greater reliance on the homepage - showing a lack on content marketing sophistication (34% on Shopify vs 25% on Magento). User engagement (site search and email marketing) The interesting difference is a much higher use of site search for Magento stores (3.1% Shopify vs 10.8% Magento). This may that Magento themes make it easier to implement site search, or that Magento stores with larger numbers of SKUs. And Magento marketers manage to get a lower bounce rate from emails: 50% on Shopify vs 44% on Magento. This is maybe due to a greater variety of email landing pages or campaigns. What about Shopify Plus vs Magento Enterprise? Many of the same differences are there for Shopify Plus (the equivalent of Magento Enterprise Edition for larger stores). Shopify plus stores manage a higher conversion rate (2.6% vs 1.6% for Magento EE), and but still have a lower average value per session ($2.12 on Shopify Plus vs $3.23 on Magento). And Plus stores, with more customised themes, still get a higher bounce rate from mobile search (55% vs 51% for Magento). If you're looking for more info, we have a useful post on the general differences between Shopify and Magento, and our friends at Electric Eye have an extensive breakdown of how Shopify and Magento pricing and implementation really work for merchants seeking the best ecommerce platform for their business. For an in-depth look at enterprise ecommerce options, we recommend checking out the big Magento 2 Commerce vs Shopify Plus comparison by Paul Rogers. An expert in ecommerce replatforming, Rogers has worked with Magento brands including O’Neills, Agent Provocateur, Waterford, Royal Doulton, and Shopify Plus brands including Bulletproof, Trotters, Oco, Current Body and ESC. Learn more Looking for more performance data? If you're interested in the topic of Magento vs Shopify performance, you can view our public listing of detailed Shopify benchmarks and Magento benchmarks. We've made it easy for anyone to dive into the data for themselves. And if you have an ecommerce website, sign up to benchmark your site for free! [subscribe button_text="benchmark your site"]
A case study in how to improve page load speed
Littledata's Shopify connection is now using gtag and GTM data layer
How to calculate customer lifetime value (CLV) for subscription ecommerce in Google Analytics
Many of Littledata's subscription customers come to us with a similar problem: how to calculate return on advertising spend, considering the varying customer lifetime value (CLV) of subscription signups. Calculating marketing ROI for subscription ecommerce is a big problem with a number of potential solutions, but even the initial problem is often misunderstood. In this post I break down what the problem is, and walk through two proven solutions for getting consistent, reliable CLV reporting in Google Analytics. What is customer lifetime value? I work with all kinds of subscription ecommerce businesses: beauty boxes, nutritional supplements, training courses and even sunglasses-by-the-month. All of them want to optimise customer acquisition costs. The common factor is they are all willing to pay way MORE than the value of the customers' first subscription payment... because they expect the customer to subscribe for many months. But for how many months exactly? That's the big question. Paying for a marketing campaign which bring trial customers who cancel after one payment - or worse, before the first payment - is very different from paying to attract sticky subscribers. A marketing director of a subscription business should be willing to pay WAY more to attract customers than stay 12 months than customers who only stay one month. 12 times more, to be precise. So how do we measure the different contribution of marketing campaigns to lifetime customer value? In Google Analytics you may be using ecommerce tracking to measure the first order value, but this misses the crucial detail of how long those shoppers will remain subscribers. With lifetime customer value segments we can make more efficient use of media, tailor adverts to different segments, find new customers with lookalike audiences and target loyalty campaigns. There are two ways for a marketing manager to see this data in Google Analytics: one is a more difficult, manual solution; the other is an easier, automated solution that ties recurring payments back to the original campaigns. A manual solution: segment orders and assign a lifetime value to each channel It's possible to see the required data in GA by manually segmenting orders and assigning a lifetime value to each channel. For this solution you'll need to join together: (a) the source of a sample of first orders from more than a year ago, by customer number or transaction ID and (b) the CLV of these customers The accuracy of the data set for A is limited by how your Google Analytics is set up: if your ecommerce marketing attribution is not accurate (e.g. using Shopify's out-the-box GA scripts) then any analysis is flawed. You can get B from your subscription billing solution, exporting a list of customer payments (and anonymising the name or email before you share the file internally). To link B to A, you'll need either to have the customer number or transaction ID of the first payment (if this is stored in Google Analytics). [subscribe] Then you can join the two data sets in Excel (using VLOOKUP or similar function), and average out the lifetime value by channel. Even though it's only a sample, if you have more than 100 customers in each major channel it should give you enough data to extrapolate from. Now you've got that CLV by channel, and assuming that is steady over time, you could import that back into Google Analytics by sending a custom event when a new customer subscribes with the 'event value' set as the lifetime value. The caveat is that CLV by channel will likely change over time, so you'll need to repeat the analysis every month. If you're looking to get away from manual solutions and excessive spreadsheets, read on... A better solution: tie recurring payments back to the original campaign(s) What if you could import the recurring payments into Google Analytics directly, as they are paid, so the CLV is constantly updated and can be segmented by campaign, country, device or any other standard GA dimension? This is what our Google Analytics connection for ReCharge does. Available for any store using Shopify as their ecommerce platform and ReCharge for recurring billing, the smart connection (integration) ties every recurring payment back to the campaigns in GA. Here's how the connector works The only drawback is that you'll need to wait a few months for enough customer purchase history (which feeds into CLV) to be gathered. We think it's worth the wait, as you then have accurate data going forward without needing to do any manual imports or exports. Then, if you also import your campaign costs automatically, you can do the Return on Investment (ROI) calculations directly in Google Analytics, using GA's new ROI Analysis report (under Conversions > Attribution), or in your favourite reporting tool. Do you have a unique way of tracking your marketing to maximise CLV? Are there other metrics you think are more important for subscription retailers? Littledata's connections are growing. We'll be launching integrations for other payment solutions later this year, so let us know if there's a particular one you'd like to see next.
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.
The year in data: 2018 in ecommerce statistics
How did ecommerce change in 2018? Let's take a look at the data. Littledata benchmarks online retail performance in Google Analytics, and with over 12,000 sites categorised across 500 industry sectors we have a unique insight into ecommerce trends in 2018. The pattern we're seeing is that web sessions are becoming ever shorter as users split their attention across many ads, sites and devices. Marketers need get visibility across a range of platforms, and accept that a customer purchase journey will involve an ever greater number of online touch points. In the following analysis, we look at how performance changed across 149 ecommerce sites in 2018, and how these trends might continue in 2019. Ecommerce conversion rate is down Ecommerce conversion rate has dropped by an average of 6 basis points, not because of a drop of online sales - but rather because the number of sessions for considering and browsing (i.e. not converting) has risen. This is partly an increase in low-quality sessions (e.g. SnapChat ads preloading pages without ever showing them to users), and partly an increase in users from platforms like Facebook (see below) which bring less engagement with landing pages. See our mission to Increase Ecommerce Conversion Rate for more details. Revenue per customer is up Revenue per customer is the total sales divided by the total number of users which purchased online. The increase of $16 USD per customer per month shows that many stores are doing better with segmentation - ignoring all those sessions which don't convert, and retargeting and reselling to those that buy lots. The growth in subscription business models is also fuelling this trend. Getting a customer to commit to a regular payment plan is the most effective way of increasing revenue per user. See our mission to Increase Average Order Value for more details. Reliance on the homepage is down Content marketing became mainstream in 2018, and no self-respecting brand would now rely on the homepage alone to drive interest in the brand. The percentage of traffic coming 'through the front door' will continue to fall. In building out a range of keyword-specific landing pages, stores are harnessing a wider range of Google search queries, and providing more engaging landing pages from Google Ad and Facebook Ad clicks. Usage of internal site search is up Along with fewer visitors coming through the homepage, we are seeing fewer browsers use traditional category navigation over internal search. We think this is partly to do with younger consumers preference for search, but also probably reflects the increasing sophistication and relevance of internal search tools used by ecommerce. Referrals from Facebook are up Even after Facebook's data security and privacy embarrassments in 2018, it continues to grow as the 2nd major global marketing platform. Although few sites in our benchmark rely on Facebook for more than 10% of their traffic, it is a significant driver of revenue. As merchants continue to come to Littledata to find out the real ROI on their Facebook Ads, check back next year for a new round of analysis! How did your site perform? If you're interested in benchmarking your ecommerce site, Littledata offers a free trial to connect with Google Analytics and audit your tracking. You can see ecommerce benchmarks directly in the app, including 'ecommerce conversion rate', 'referrals from Facebook' and 'reliance on the homepage', to know exactly how your site's performing. Sign up today to benchmark your site and import Facebook Ads data directly into Google Analytics. [subscribe] For this article we looked at Littledata's private, anonymized benchmark data set, selecting ecommerce sites that had a majority of their traffic from the US and more than 20,000 sessions per month. We measured the change from 1st December 2017 to 31st December 2017 to the same month in 2018.
Introducing Shopify Flow connectors for Google Analytics
Littledata has launched the first Shopify Flow connector for Google Analytics, enabling Shopify Plus stores to analyse customer journey using a custom event in Google Analytics. In addition to Littledata's native connections with Shopify, Shopify Plus, Facebook Ads, ReCharge, etc., we have now launched a beta version of a Flow connector for Google Analytics. What is Shopify Flow? Flow is an app included with Shopify Plus, which enables stores to define automation pathways for marketing and merchandising. Think of it as an ‘If This Then That’ generator just for Shopify. For example, after an order is marked as fulfilled in Shopify’s admin you might want to trigger an email to ask for a review of the product. This would involve setting a ‘trigger’ for when an order is fulfilled and an ‘action’ to send an email to this customer. How do you use Littledata Flow actions? You install Littledata's Shopify app along with Shopify Flow Every time an order is created in your store we send it to Google Analytics, along with information about which customer ID made the order (nothing personally identifiable) You add Littledata's actions to your Flow Every time the order or customer event is triggered, even for offline events, the event is linked back to Google Analytics In Google Analytics you can then: Segment the customer base to see if these actions influence purchasing behaviour Visualise when these events occurred Analyse the customers making these actions: which geography, which browser, which marketing channel (in GA 360) Export the audience to retarget in Google Ads (in GA 360) Export the audience to run a website personalisation for using Google Optimize How do you set the actions up in Flow? Google Analytics customer event – can be used with any customer triggers, such as Customer Created Google Analytics order event – can be used with any order triggers such as Order Fulfilled, Order Paid, How else could I use the events? You can now link any of your favourite Shopify Apps with Flow connectors into Google Analytics. Some examples would be: Analyse if adding a product review leads to higher lifetime value Retarget in Google Ads after a customer's order is fulfilled Set up a landing-page personalisation for loyal customers (using Loyalty Lion connector) How much does this cost? The Flow connectors are included as part of Littledata’s standard subscription plans. You’ll need Littledata’s app to be installed and connected to link the events back to a customer – and to get reliable data for pre-order customer behaviour. [subscribe] Can Littledata set up a flow for a specific app? Our Enterprise Plans offer account management to help you configure the Littledata Shopify connection, including the Shopify Flow connectors. Get in touch if you have a specific app you'll like to make this work with.
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