> For the complete documentation index, see [llms.txt](https://docs.elevateab.com/elevate-helpcenter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elevateab.com/elevate-helpcenter/getting-started/setup-and-installation.md).

# Setup & Installation

Install Elevate A/B Testing on your Shopify store, activate the theme app extension, and confirm tracking is live before you build your first experiment.

Getting started with Elevate A/B Testing takes just a few minutes. This page covers what happens when you install the app, the onboarding process, and what Elevate A/B Testing sets up automatically behind the scenes.

***

### Installing Elevate A/B Testing

Install Elevate A/B Testing from the [Shopify App Store](https://apps.shopify.com/elevate-ab-testing). The installation process follows Shopify's standard app authorization flow:

1. Click **Install** on the app listing
2. Review and approve the requested permissions
3. You're redirected to the Elevate A/B Testing app inside your Shopify admin

That's it: no manual code editing, no theme modifications, and no developer needed.

***

### What Elevate A/B Testing Sets Up Automatically

During installation, Elevate A/B Testing configures several things behind the scenes so you don't have to:

| Component                 | What It Does                                                                                                      | Manual Action Required?                                                                                      |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **Liquid Snippet**        | Added to your theme's `<head>` section. Handles experiment delivery and visitor assignment.                       | No. Installed automatically                                                                                  |
| **Shopify server events** | Records visitors, page views, add to carts, and checkouts for every new experiment, directly from Shopify.        | No. Turned on automatically for new installs. Earlier installs turn them on at their next experiment launch. |
| **Web Pixel**             | Shopify's tracking extension for capturing visitor events (page views, add to carts, checkouts, purchases).       | No. Installed automatically                                                                                  |
| **Metafields**            | Stores experiment configuration data that the Liquid Snippet reads.                                               | No. Managed automatically                                                                                    |
| **Theme Extension**       | Handles price changes, image swaps, and content modifications on the storefront. Required for certain test types. | No. Installed with the app. May need to be enabled for specific test types.                                  |

If you switch themes later, the Liquid Snippet is automatically reinstalled when you open the app or launch an experiment. See [Liquid Snippet](/elevate-helpcenter/analyze/tracking/liquid-snippet.md) for details.

***

### Shopify server events

Elevate A/B Testing records experiment results with Shopify server events, Shopify's own record of what visitors do on your store.

* **New installs:** server events are turned on automatically.
* **Earlier installs:** the first time you launch an experiment, Elevate A/B Testing asks you to turn them on with **Enable server events**. Shopify may ask you to approve a new permission.
* Once turned on, server events stay on.

Every experiment launched after server events are on uses them for its main results. An experiment keeps the tracking it launched with, so experiments launched earlier keep using the web pixel. The web pixel is still installed on every store and is still needed, for click tracking, custom events, and custom metrics. See [Web Pixel](/elevate-helpcenter/analyze/tracking/web-pixel.md).

***

### Onboarding

After installing, you'll be guided through a short onboarding flow:

1. **Personal Info**: Your name, email, and how you heard about Elevate A/B Testing
2. **Your Role**: Whether you're a store owner, marketer, developer, agency, or CRO specialist
3. **Test Types**: What types of experiments you're interested in running

This takes about a minute and helps us tailor your experience. Once completed, you're taken to your dashboard and can start creating experiments immediately.

***

### Permissions

Elevate A/B Testing requests the following Shopify permissions during installation:

* **Read/write theme files**: To install and manage the Liquid Snippet
* **Read products**: To display your product catalog for price and image experiments
* **Read/write metafields**: To store experiment configuration data
* **Read orders**: To attribute orders to experiment variations

Some experiment types require additional permissions that are requested when needed:

* **Shipping experiments**: Requires `read_shipping` and `write_shipping` permissions, plus carrier-calculated rates on your Shopify plan
* **Checkout experiments**: Requires Shopify Plus for checkout extension access

***

### Theme Extension

The Elevate A/B Testing theme extension is a Shopify app extension that applies changes to your storefront: price changes, image swaps, content changes, and custom code. It's installed with the app but may need to be **enabled** in your theme settings for certain experiment types. In your theme's app embeds it is listed as **Elevate Price Testing**.

If you see a prompt to enable the theme extension when creating an experiment, follow the instructions in the app. This is a one-time step per theme.

Test types that require the theme extension:

* Price testing, on every Shopify plan
* Product testing
* Product image testing
* Content testing
* Custom code testing

Test types that don't require it:

* Page testing
* Split URL testing
* Theme testing
* Shipping testing, unless you also change on-page shipping messaging per variation
* Checkout testing, which uses its own checkout extensions instead

Price testing does not use duplicate products on any plan.

***

### Verifying Your Setup

To confirm everything is installed correctly:

1. **Liquid Snippet**: Go to **Online Store → Themes → Edit Code** and check that `elevateab.liquid` exists in the `snippets/` folder, and that `{% render 'elevateab' %}` appears near the top of `layout/theme.liquid`
2. **Web Pixel**: Go to **Settings → Customer Events** in your Shopify admin and verify the Elevate A/B Testing web pixel is listed
3. **Theme Extension**: Go to **Online Store → Themes → Customize** and check that the Elevate A/B Testing app embed, listed as **Elevate Price Testing**, is switched on in the app embeds section

If anything is missing, open the Elevate A/B Testing app. It automatically detects and reinstalls missing components.

***

### Manually Adding the Elevate A/B Testing Script

In almost all cases, the Liquid Snippet is installed automatically, and you won't need to do this. But if the automatic install didn't take (e.g. a custom theme setup, a migration, or the app's write access to theme files was revoked), you can add it yourself.

**File:** `snippets/elevateab.liquid`

Create this file in your theme's `snippets/` folder with the following code:

```liquid
<!-- Elevate - Manual Setup -->
{%- if content_for_header contains "elevateab.app" or metaobjects['app--4623321--install_status'].values.size > 0 -%}
  {%- unless request.design_mode -%}
    <script>
      const environment = {
        rootUrl: '{{ routes.root_url }}',
        themeId: {{ theme.id }},
        themeRole: '{{ theme.role }}',
        activeCurrency: '{{ localization.country.currency.iso_code | default: shop.currency }}',
        template: {
          suffix: '{{ template.suffix }}',
          type: '{{ template.name }}'
        },
        isThemePreview: {% if content_for_header contains "previewBarInjector.init();" or content_for_header contains "https://cdn.shopify.com/shopifycloud/preview-bar/preview-bar-modules.js" %}true{% else %}false{% endif %},
        customerData: {% if customer %}{
          loggedIn: true,
          id: {{ customer.id | json }},
          ordersCount: {{ customer.orders_count | json }},
          totalSpent: {{ customer.total_spent | json }},
          tags: {{ customer.tags | json }}
        }{% else %}{
          loggedIn: false
        }{% endif %}
      };
      try {
        window.eab_data = {
          selectors: JSON.parse(`{{ shop.metafields.elevateab.select }}`) || {},
          allTests: JSON.parse(`{{ shop.metafields.elevateab.tests }}`) || {},
          currencyFormat: {% if settings.currency_code_enabled %}{{ shop.money_with_currency_format | json }}{% else %}{{ shop.money_format | json }}{% endif %},
          environment: environment
        };
      } catch (error) {
        console.log(error);
        window.eab_data = {
          selectors: {},
          allTests: {},
          currencyFormat: {% if settings.currency_code_enabled %}{{ shop.money_with_currency_format | json }}{% else %}{{ shop.money_format | json }}{% endif %},
          environment: environment
        };
      }
    </script>
    {{ shop.metafields.elevateab.redirect.value }}
  {%- endunless -%}
{%- endif -%}
```

Then, render it near the top of `layout/theme.liquid` (inside the `<head>` section, before other scripts that might depend on `window.eab_data`):

```liquid
{% render 'elevateab' %}
```

Once both are in place, you can verify the installation using the steps in [Verifying Your Setup](https://docs.elevateab.com/elevate-helpcenter/getting-started/setup-and-installation#verifying-your-setup) on this page.

***

### Next Steps

Once installed, you're ready to create your first experiment:

* [Create Your First Experiment](/elevate-helpcenter/getting-started/create-your-first-experiment.md): A walkthrough from choosing a test to launch
* [Price Testing](/elevate-helpcenter/price-testing/price-testing-overview.md): Test different price points
* [Page Testing](/elevate-helpcenter/page-testing/page-testing-overview.md): Test different page layouts
* [Split URL Testing](/elevate-helpcenter/split-url-testing/split-url-testing-overview.md): Compare different pages against each other

Or explore the [Introduction](/elevate-helpcenter/getting-started/introduction.md) for a full overview of everything Elevate A/B Testing can do.
