Replacing Additional Google Analytics JavaScript for Shopify stores

On 1st March 2021 Shopify is permanently removing scripts added in the ‘Additional Google Analytics JavaScript’ preference. This field has been hidden for some time, but was previously used to inject all kinds of additional scripts into the checkout pages. Why is Shopify removing these additional scripts? Primarily they represent a security risk: injecting key-stroke-tracking scripts into checkout pages is a common way to steal credit card information. Shopify just can’t take the risk that if the store admin gets hacked, so could the customer card details. Additionally, being able to customise the Shopify checkout pages (via the checkout.liquid file) is a key feature of Shopify Plus and so a reason for stores to upgrade to Plus. How to replace Google Analytics code added in this Additional JavaScript field I know many stores were using this preference for exactly the reason it intended: to modify the functionality of the Universal Analytics tracking script Shopify adds, if configured in the online store preferences. The good news is that the scripts you need to run (excluding the checkout) can be added in the theme <head>. You can add settings or events to GA’s command queue, which get executed when the Universal Analytics (GA) library is ready. You need to add this line of code before any additional commands below, to ensure that: If the ga function is defined already, calls to ga() are queued If the ga function is not yet defined, calls to ga() are added to a new queue [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; [/dm_code_snippet] Shopify Plus stores can do the same thing on checkout.liquid to customise Google Analytics tracking on the checkout pages. Here are some of the common uses of Additional JavaScript, and alternatives I know of: 1. Anonymising IP address GDPR regulation in Europe requires stores not to send full IP addresses to Google’s servers in the US. You can opt out in GA by using this - but it will NOT affect pageviews sent from the checkout. [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] ga('set', 'anonymizeIp', true); [/dm_code_snippet] 2. Tracking checkout steps To measure how far users get in the checkout, and with what products, many stores want to track checkout steps in GA. Shopify does track pageviews and some events from the checkout (not including product values), but unfortunately you can no longer add a script on Shopify’s checkout. However, Littledata’s app has a more robust solution to send checkout step events and pageviews from our servers. Tracking the checkout steps across all checkouts, including third party checkouts on ReCharge and CartHook, enables stores to retarget abandoned checkouts with Google Ads and understand how shipping and payment options affect checkout conversion. 3. Cross-domain linking Shopify already accepts incoming cross-domain tracking, but to add cross-domain tracking to links from your Shopify store you need to instruct GA to automatically decorate links: [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] ga('linker:autoLink', ['yourblog.com']); [/dm_code_snippet] For more examples on when you need to set up cross-domain linking (for example, to third-party checkouts), see our cross-domain Shopify tracking guide. 4. Tracking logged-in users To enable a registered users view in Google Analytics you need to send a customer ID when known. The window-scope object `__st` includes that `cid` field, when the user is logged in. [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] if(__st["cid"]) ga('set', '&uid', __st["cid"]); [/dm_code_snippet] 5. Tracking additional events You may want to trigger additional GA events, like clicks on a particular button. I’d recommend you set these up using Google Tag Manager, but you can also run a SEND command at any stage and it will send to the GA tracker Shopify loads on the page. [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes"] ga('send', 'event', 'List Filter', 'Change size filter', 'XL'); [/dm_code_snippet] 6. Tracking additional web properties Many stores need multiple tracking IDs to send data to multiple web properties, and Shopify by default only allows a single property.  I’d again recommend you set these up using Google Tag Manager, but you can also run a CREATE command in your head to track to additional properties. [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="javascript" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] ga('create', 'UA-XXXXXXXX-X', 'auto'); [/dm_code_snippet] 7. Adding GTM triggers If you are using Google Tag Manager to fire other marketing tags you might have used the Additional JavaScript to run triggers - for example when customers completed an order. This could be replaced by using Littledata’s GTM data layer, which is included with our Google Analytics app.  The final result Assuming you just need items 1 and 4 from the list above, this is how the script tag in your liquid theme might look: [dm_code_snippet background="yes" background-mobile="yes" slim="yes" bg-color="#abb8c3" theme="light" language="html" wrapped="yes" copy-text="Copy Code" copy-confirmed="Copied"] <head> … <script> // Scripts moved from Additional Google Analytics JavaScript preferences window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('set', 'anonymizeIp', true); if(__st["cid"]) ga('set', '&uid', __st["cid"]); </script> </head> [/dm_code_snippet] Is there anything else your store has added? Let me know and we can add it to the list.

2021-02-22

How to integrate ReCharge with Segment for advanced analytics and retargeting

Many merchants use Littledata's advanced ReCharge integration to track recurring orders and calculate lifetime value in Google Analytics, but did you know that our ReCharge connection can also send data to Segment? Our Shopify source for Segment makes it easy to push that same customer event data on to hundreds of marketing and data platforms. As an increasing number of top DTC brands on Shopify are building analytics stacks to enable advanced personalization and segmentation in addition to marketing analysis and data warehousing. Subscription analytics has been a core part of our product development since the beginning at Littledata, and the continued development of our Shopify source for Segment has unlocked a new realm of possibilities here. Benefits of integrating ReCharge with Segment Here are some of the ways that Littledata + Segment + ReCharge can improve your event data pipeline and power your analytics. An added benefit from our recent updates (Segment v2) is the ability to improve customer engagement with tags and triggers based on subscriber behavior. Push ReCharge subscription events into your data warehouse Joining your ReCharge and Segment data is a seamless way to get all of your ecommerce data into a data warehouse, automatically cleaned and deduped. Littledata’s Segment connection (combined with our ReCharge connection) syncs a range of common customer events from Shopify and ReCharge to any of Segment’s 34 supported raw data destinations. The events that we send include: Subscription CreatedSubscription UpdatedSubscription CancelledOrder ProcessedCharge FailedCharge Max Tries ReachedPayment Method UpdatedCustomer Updated All of these events are sent with shopifyCustomerId, subscriptionId and other fields to enable them to be aggregated into user-journey reports. So you can build your own data warehouse integration with ReCharge’s APIs and end up dealing with deduplication, high throughput and low latency. Or you can just trust Littledata and Segment’s experience in processing billions of events to handle that for you. Many of our larger customers on Littledata Plus plans are experimenting with data warehouses, and we are happy to discuss our solution to see if it's a good fit with your data needs. Feel free to book a demo to learn more. Track recurring orders and Customer Lifetime Value (LTV) on any platform Calculating LTV for subscription ecommerce can sound complicated, but it doesn't have to be. Littledata pushes every recurring order processed by ReCharge into the destination of your choice, so you can run analyses of where the long-term, high-value customers came from - and know if those customers interacted with your brand previously, as well as the original marketing channel or touch point. And it's not just about analysis. Integrating ReCharge with Segment allows for more sophisticated cohort-building and retargeting. Imagine you could spot the common patterns that link your top 100 most valuable customers, and then automatically build a lookalike audience to target 10,000 people just like them. That’s exactly what Littledata + Segment’s Facebook Custom Audiences destination allows you to do! [subscribe] Analyze subscription behavior with Kissmetrics or Mixpanel Kissmetrics and Mixpanel made their name as analytics for subscription businesses, with features focussed on analyzing customer churn and retention. Littledata’s connection can push subscription events to either platform, linking them with all the pre-purchase, pre-registration events to understand how the customer was acquired. Combining Shopify and ReCharge events in one analytics platform gives you the complete picture of the customer journey. [note]Wondering which unique identifier to use for your Segment setup? Confused about Cloud Mode vs Device Mode? Check out Littledata's Segment developer docs for Shopify[/note] Build custom email funnels Segment can also send events to email marketing platforms such as Klaviyo and Iterable. You can use recurring order events, or subscription cancellation reasons, to create highly segmented email campaigns.  Here’s an example of how you could use those events in a Klaviyo report: Post-purchase events from Shopify like Fulfillment Updated or Order Cancelled could also trigger transactional emails that match your brand messaging. For example, an email could notify a customer of an upcoming delivery and include the tracking number from Shopify’s fulfillment service. Reduce scripts loaded on the ReCharge checkout Adding extra tracking scripts (Google Analytics, Facebook, etc.) to the ReCharge checkout slows down the pages and increases risk of checkout abandonment. Littledata + Segment allows you to have zero tracking scripts on your checkout (we listen out for checkout update webhooks instead) and yet send checkout step events to any of over over 50 advertising and analytics destinations. [tip]Using a headless ReCharge setup? See our headless Shopify tracking demo[/tip] Working with Shopify unified checkout Are you thinking of moving to Shopify’s new unified checkout for a more seamless customer experience? The events we track will work in the same way - and you can track like-for-like checkout funnel drop-off across ReCharge and Shopify checkouts. [subscribe]

2021-02-11

10 reasons to move to GA4 for ecommerce analytics

In November 2020 Google surprised the analytics world by making the beta of Google Analytics 4 (GA4) the default for all new web properties. Many GA4 ecommerce features are yet to be released, but I think there are compelling reasons to start using GA4 now, especially for data-driven Shopify Plus stores.Google is clear that GA4 is the future for integrating marketing data with Google Ads. Yet there's more to the picture, including custom funnels and other key features which were previously restricted to GA360 (costing $100k and upwards per annum), but are now free for anyone to use in GA4. Here are my top 10 benefits of GA4 from a data analyst’s perspective: Faster reportingCustom funnels *Analysis module *Export raw data to BigQuery *No event collection limits *Track mobile app events alongside web events **Streamlined audience buildingPredictive insightsMore custom dimensions *There’s more to come * Previously only available with GA360** Requires a roll-up property in GA360 Read on to dive into the details of each reason. We'll look at what's new in GA4 and how we expect these features to be useful to ecommerce managers and data scientists. 1. Faster reporting If you’ve used GA with high-traffic sites, especially with GA 360 properties, then you’ll be all too familiar with the ‘Loading…’ bar -- waiting many minutes for some reports to load. Ultimately Universal Analytics was built on 10-year-old data processing, and although the GA4 user interface looks similar, Google has rebuilt it from the ground up for speed and flexibility. In GA4, standard reports generate more quickly and are more powerful at the same time, bringing us to Reason #2: Custom funnels. 2. Custom funnels Goal funnels have always been a useful feature of GA, but the full power to choose a series of events to analyze was previously restricted to GA360, due to high processing costs. With GA4 you easily build a funnel using any combination of events or pageviews, filtered by any event property (see reason #9), with clever features like measuring elapsed time through the funnel. This is equivalent to the funnel functionality that made Mixpanel and Amplitude really popular, and is a massive upgrade on the previous version of GA -- where you could only add events or pages but not both. And where you had to set the goal funnel up in advance to see any report at all! 3. Analysis module The funnel reporting is part of a new ‘analysis’ tab in GA4 that brings more powerful report-building functionality. Compared with the previous ‘custom reports’ in Google Analytics (Universal Analytics), it is more intuitive to add dimensions, with more report templates like the Segment Overlap report below. Hopefully Google extends the template gallery to allow other analysts to share reports, as we’d love to see more reports for ecommerce metrics. 4. Export raw data to BigQuery This is a big one. Power users who wanted to go further and run their own algorithms, or build unsampled reports from raw, row-level data, previously needed a GA360 account. In GA4 you can set up an export to Google BigQuery, steaming events within a few minutes of them being recorded from your website. You pay for the BigQuery transfer and storage, but this is free for smaller sites and merely hundreds of dollars a month for larger sites. This makes GA4 + BigQuery a very viable data warehouse solution for ecommerce, and an insurance policy if you want to own your own data for future analysis. 5. No event collection limits In the free version of Universal Analytics you are limited to 10M hits (pageviews and events) per month, and 500 hits in any one session. For GA4, Google’s policy is ‘there is no limit on the total volume of events your app logs.’ Google has made no announcements on GA360 support for GA4, so these event limits may be subject to change. However, I see unlimited event collection as fitting with Google’s strategy to enable more ad retargeting and head off competition from tools like Heap (which has always advocated maximum possible event collection).There are limits to data export via the reporting API, with higher quotas for GA360 customers. But those limits could be bypassed by maintaining a BigQuery export (see above). 6. Track mobile app events alongside web events GA4 was originally called ‘app+web’ as it built on Firebase’s tracking for mobile apps and extended this tracking for web. Google calls this ‘customer-centric measurement’ as it allows the user-identified app sessions to be measured side-by-side with public website / web app sessions, where user-identification is harder. You could do something similar with roll-up properties in GA360 previously, but getting user identification right was a pain. I don’t rate this as a key feature for ecommerce, because most stores only run a public website, but if you are investing in a native mobile experience for loyalty then this is a killer feature for you. [subscribe heading="Love analytics? Littledata is seeking an Analytics Advocate" button_link="https://blog.littledata.io/2021/01/29/shopify-analytics-littledata-is-hiring/" button_text="See Open Positions"] 7. Streamlined audience building  It is telling that one of the first features launched for GA4 was linking a Google Ads account. Google wants to make GA4 the key way you build audiences for retargeting, and export them to Google’s other products. In GA4, Audiences can be configured with any combination of events, demographics or channel, and then synced with Google Ads. For example, let’s say you want to retarget users over the next 30 days who added a product from the ‘handbags’ category to cart, with a value of more than $100 -- but never purchased. No problem! Go ahead and include users who have triggered the add to cart event with a certain product category and product price, and exclude those that triggered a purchase. 8. Predictive insights GA4 adds a number of features for predictive insights. For example, in analysis and audience building you can add predictive metrics: purchase probability and churn probability. Purchase probability is the chance that a user will purchase in the next 7 days, based on their patterns of behavior so far. Churn probability is the chance that they will no longer be an active user in 7 days. This further improves the kind of audiences you can build. How much more would you be willing to pay to re-engage customers that were in the top 10% of people most likely to buy? For ecommerce analytics, we see predictive insights being used alongside metrics already enabled by Littledata's tracker, such as LTV by channel. Yet another reason to be excited about GA4 for DTC growth. 9. More custom dimensions and user properties At Littledata we add custom dimensions about user behavior over time (their lifetime spend, date of last purchase, and more) to aid in audience building and LTV analysis. This used to eat into the 20 custom dimension slots provided in Google Analytics, but with GA4 you can specify as many hit-scope dimensions with events as you like (not just limited to Category, Action and Label). You can also add up to 25 user properties that are persisted with each user as they get tracked across your site. The only downside is there is no support for product-scope custom dimensions (like sizing or gross margin) as such. You can add multiple item_category fields, which could be used as extra product fields, but I hope custom product properties are on the roadmap. 10. There’s more to come Google stopped developing Universal Analytics a few years ago and any new features will only launch on GA4. Although GA4 is not yet perfect I am really excited about the direction and speed of travel of the product. As Spencer Connell at Praxis Metrics puts it: “GA4 feels like a house which is 60% built - missing a couple of walls, and maybe the roof … but you definitely don’t want to wait until the house is 100% finished before you start moving in.” At Littledata we’re so excited that we have built a beta GA4 connection for Shopify, and we will launch it just as soon as GA4’s APIs are ready. Please get in touch in you're interested in access to the beta release. What you can do now If you want to watch the GA progress from the sidelines, keep checking for GA4 product releases and jump in when you’re ready. But I recommend getting started right now by tracking your site on GA4 in parallel with Universal Analytics (or ‘doubling tagging’ in marketing analytics speak). Josh Katinger at our Google Analytics Sales Partner, Cardinal Path, explains: “Why now? You need an overlap of data. Moving to GA4 is really equivalent to a migration from Adobe Analytics - it’s a platform migration. And when you have a platform migration you want to have overlap, so you have time to understand the difference in the data model, understand the data variations and how to handle them. We are counseling everyone to double tag if you can.” Note that adding GA4 tracking to a Shopify store will not slow down your pages, as Littledata shares the same gtag tracker and server-side tracking for both versions of GA. Have you already started playing around with GA4? Let us know what you've discovered. [subscribe heading="Love analytics? Littledata is seeking an Analytics Advocate" button_link="https://blog.littledata.io/2021/01/29/shopify-analytics-littledata-is-hiring/" button_text="See Open Positions"]

2021-02-04

Product update: Shopify Order Names

We are pleased to announce a product update for how Littledata tracks unique identifiers for Shopify orders. Previously Littledata passed orders from Shopify to Google Analytics (or Segment) using only the order number (Order ID). Shopify offers the ability to add a prefix or suffix to this number to create an order name, and we now support Shopify Order Name tracking in addition to Shopify Order ID tracking. You can now choose between tracking either the Shopify Order ID or Shopify Order Name, and Order Name tracking is the default for new installs. Read on to see what's changed, and why we made the shift. What was the problem with tracking order numbers? There is nothing wrong with tracking order numbers per se, but for some Shopify stores -- especially larger brands on Shopify Plus -- it's often more useful to track the complete order name, which includes a particular prefix or suffix. Brands running multiple Shopify stores in local currencies often want to analyze total sales across geographic operations, while also segmenting by individual stores. This is useful whether or not you are using a rollup property for data analysis. With only order number tracking, there were two options: The largest brands, running GA 360, could set up a different web property for each store and then a 'rollup property' for all the stores. This option is expensive.The brand could send all the web orders to one GA web property, and then create filtered views based on the hostname the order was made on. But this didn't work for non-Shopify checkouts, such as ReCharge, where the hostname did not vary by store. So Littledata built a third option, order name tracking, which makes it easier to track multi-currency sales in GA and other data destinations, and also ensures no clashes with order numbers from non-Shopify systems. How to change the order ID format for your Shopify store Shopify and Shoify Plus merchants can change their Shopify order numbers to include a particular prefix and/or suffix. If you want to make this change, go to Shopify Admin > Settings > General > Standards and formats. Here you can configure a prefix or a suffix to every order, unique for that store. While you can't change the order number itself, you can add this default info to make it easier to see and segment your orders. For example, if you are selling in the US and the UK, you might want to add country-type prefix to your orders, such as 'US' and 'UK' to those country stores. Then your orders will come through with order names such as 'US1792' and 'UK1793'. [subscribe] How to enable Order ID or Order Name tracking in Segment or Google Analytics Shopify Order Name tracking is now the default. So if you installed Littledata after 19th October 2020, then you will already be using order names. This applies to both our Segment connection and our Google Analytics connection in the Shopify App Store. [note]If you installed Littledata after 19th October 2020, then we will be tracking the Shopify Order Name by default. You can change this in your Littledata Settings.[/note] If you installed Littledata before 19th October 2020, we will be tracking Shopify Order ID by default. You can check which unique order identifier we're using for your store, and make any necessary changes, directly in the Littledata admin. Go to Settings > General on the bottom leftUnder Unique identifier for all orders, select either "Shopify Order ID" or "Shopify Order Name"Click Save We will then pass the order information in your chosen format. How to use the data in Google Analytics Order identifiers offer a broad range of reporting and analysis possibilities in Google Analytics and connected analytics dashboards. Here's the ecommerce Sales Performance report showing orders including the prefix appearing in Google Analytics. If you are operating multiple country stores and using Littledata for multi-currency tracking, you will see different prefixes here for each currency. You can also create a segment including only orders with that prefix, by filtering by Transaction ID. What's next We are constantly enhancing Littledata's functionality. This year we have introduced a range of general updates and a new version of our Shopify to Segment connection. If you are setting up a raw data pipeline, we also now offer a Measurement Protocol connection for use with a range of ETLs, data collection platforms (like Snowplow) and data warehouses (like Google BigQuery). Check out our release notes to stay up to date, and don't forget to browse the complete documentation in our help center.

2020-12-09

How to track Klaviyo flows and email campaigns in Google Analytics

Klaviyo is one of the most popular email marketing platforms for Shopify stores, but the analytics setup is often overlooked. By following a few simples rules, you can ensure accurate Klaviyo data alongside other sales and marketing data in Google Analytics. In this article we cover how to set up Google Analytics tracking for Klaviyo, including best practices for UTM parameters and dynamic variables, and how this tracking works alongside Littledata's Shopify to Google Analytics connection. Why Klaviyo Klaviyo is a popular customer engagement platform used by over 50,000 Shopify merchants. Their focus is on email and SMS automation, and they have been one of the major success stories in the Shopify ecosystem, recently closing a $200 million funding round. Klaviyo's features for Shopify include: Codeless signup forms Pre-built flow templates for quick automation Email campaigns for customers and leads Advanced segmentation and personalization, including product recommendations Many of Littledata's Shopify customers use Klaviyo in one way or another, as do almost all of our Shopify Plus customers. But we've noticed a trend where even the biggest Klaviyo users aren't correctly tracking Klaviyo flows in GA, which ends up blocking data-driven decisions for growth. Read on to see how to fix this. Why Google Analytics The Klaviyo dashboard has useful built-in reporting, but for ecommerce managers focused on more than just email, there are some significant limitations compared with a dedicated analytics platform like Google Analytics (GA). One key limitation is for sales attribution (marketing attribution for online sales). In Klaviyo, any sale that happens after engagement with an email is attributed to that email. This overstates Klaviyo's contribution to sales. For example, if a user first comes from a Facebook Campaign, then clicks on an abandoned cart email from Klaviyo, then goes on to complete a purchase after being retargeted in Facebook, Klaviyo will claim this as owned revenue attributed to that email engagement and credit Facebook with nothing! Another limitation of reporting in Klaviyo's dashboard is that it's hard to see the contribution of an entire email flow to sales, as opposed to the impact of a particular email message in the flow. In Google Analytics (if set up correctly) you can see multi-channel contribution to sales, comparing apples with apples across different marketing channels. What is UTM tracking? UTM parameters are extra data in the link the user clicks to tell Google Analytics (and Shopify) where the click came from. These parameters are automatically added by Google Ads, but for other platforms (e.g. Facebook or Klaviyo) you will need to add them manually or via the software. Why does this matter? Because link clicks coming without a UTM tag will typically be treated by GA as "direct" traffic -- in other words, the source of those visits will be unknown. [note]Read Littledata's free guide to common reasons Shopify doesn't match Google Analytics[/note] Recommended settings To provide the most reporting flexibility we recommend having the same standard UTM parameters across all email flows and campaigns. Klaviyo allows dynamic variables to be used in your default UTM tracking settings. To get the most out of your Klaviyo reporting in GA, we recommend using static values for Source and Medium, and dynamic values for Campaign and Content. You can change these defaults in go to  Account > Settings > UTM Tracking UTM Parameter Campaign Email Value Flow Email Value Source (utm_source) 'Klaviyo' 'Klaviyo' Medium (utm_medium) 'email' 'email' Campaign (utm_campaign) Campaign name (Campaign id) Flow email name (Flow email id) Content (utm_content) Link text or alt text Link text or alt text [tip]Content is not a default parameter in Klaviyo, so you will need to add that manually (enter `utm_content` as a new parameter).[/tip] With static values for Source and Medium (Klaviyo / email), you will be able to see Klaviyo compared against other marketing channels in GA, and in particular how Klaviyo campaigns contribute to customer lifetime value and other key metrics for Shopify sales and marketing. We do not recommend sticking with Klaviyo's default UTM settings, where Klaviyo flows, for example, are  given a dynamic variable that pulls in the name of the flow. You can already see that type of data in the Klaviyo analytics dashboard -- better to use GA for complete marketing analysis. Whichever naming convention you choose, consistency is essential. Many Littledata customers create internal spreadsheets to manage UTM naming conventions and channel groupings in GA, and run regular QA checks to ensure consistency. Note that we have analytics audit checks within the Littledata app, and we now offer analytics training on Plus plans. Enabling UTM parameters In addition to setting up the UTM Parameter values in your Klaviyo account, you need to enable UTM tracking to ensure that those parameters are applied to all emails in flows and campaigns. The first step is to enable global UTM settings. Go to Account > Settings > UTM Tracking Switch Automatically add UTM parameters to links to ON. Then click Update UTM Tracking Settings. This will ensure that the UTM parameters are added automatically to all emails sent via Klaviyo. Now that you have enabled UTM tracking, you need to make sure that you are using 'account defaults' for UTM tracking in your flows and email campaigns (as opposed to custom tracking). This should already be the case, but it's good to double-check. Disable any custom UTM tracking for flows or campaigns Make sure that the UTM settings for individual flows are set to 'Yes, use account defaults'  Make sure that overall email campaign settings are set to use default UTM tracking as well. In your overall campaign settings, select 'Yes, use account defaults' In addition, when creating/editing a campaign, go to Tracking and make sure that 'Include tracking parameters' is ON and 'Customize tracking parameters' is OFF Tracking across all marketing channels The UTM settings above only solve part of the marketing attribution problem: getting the campaign information to the landing page. Commonly this marketing attribution is lost between the landing page and the order completing. You can try to do this manually with an in-house dev team, but Littledata has built a complete ecommerce tracking solution for Shopify and Google Analytics that works automatically. Our connections use a combination of client-side and server-side tracking to make sure that all marketing channels -- including email, paid channels, organic search and referrals -- are linked to sales, along with all touch points in between. We also track returns/refunds, repeat purchases, and subscriptions, so you can understand customer lifetime value on a deeper level. Read about all of the the events Littledata sends automatically. You can use these events for reporting and analysis, and also to build audiences for your Klaviyo campaigns! Reporting on Klaviyo flows in Google Analytics Google Analytics is a powerful reporting tool once you get to know how channel groupings and custom dimensions work. Here's a quick look at how to analyze your Klaviyo data in GA. Looking at campaign conversions in Google Analytics After you have enabled our recommended settings for UTM tags, you will have access to Klaviyo flow and campaign data in GA. You can look at this on its own, but also compared against other channels for engagement and acquisition. To see revenue and orders attributed to these campaigns, drill into the Klaviyo source and add campaign as a secondary dimension. If you set up the Flow email name as the utm_campaign above, then you can look at the contribution of that whole flow to sales. For example, without caring if the user clicked on email 1 or 2 in a 4-email flow, did clicking on any of the emails in that flow -- for example, the 'Browse Abandonment' flow -- result in sales? Going further, you could create a segment of users who came via an Instagram campaign, and see to what degree they were influenced by the email sequence. Will Google Analytics match Klaviyo? How does the data you now have in Google Analytics compare with what you see in your Klaviyo dashboard? Under the Conversions > Multi-Channel Funnels > Model Comparison Tool in GA, you can compare the default email attribution in GA (last non-direct click), with other attribution models more similar to Klaviyo's dashboard. Keep in mind that there is no model for 'all click' attribution, so the numbers you'll see in GA will always be lower. You can also look at the Multi-Channel Funnels > Top Conversion Paths report to see where Klaviyo fits into the user journey on your ecommerce site.   [note]Google Analytics data can also be used as a source for other reporting tools, such as Data Studio and Tableau.[/note] Using Klaviyo with Segment If you are looking to do more with your Shopify and Klaviyo data, consider Segment. Littledata's Shopify source for Segment automatically sends a rich data set for use with a range of Segment destinations. Not only does our Segment connection get all of the post-click events into Segment, but it also sends any event associated with an email address onto Klaviyo as well -- providing a richer set of events, without a developer, than Klaviyo's own Shopify event tracking. For example, you can retarget users in Segment who have purchased a certain value, or got certain products to a stage of the checkout -- all without writing a line of code. Read more about how Littledata's Segment connection works, and check out the latest updates to our Shopify source for Segment. The connection now supports analytics destinations such as Mixpanel, Vero and Kissmetrics, and email marketing destinations including Klaviyo, Hubspot and Iterable. [subscribe]

2020-11-25

What's new in v2 of our Shopify source for Segment

We've a built a loyal following for our Shopify to Segment connection, and this month we've rolled out the next version, v2, with new events and enhanced functionality. As Shopify and Segment both continue to see unprecedented growth, Littledata is here to ensure accurate data at every ecommerce touchpoint. We've seen a surge in DTC and CPG brands on Shopify Plus that rely on Segment to coordinate customer data across marketing, product, and analytics tools. We have continued to develop our Segment integration to fit all of these use cases. [note]If you installed Littledata's Segment connection previously, please contact us to add the v2 events.[/note] About Segment v1 Last year, we worked with Segment to create a robust Shopify source for Segment users. The aim was to make everyone's job easier, from CTOs to ecommerce managers. Littledata's Segment connection v1: Captures all customer touchpoints on your store, both pre and post checkout Sends data to any of Segment’s hundreds of destinations Works seamlessly with Google Analytics Uses a combination of client-side and server-side tracking to capture browsing activity, orders and refunds Sends user fields for calculating customer lifetime value [subscribe] What's new in Segment v2 Since we launched the first Shopify app for Segment in May 2019, we have continued to make improvements based on user feedback and new use cases. The latest version of our Shopify source for Segment offers several updates and enhancements, including support for email marketing around order fulfilment events; tracking for a range of new order and payment events, including POS orders and order cancellations; and alias calls to support additional analytics destinations such as Mixpanel and Kissmetrics. Fulfilment status Many of our customers use Segment events to trigger transactional emails on platforms like Klaviyo and Iterable. One key email that stores want to customize is the 'Your order has shipped' fulfilment email, and so we now trigger a Fulfilment Update event when the fulfilment status of an order changes. This event includes status, tracking_numbers and tracking_urls (where the shipping integration allows), so the transactional email can include actionable details for the end user. These events can also be used in analytics destinations to look at fulfilment trends by product, or see how marketing campaigns around shipping match real-world delivery times. Support for email marketing Email marketing destinations such as Klaviyo, Iterable, and Hubspot, cannot use an anonymous identifier -- so our Segment connection now sends an email property with all events (when it is known), usually from checkout step 2 onwards. Where the email is captured on landing pages (e.g. popup forms) we also send this with the Product Viewed and Product Added events, to make it easier for you to run retargeting and engagement campaigns. Support for Kissmetrics & Mixpanel destinations To support seamless customer tracking in analytics destinations such as Mixpanel, Vero and Kissmetrics, Segment requires an extra alias call. Littledata ensures the pre-checkout anonymousId is added as an alias of the userId (used from checkout step 2 onwards). Learn more in our developer docs. Customer account creation On Shopify, every checkout (even as a guest) creates a customer record. This was already passed on to Segment with an Identify call and a Customer Created event. However, it is useful to know when this customer creates a password and creates a verified account with the store. For example, some brands use this event to trigger welcome emails or offer discounts. With Segment v2, we now send a Customer Enabled event when the user has confirmed their email address and created a Shopify customer account, with verified_email set as true. Payment of draft orders Some stores (especially B2B brands and wholesalers) create draft orders which are later paid. From November 2020, Littledata's Segment connection triggers an Order Completed event whenever these draft orders are paid, linking them back to the user session when they were created. POS orders Previously POS (point-of-sale) orders were excluded from Order Completed, as this polluted the revenue attribution in Google Analytics or other Segment destinations. However, as Shopify POS and other POS orders have become more popular, we now send a separate POS Order Placed event, so you can track the POS orders and choose whether to add them to your web orders. Payment failure After a customer goes through your checkout and completes an order, there is still a chance the payment fails, usually due to fraud checks. A new Payment Failure event allows you to track these failures, and see if they are more associated with particular marketing campaigns, geographies, products, or other factors. Order cancellations If the admin has cancelled an order, perhaps due to the product being unavailable, an Order Cancelled event is now triggered (including the cancel_reason). This is useful for both tracking/analysis and re-engagement campaigns. Product properties Last, but certainly not least, we've expanded the range of product properties sent with every product for better segmentation. Details such as shopify_variant_id, category and brand are sent with all client-side events and most server-side events. For more information, read our developer docs or schedule a demo today with an analytics expert.

2020-11-04

Why does shop.app appear as a referral source in Google Analytics?

You may have noticed a new referral source appearing in your Google Analytics, or an increase in sales from the 'Referral' channel. This is a change Shopify made with the launch of the new Shop app, and can be easily fixed. What is Shop.app? SHOP by Shopify is a consumer mobile app, aggregating products and experiences from many Shopify merchants. It is heavily integrated with ShopPay, and so Shopify is now directing one-click checkout traffic to the shop.app domain instead of pay.shopify.com. How would SHOP fit into the user journey? There are two scenarios: 1. Customer is using Shop.app for checkout and payment Example journey: User clicks on Facebook Ad Lands on myshop.myshopify.com?utm_source=facebook Selects a product Logged in, and directed to shop.app for checkout Returns to myshop.myshopify.com for order confirmation In this scenario we should exclude shop.app as a referrer, as the original source of the order is really Facebook 2. End customer is using Shop.app for browsing / product discovery Example journey: User discovers product on shop.app Clicks product link to myshop.myshopify.com?utm_source=shop_app Logged in, and directed to shop.app for checkout Returns to myshop.myshopify.com for order confirmation Here, shop.app is the referrer but it will show up with UTM source How do I see the true source of the referral in Google Analytics? Firstly, you need to exclude shop.app as a referral source. Only in scenario 2 is SHOP genuinely a source of customers, and there the UTM source tag will ensure it appears as a referrer. Littledata's latest tracking script sets this up automatically. The second fix is harder. Unfortunately, at the time of writing, Shopify only sets utm_source=shop_app in the URL query parameters in scenario 2, and Google Analytics won't consider this a referral unless utm_medium is also set. So it appears under the (not set) channel. I've written a patch for our tracking script so that we set utm_medium as referral if only the source is specified, but you can also edit the default channel grouping in GA so that shop_app is grouped as a referral. Thirdly, you want to differentiate orders going through shop.app from the normal Shopify checkout. Littledata's Shopify app does this by translating the order tag shop_app into the transaction affiliation in Google Analytics, so the affiliation is Shopify, Shop App. Conclusion So if you're a Littledata customer: our app has got you covered. And if not there's a few changes you'll need to make in Google Analytics settings to make sure shop.app traffic is treated correctly.

2020-09-22

The growing Polish ecommerce market

What does the future of ecommerce look like in Poland? This week, I was honored to be invited onto a panel discussing ‘Riding the Wave of Ecommerce into the Future’ as part of the Ecommerce Trends Summit. Organized by MIT Sloan Management Institute Polska and the ICAN Institute, the summit offered a timely forum about ecommerce for a country rapidly undergoing digital transformation. As with all countries, Poland has seen a massive shift online post-Covid, and predominantly offline companies are scrambling to catch up with online-first retailers. These laggards were behind on use of modern ecommerce platforms like Shopify, but are now catching up fast as they understand the true cost of maintaining an excellent web channel. Since Shopify launched local language versions of their store admin in 2019 it has been a more popular choice for Europe-based companies, and Shopify is now heavily marketing in France, Germany and other countries. Many brands are extending across these markets, and at Littledata we've built multi-currency tracking into our main SaaS product for Shopify merchants. In the Shopify world, each country site is a separate-but-connected "country store" for localized shopping and payments. I’d expect more Polish companies to migrate to Shopify or other cloud solutions (WooCommerce, BigCommerce, etc) in the near future. The larger brands will likely choose Shopify Plus. [note]See the ecommerce trends we've identified during the COVID-19 crisis[/note] The other themes of the panel were more general to retailers globally: stores need smarter marketing, better personalization and a more unique sales proposition as competition heats up. In addition, Amazon.de (Amazon Germany) is just as big a threat to individual brands as elsewhere, but that makes it just as important for stores to own their own customer channel and direct brand experience. And that means running their own online store. Let’s hope Littledata gets to do more business with Polish ecommerce sites soon! [tip]Book Littledata CEO Edward Upton as an expert ecommerce speaker at your next online event[/tip]

2020-09-11

Try the top-rated Google Analytics app for Shopify stores

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