Adobe Analytics Integration with Shopify | EPAM SolutionsHub
Error Icon

Something went wrong. Please try again

\n\n \n\n \n\n analytics.subscribe(\"checkout_completed\", async (event) => {\n\n   const order = event.data.checkout;\n\n \n\n   // Format products in Adobe format\n\n   const products = order.line_items.map(item => ({\n\n     name: item.product_title,\n\n     sku: item.sku,\n\n     quantity: item.quantity,\n\n     price: item.price,\n\n     category: item.product_type || \"default\"\n\n   }));\n\n \n\n   // Push to adobeDataLayer\n\n   window.adobeDataLayer = window.adobeDataLayer || [];\n\n   window.adobeDataLayer.push({\n\n     event: \"checkoutCompleted\",\n\n     ecommerce: {\n\n       purchase: {\n\n         transaction_id: order.order_id,\n\n         affiliation: \"Shopify Store\",\n\n         value: order.total_price,\n\n         currency: order.currency_code,\n\n         items: products\n\n       }\n\n     }\n\n   });\n\n });\n\nFor Privacy Compliance: Based on your business requirements, select the appropriate categories in the Customer privacy > Permission section above the code section.Hope this helps in your integration with a Shopify website!","author":[{"@type":"Person","name":"Haritika Mittal","description":"Associate Director, Analytics"}],"keywords":"adobe analytics integration, adobe analytics, adobe analytics data, adobe analytics configuration, analytics tools, adobe analytics framework, adobe analytics extension, analytics integration, adobe experience","articleSection":"Analytics","description":"Learn how to integrate Adobe Analytics with Shopify using Launch. Step-by-step setup, privacy compliance, and checkout tracking solutions.","inLanguage":"en-US","mainEntityOfPage":"https://solutionshub.epam.com/blog/post/adobe-analytics-integration","url":"https://solutionshub.epam.com/blog/post/adobe-analytics-integration","timeRequired":"PT9M","wordcount":1567,"genre":"Analytics"},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What's the difference between using Adobe Analytics with Launch and Shopify's built-in analytics or other tools?","acceptedAnswer":{"@type":"Answer","text":"Adobe Analytics with Launch gives you advanced web analytics features like deeper customization, cross-channel tracking and integration with tools like Adobe Experience Manager. Shopify's built-in analytics focuses on basic store metrics. By using Launch, you can create custom setups and detailed dashboards for tracking specific events, offering way more flexibility than Shopify's standard analytics tools."}},{"@type":"Question","name":"Can Adobe Launch work with all Shopify plans?","acceptedAnswer":{"@type":"Answer","text":"Yes, you can integrate Adobe Analytics by adding Launch code snippets to any Shopify plan. However, advanced features like editing checkout scripts might require Shopify Plus. Make sure you select Adobe Analytics settings that match your data needs, and check Shopify's rules for checkout customization and analytics configuration to avoid any issues."}},{"@type":"Question","name":"How do I make sure my Adobe Analytics setup follows privacy laws like GDPR or CCPA on Shopify?","acceptedAnswer":{"@type":"Answer","text":"Link Adobe Analytics to Shopify's Customer Privacy API to manage user consent correctly and align cookie settings. Test your analytics tools, consent mechanisms and firing rules before going live to meet privacy regulations and keep everything proper for your organization."}},{"@type":"Question","name":"What data should I track to get the most out of Adobe Analytics on Shopify?","acceptedAnswer":{"@type":"Answer","text":"Set up Adobe Analytics data for important events like page views, product impressions, add-to-cart actions, purchases and funnel steps (like checkout started or payment completed). You can also capture custom events like coupon usage or wishlist adds. Use the dataLayer to organize this for better analysis and insights."}},{"@type":"Question","name":"Can I test my Adobe Launch setup before making it live?","acceptedAnswer":{"@type":"Answer","text":"Definitely! Use a staging environment or a private Shopify theme to safely test your Adobe Launch integration. Check for accurate event firing and verify data in your Adobe Analytics account to make sure everything works as planned."}},{"@type":"Question","name":"Why is my tracking not working after setup?","acceptedAnswer":{"@type":"Answer","text":"Some common problems are:\n\n- Adding Adobe Analytics configuration scripts to Shopify's sandbox instead of the theme.liquid\n\n- Forgetting to set up a CNAME for first-party cookies\n\n- Mismapped dataLayer variables\n\n- Events firing before user consent is given\n\n- Checkout limitations if you're not on Shopify Plus"}},{"@type":"Question","name":"How do I track checkout events now that checkout.liquid is gone?","acceptedAnswer":{"@type":"Answer","text":"For non-Plus Shopify plans, you can use Shopify's Customer Events API along with a Custom Pixel to track checkout activity. Or, track purchase events through the Order Confirmation Page. Both options ensure accurate Adobe Analytics data collection for a complete view in your Adobe Analytics report suite."}},{"@type":"Question","name":"I have multiple Shopify domains. Do I need separate Adobe Launch setups for each?","acceptedAnswer":{"@type":"Answer","text":"For multiple domains, request individual CNAME tracking certificates for each one and configure tracking servers. Use one Launch container for all domains, but set domain-specific rules and conditions to keep your analysis organized across your Adobe Analytics framework."}}]}]
Home>Blog>Step-by-Step Guide to Adobe Analytics Integration with Shopify

Step-by-Step Guide to Adobe Analytics Integration with Shopify

October 9, 2025 | 9 min read

by Haritika Mittal

adobe analytics

In this article

  • Prerequisites

  • Step 1: Enable the First-Party Tracking Server

  • Step 2: Add Adobe Launch Embed Code to Shopify Theme

  • Step 3: Enable the dataLayer Object and Click Tracking Events

  • Step 4: Integrate with Shopify Privacy Consent

  • Step 5: Custom Checkout Script for Tracking eCommerce Events

Tags

Analytics
Cloud & DevOps

Share

Shopify is one of the most widely used eCommerce platforms, and Adobe Analytics remains a gold standard for enterprise-level customer insights. If you want the power of Adobe Analytics integration on your Shopify storefront, integrating via Adobe Experience Platform Launch (now known as Tags) is the most scalable and flexible approach.

In this post, we'll walk through how to implement Adobe Analytics on a Shopify store using Adobe Launch, including handling Shopify's Customer Privacy API and Checkout Pages.

Prerequisites

Before getting started, make sure you have:

  • Access to a Shopify Store

  • Access to Adobe Experience Cloud (Launch + Adobe Analytics)

  • Published Adobe Launch property with:

    • Adobe Analytics Extension installed

    • Adobe Experience Cloud Extension installed

    • A working Report Suite

  • A staging environment or the ability to test on a Shopify theme

The steps below are our recommended approach to accurately measure data, comply with data privacy rules and fully utilize Adobe Launch functionality — tried, tested and proven effective!

Step 1: Enable the First-Party Tracking Server

This step is critical to enable a first-party cookie on a Shopify website to accurately measure visits and unique visitors:

  1. Request the certificate from Adobe for CNAME implementation.

  2. Ask your customer (Shopify store admin or developer) to update their DNS settings.

  3. Configure tracking servers in Adobe Launch:

    - Analytics Extension

    - Adobe Experience Cloud ID

    - In case of multiple domains using a Shopify store, under the same Launch container

  4. Request a certificate for each domain.

Step 2: Add Adobe Launch Embed Code to Shopify Theme

  1. Implement the Adobe Launch script in the Shopify store.

    Note: In case you don't have access to the Shopify store, ask your Shopify developer.

  2. Open Shopify Admin > Online Store > Themes.

  3. Select Actions > Edit Code > Open the theme.liquid file.

  4. Insert the Launch embed script (found in Adobe Launch > Environments > Production or Staging) into the tag of the theme.liquid file.

Important Note: DO NOT place the Adobe Launch script in Customer Events as a Custom Pixel.

Here's why:

  • Shopify's custom pixel loads the Adobe Launch script in an iframe within a sandbox environment, which causes Adobe extensions such as the Experience Cloud ID service not to load at the domain's top frame.

  • As Adobe can't access the site's domain, it defaults to "third-party tracking cookie" even if you've installed the first-party tracking server via CNAME implementation, resulting in a non-persistent Marketing Cloud ID, which leads to INFLATION in visits and unique visitors.

  • Shopify admits that some custom pixels will not work to their full functionality. They list out the limitations of sandbox pixels here.

Another Option: If you have access to Shopify developers, make your own web pixel application, which loads Adobe in the top frame of the site.

Step 3: Enable the dataLayer Object and Click Tracking Events

Like any other website, you can enable the dataLayer object for a Shopify website as well, using the following steps:

  1. Add a dataLayer object for the variables want to capture based on the SDR in the theme.liquid file.

    Note: In case you don't have access to the Shopify store, ask your Shopify developer to implement the code.

  2. For click tracking, you can use data elements or custom code in Adobe Launch to trigger events like any regular website. Alternatively, add a customized adobe-analytics.js code in Adobe Launch, which entails all the custom code to push click events to the dataLayer object.

Shopify Customer Privacy API  is a browser-based, JavaScript API that you can use to verify data processing, permissions or build a cookie consent banner. This allows us to use this API to capture consent using Adobe Launch.

  1. Implement a custom code in Adobe Launch that registers user consent via Shopify's API listeners.
ProsCons
  • Gives control over which events should fire after the user's consent based on business/legal requirements.
  • Avoids dependency on developers or customers to implement it correctly.
  • The API is available even if a customer does NOT turn on their cookie banner.
  • Easy to add a fallback if the API isn't available on the page or fails to load.
  • Can push consent details into a dataLayer object on the page, and provides more transparency.
  • Easy to troubleshoot if events are not firing without needing a collaborator's access to the Shopify store.
  • Provides control on logic for consent; it includes both consent and non-consent regions, upon page load, and if the user updates consent mid-session.
  • Honestly, I can't think of any!

Example of Code:

console.log('[Consent Debug] Starting consent check');

window.dataLayer = window.dataLayer || [];

// Load Shopify's customerPrivacy API
Shopify.loadFeatures([
  {
    name: 'consent-tracking-api',
    version: '0.1',
  }
], function(error) {
  if (error) {
    console.error('[Consent Debug] Error loading consent-tracking-api:', error);
    return;
  }

  console.log('[Consent Debug] consent-tracking-api loaded');

  // Wait until Shopify.customerPrivacy is available
  (function waitForCustomerPrivacy() {
    if (window.Shopify && Shopify.customerPrivacy) {
      runConsentChecks();
    } else {
      console.log('[Consent Debug] Shopify.customerPrivacy not yet available, retrying...');
      setTimeout(waitForCustomerPrivacy, 200);
    }
  })();

  function runConsentChecks() {
    // 1️⃣ Check consent synchronously on page load
    console.log('[Consent Debug] analyticsProcessingAllowed:', Shopify.customerPrivacy.analyticsProcessingAllowed());

    if (Shopify.customerPrivacy.analyticsProcessingAllowed()) {
      window.dataLayer.push({
        event: 'shopifyConsentGranted',
        consentType: 'analytics'
      });
      console.log('[Consent Debug] (Page Load) Pushed event to dataLayer');
      _satellite.track("shopifyConsentGranted");
      console.log('[Consent Debug] (Page Load) Fired _satellite.track("shopifyConsentGranted")');
    } else {
      console.warn('[Consent Debug] (Page Load) analyticsProcessingAllowed is FALSE');
    }

    // 2️⃣ Listen for dynamic consent changes
    document.addEventListener('visitorConsentCollected', function(event) {
      console.log('[Consent Debug] visitorConsentCollected event fired:', event.detail);

      if (event.detail && event.detail.analyticsAllowed) {
        window.dataLayer.push({
          event: 'shopifyConsentGranted',
          consentType: 'analytics'
        });
        console.log('[Consent Debug] (Consent Change) Pushed event to dataLayer');
        _satellite.track("shopifyConsentGranted");
        console.log('[Consent Debug] (Consent Change) Fired _satellite.track("shopifyConsentGranted")');
      } else {
        console.warn('[Consent Debug] (Consent Change) analyticsAllowed is FALSE or missing');
      }
    });
  }

  // ❌ Optional fallback if API never becomes available
  setTimeout(function() {
    if (!(window.Shopify && Shopify.customerPrivacy)) {
      console.warn('[Consent Debug] Shopify.customerPrivacy API not implemented -- assuming consent granted (fallback)');
      window.dataLayer.push({
        event: 'shopifyPrivacyOff',
        consentType: 'analytics'
      });
      console.log('[Consent Debug] (Fallback) Pushed event to dataLayer as "shopifyPrivacyOff"');
      _satellite.track("shopifyConsentGranted");
      console.log('[Consent Debug] (Fallback) Fired _satellite.track("shopifyPrivacyOff")');
    }
  }, 5000);
});

In the code above, _satellite.track(ShopifyconsentGranted) was used to store the event name once consent is granted.

  1. Edit the Launch rule, whichever rule should be triggered ONLY AFTER CONSENT to listen to the event in Custom Code or Direct call (if using _satellite.track) or as a dataLayer variable. As per our example, Rule > Core > Direct Call > enter value "ShopifyconsentGranted" //event name.

Customizing privacy settings by selecting the required data collection categories

Step 5: Custom Checkout Script for Tracking eCommerce Events

Shopify has deprecated checkout.liquid file for Shopify Plus stores since 2024, which means that a dataLayer CANNOT be added to the liquid file to capture the eCommerce events.

Instead, the only way to capture analytics events on the Checkout pages and load Adobe Launch is via:

  1. Shopify Admin > Settings > Customer Events as a CUSTOM PIXEL (unfortunately, it's the only way).

    Our Observation: On the Checkout pages, mid persists because the domain doesn't change and the cookies are stored for the user in the same session.

  2. Write pixel code using Shopify's Customer event API (here is the list of events available to subscribe to) and push events to the dataLayer object.

Example of Code:

<!-- Adobe Launch Embed Code -->

 <script src="https://assets.adobedtm.com/YOUR-LAUNCH-CODE.min.js" async></script>

 

 <Subscribe to Shopify Events and push to DataLayer>

 analytics.subscribe("checkout_completed", async (event) => {

   const order = event.data.checkout;

 

   // Format products in Adobe format

   const products = order.line_items.map(item => ({

     name: item.product_title,

     sku: item.sku,

     quantity: item.quantity,

     price: item.price,

     category: item.product_type || "default"

   }));

 

   // Push to adobeDataLayer

   window.adobeDataLayer = window.adobeDataLayer || [];

   window.adobeDataLayer.push({

     event: "checkoutCompleted",

     ecommerce: {

       purchase: {

         transaction_id: order.order_id,

         affiliation: "Shopify Store",

         value: order.total_price,

         currency: order.currency_code,

         items: products

       }

     }

   });

 });

For Privacy Compliance: Based on your business requirements, select the appropriate categories in the Customer privacy > Permission section above the code section.

Hope this helps in your integration with a Shopify website!

Subscription banner

Stay informed with our latest updates

Subscribe now!

Your information will be processed according to
EPAM SolutionsHub Privacy Policy.

To Sum Up

Integrating Adobe Analytics with Shopify through Adobe Launch gives you access to advanced analytics tools that help businesses make smarter, data-driven decisions for their online stores. The setup involves important technical steps, like enabling first-party tracking, using dataLayers, managing privacy settings and adapting to Shopify's evolving checkout system. Following the steps above will ensure your store has accurate, privacy-compliant and scalable analytics.

Paying close attention to tracking setup details and integrating Shopify's privacy API is crucial for collecting reliable data and staying compliant with regulations. When done correctly, this integration will give you deeper customer insights, better marketing attribution and a strong foundation to optimize your Shopify store's performance as your business grows.

FAQ

What's the difference between using Adobe Analytics with Launch and Shopify's built-in analytics or other tools?

Adobe Analytics with Launch gives you advanced web analytics features like deeper customization, cross-channel tracking and integration with tools like Adobe Experience Manager. Shopify's built-in analytics focuses on basic store metrics. By using Launch, you can create custom setups and detailed dashboards for tracking specific events, offering way more flexibility than Shopify's standard analytics tools.

Can Adobe Launch work with all Shopify plans?

Yes, you can integrate Adobe Analytics by adding Launch code snippets to any Shopify plan. However, advanced features like editing checkout scripts might require Shopify Plus. Make sure you select Adobe Analytics settings that match your data needs, and check Shopify's rules for checkout customization and analytics configuration to avoid any issues.

How do I make sure my Adobe Analytics setup follows privacy laws like GDPR or CCPA on Shopify?

Link Adobe Analytics to Shopify's Customer Privacy API to manage user consent correctly and align cookie settings. Test your analytics tools, consent mechanisms and firing rules before going live to meet privacy regulations and keep everything proper for your organization.

What data should I track to get the most out of Adobe Analytics on Shopify?

Set up Adobe Analytics data for important events like page views, product impressions, add-to-cart actions, purchases and funnel steps (like checkout started or payment completed). You can also capture custom events like coupon usage or wishlist adds. Use the dataLayer to organize this for better analysis and insights.

Can I test my Adobe Launch setup before making it live?

Definitely! Use a staging environment or a private Shopify theme to safely test your Adobe Launch integration. Check for accurate event firing and verify data in your Adobe Analytics account to make sure everything works as planned.

Why is my tracking not working after setup?

Some common problems are:

  • Adding Adobe Analytics configuration scripts to Shopify's sandbox instead of the theme.liquid

  • Forgetting to set up a CNAME for first-party cookies

  • Mismapped dataLayer variables

  • Events firing before user consent is given

  • Checkout limitations if you're not on Shopify Plus

How do I track checkout events now that checkout.liquid is gone?

For non-Plus Shopify plans, you can use Shopify's Customer Events API along with a Custom Pixel to track checkout activity. Or, track purchase events through the Order Confirmation Page. Both options ensure accurate Adobe Analytics data collection for a complete view in your Adobe Analytics report suite.

I have multiple Shopify domains. Do I need separate Adobe Launch setups for each?

For multiple domains, request individual CNAME tracking certificates for each one and configure tracking servers. Use one Launch container for all domains, but set domain-specific rules and conditions to keep your analysis organized across your Adobe Analytics framework.

09d28867eb9dc83d9443a52e636a9fd2

Haritika Mittal

Associate Director, Analytics

Related Content

View All Articles
Subscription banner

Get updates in your inbox

Subscribe to our emails to receive newsletters, product updates, and offers.

By clicking Subscribe you consent to EPAM Systems, Inc. processing your personal information as set out in the EPAM SolutionsHub Privacy Policy