# Introducing Fueled

Fueled is a purpose-built 1st-party Attribution Suite, designed specifically for eCommerce.

With Fueled, all of your first-party and zero-party customer data flows between your sales, marketing, and BI tools — helping you understand and personalize customer experiences, and increase return on your marketing spend.

<figure><img src="/files/nc6idemUIjJSSAaK8Boe" alt=""><figcaption><p>Visualization of how events flow through Fueled, from eCommerce technologies to various “destination” technologies.</p></figcaption></figure>

## Getting Started

Please use this knowledge base website to learn more about Fueled and, more generally, customer data platform/stack strategies.

If you want to skip the line, just [fill out our sign-up form](https://fueled.io/sign-up), and we will get back to you right away about getting started with Fueled.


# How Fueled Works

## Getting Started with Fueled <a href="#block-85d7437f98ce4df19bb8e407fb034118" id="block-85d7437f98ce4df19bb8e407fb034118"></a>

While not technically required, most eCommerce merchants who leverage Fueled get started by connecting our platform with their eCommerce store — either [Shopify](https://shopify.com/) of [BigCommerce](https://bigcommerce.com/).

Our Shopify and BigCommerce integrations sync customer records into Fueled and push these records to various [*Destinations*](/how-fueled-works/key-concepts).

More interestingly, our Shopify and BigCommerce integrations collect all of your interactions with your customers (think: website clicks, purchases, refunds, sign-ups, etc.) and push these [*Events*](/how-fueled-works/key-concepts) to all of your Destinations as well.

<figure><img src="/files/CQIZ9hTPTZZa2GDPBi7h" alt=""><figcaption><p>Diagram of how Fueled collects, cleans, transforms, and pipes customer events from "Source" applications to "Destination" applications.</p></figcaption></figure>

### Example

<figure><img src="/files/aClvpCWAgVW5FoITr5uJ" alt="Fueled captures Shopify’s &#x60;Product Viewed&#x60; event and then translates it to match Google Analytic’s &#x60;item_viewed&#x60; format and Facebook’s &#x60;View content&#x60; format."><figcaption></figcaption></figure>

{% hint style="info" %}
You can install Fueled's [Shopify App Store App](https://apps.shopify.com/fueled-attribution-suite) or our [BigCommerce Marketplace App](https://www.bigcommerce.com/apps/fueled-advanced-attribution/) to get started.
{% endhint %}

## Collecting Event Data <a href="#block-4fe4a05c509940618078023adb65b639" id="block-4fe4a05c509940618078023adb65b639"></a>

Fueled collects customer event data from different [Sources](/integrations/sources) through both *client-side* and *server-side* integrations. When customers click through an eCommerce website, for example, searching for products, adding products to their cart, checking out, and so forth, client-side javascript fires on the website to collect these events and send them to Fueled. Similarly, when purchases are made, or customer service emails are sent back and forth between a customer and a merchant, these *server-side events* fire and are sent to Fueled.

## Cleaning and Transforming Event Data <a href="#block-281d3ed3718f41038859860240026fa8" id="block-281d3ed3718f41038859860240026fa8"></a>

Once Fueled receives event data from a Source, this data is cleaned and *transformed*, so that it can be sent to each integrated Destination, in the format that that Destination requires. A purchase event, for example, is transformed into different data formats for Destinations such as Google Analytics, Facebook Conversion API, or Klaviyo.

All of these data structures (or "schemas") and transformations can be tricky. One of the most important benefits of Fueled is that we handle all of this logic and translation steps for you.

## Associating Events with the Correct Customers <a href="#block-acc5c9e6c35545e1a4981b0133b4614b" id="block-acc5c9e6c35545e1a4981b0133b4614b"></a>

Associating events with specific customers, also known as *"Identity Resolution"*, can be complex. Customers generally visit your website anonymously, until they make a purchase. This conversion of a customer from an anonymous site visitor to an identified purchaser might take days or weeks of interaction with your website.

Fueled stitches all of these events together, retroactively associating anonymous interactions with an identified user once that user provides an email address, phone number, or other identifying/identifiable piece of data.

## 1st-Party Data Integrations Done Right, *and Done for You* <a href="#block-1530a4b3e7434b26b6f5a6ffd69bb6da" id="block-1530a4b3e7434b26b6f5a6ffd69bb6da"></a>

Fueled is not unique among products in the CDP category in providing the functionality described above. But it is unique in that it handles all of these integrations, data transformations, and setup *for you*. Fueled doesn't require weeks of planning and building out of data tracking plans manually. Fueled doesn't require that an engineering team implement each integration on your behalf.

**With Fueled, CDP functionality and customer data strategies can simply be&#x20;*****turned on*****&#x20;or&#x20;*****unlocked*****&#x20;for your business — instantly.**


# Key Concepts

> 💡The following concepts and nomenclature are essential to getting the most out of a customer data platform (CDP) products like Fueled.

## Third-Party vs. First-Party vs. Zero-Party Data <a href="#block-9f48db8fe73d4903be521f2bb4abcbd5" id="block-9f48db8fe73d4903be521f2bb4abcbd5"></a>

Before defining CDP-related terms, it’s important to understand the three different types of customer data that eCommerce merchants can collect.

***Third-party data*** refers to user data that a third-party (like Facebook or Google) might collect on your website for attribution tracking and ad targeting. This data is sent from your website or other applications directly to that third party. That third party stores that data, and provides the merchant with reporting or targeting features — but the eCommerce merchant don’t technically collect, or own, the data themselves.

***First-party data*** refers to data that an eCommerce merchant directly collects as customers interact with their website or other properties. The eCommerce merchant than collects and stores this data, and can send it along to 3rd-parties (including Facebook or Google) as needed.

***Zero-party data*** refers to data that a user directly, and intentionally provides an eCommerce merchant. Examples of zero-party data include survey submissions, product reviews, and user account creation data.

As consumers demand increased privacy on the Internet, and states across the U.S. pass laws restricting the collection and monetization of third-party data, eCommerce brands must become more and more savvy with respect to collecting and utilizing first-party and zero-party data.

## Sources & Destinations <a href="#block-b1846e0b038a4ed98636fadbbbbc847b" id="block-b1846e0b038a4ed98636fadbbbbc847b"></a>

When working with customer data platforms, and specifically Fueled, platform integrations are categorized as either ***Sources*** that generate event data or ***Destinations*** that consume event data.

Common Fueled Sources include:

* Shopify (a source of product and checkout-related events)
* Yotpo (a source of product review events)
* Gorgias (a source of customer service events)
* Loop Returns (a source of refund and return events)

Common Fueled Destinations include:

* Google Analytics 4
* Facebook Conversion API
* Various data warehouses
* MixPanel, Amplitude, or other customer journey analytics platforms

## Event Types <a href="#block-3566769900f84776ab56222aa9c1a492" id="block-3566769900f84776ab56222aa9c1a492"></a>

***Event Types*** refer to the type of customer interaction that is being tracked. Fueled supports the following event types:

* **Page Views** (when a user views a website page)
* **Track Events** (events that track an action that a user takes, or an interaction between a user and a merchant — such as order-related events, email interactions, customer support tickets, etc.)
* **Identify Events** (a special type of event used for tracking the creation or updating of customer records or customer attributes)

## Event and Customer Properties <a href="#block-6cc5a552a9aa4d428ad018f234308ae3" id="block-6cc5a552a9aa4d428ad018f234308ae3"></a>

Page and Track events each support various ***properties*** that describe aspects of the event. For example, an <mark style="color:red;">`Order Completed`</mark> event, tracking a purchase, includes attributes such as <mark style="color:red;">`Total`</mark> <mark style="color:red;">`Order Value`</mark> and <mark style="color:red;">`Order ID`</mark>.

Identify events, which are used to track changes to customer records, include properties as well, though these properties describe the user rather than the event.

## Client-side vs. Server-side Event Tracking <a href="#block-663066edaae24ffaa30ad53a0bc4f4c5" id="block-663066edaae24ffaa30ad53a0bc4f4c5"></a>

Fueled supports both client-side and server-side event tracking. What this means is that Fueled leverages its own javascript library to track ***client-side events*** which occur as a user interacts with an eCommerce merchant’s storefront or website.

Because of the growing prevalence of ad blockers and browser restrictions related to tracking website visitors, Fueled leverages ***server-side event tracking*** whenever possible. With server-side tracking, events are sent to Fueled from an eCommerce or marketing application directly, through a “server-to-server” connection. This guarantees a higher percentage of tracked events, getting around ad blockers or other restrictions in the browser.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/1a9d99dc-63e1-4d84-9a71-39620289ea69/clientandserverside/w=3840,quality=80" alt=""><figcaption><p>Visualization of how client-side and server-side events flow into Fueled, and then along to various destinations.</p></figcaption></figure>

#### ***Why leverage client-side tracking at all?*** <a href="#block-507694a452a74c0d8322d788121126f5" id="block-507694a452a74c0d8322d788121126f5"></a>

> *If server-side event tracking is more reliable, why doesn’t Fueled leverage server-side events for everything?*

Server-side events are great for mission-critical events, as well as for tracking “offline” events, such as point of sale purchases and recurring order events (i.e., subscription re-billing events).

However, some data just isn’t available server-side, such as UTM codes or attribution cookies that track the origin of web traffic or a website purchase. Moreover, some user interactions with a website, like clicking through an image carousel, don’t hit the server. Therefore, the only way to track such user interactions is with client-side tracking, via javascript.

#### *How client-side and server-side events are tied together with Fueled* <a href="#block-e3865c651dce472ab9da4972fcb1d631" id="block-e3865c651dce472ab9da4972fcb1d631"></a>

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/e0f8723b-3477-4976-9424-7be3271007d6/Attribution_Tracking_Diagram/w=3840,quality=80" alt=""><figcaption><p>Visualization of how client-side and server-side events are tied together with Fueled.</p></figcaption></figure>


# Use Cases

> 🔥 *As eCommerce merchants learn to utilize* [*first-party and zero-party customer data*](https://learn.fueled.io/304d900b35964db58155e982a62c3edc)*, the possibilities presented by CDPs and 1st-party data tracking tools like Fueled continue to expand.*

## Customer Journey Analytics <a href="#block-92a7cd8d9fb54d658c3a9678560f0fa2" id="block-92a7cd8d9fb54d658c3a9678560f0fa2"></a>

If you’ve ever looked at a report in Google Analytics, you’ve used a ***customer journey analytics platform***. Journey analytics tools allow merchants to track and analyze how customers interact with a website and/or other customer engagement channels.

Typical journey analytics reports include funnel reports, customer flow visualizations, and cohort retention charts.

To fully leverage a journey analytics tool (from commonplace tools like Google Analytics to more feature-rich platforms like MixPanel and Amplitude), merchants need to be able to collect and organize customer events, to provide a “stitched together” view of how each customer interacts with the brand’s website, email marketing, paid ads, and so forth.

Fueled provides a single approach to collecting, organizing, and cleaning this data for more complete analysis in customer journey analytics tools.

This sort of product analysis allows merchants to make better merchandizing decisions — both in-store and on their website storefronts.

## Personalization <a href="#block-e0536cd1774c45099901deb8a42ec47b" id="block-e0536cd1774c45099901deb8a42ec47b"></a>

The most talked about use case for CDPs and 1st-party attribution tools like Fueled is for personalization of website experiences, as well as other sales/marketing channel experiences like email and SMS.

Because Fueled captures all of a customer’s interactions with a brand, Fueled can power personalization tools placed on a storefront, or marketing automations that personalize email and SMS content experiences.

## Precise Ad Targeting <a href="#block-42e5fba8586e43e793c4c44ad31d8321" id="block-42e5fba8586e43e793c4c44ad31d8321"></a>

Similar to personalization strategies, CDPs and 1st-party attribution tools like Fueled provide merchants with a comprehensive view of customers’ interactions with a brand and its product catalog. This data allows merchants to create more precise *segments*, or lists of customers, which they can used for paid ad targeting, as well as the creation of “look-a-like” audiences in Facebook and Google.

## Contextualized Customer Support <a href="#block-7042d684897f4c9aaf7f04e1043231ba" id="block-7042d684897f4c9aaf7f04e1043231ba"></a>

While not commonly talked about (yet!), CDPs and 1st-party attribution tools like Fueled can push customer events into customer service platforms, such as Gorgias, Zendesk, and Kustomer.com. This provides a cost-effective way for merchants to provide customer service reps with the full history/context of a customer when addressing support issues.

More personalized, contextualized customer support experiences lead to happy customers with higher customer lifetime value.

## Merchandizing Decisions <a href="#block-23666782c6884ee9a012f14b690a9e62" id="block-23666782c6884ee9a012f14b690a9e62"></a>

Many eCommerce brands have started piping all of their customer behavioral events, most importantly purchase-related events, into a data warehouse. From there, they can use a BI tool (like Tableau or Power BI) to analyze what products are selling best and what discounting strategies might be better performing.

<br>


# Is Fueled a CDP?

## ***What is a CDP??***

Customer Data Platforms (CDPs)

* Centralize customer data & create unified customer profiles;
* Push customer events and profiles to marketing and BI tools; and
* Make this data available for personalized campaigns, contextualized customer service, and analysis.

In other words, CDPs help brands to better utilize first-party and zero-party customer data to reach new customers, reduce customer acquisition costs, and increase customer lifetime value.

### *So, is Fueled a CDP??*

Yes and no. Fueled provides many of the most obvious features of a CDP:

* Fueled allows you to collect 1st-party behavioral data across various platforms eCommerce merchants use to engage with their customers.
* Fueled provides a standard format and data structure for these events, so that they are interoperable.
* Fueled allows you to push this 1st-party engagement data to a number of “destinations”, such as Google Analytics 4 and various data warehouses.

However, there are other features of enterprise CDPs that we do not support out of the box, such as:

* SDKs (or programming libraries) for integrating with mobile apps or other custom software applications.
* Rules and tools for advanced “identity resolution” between such applications.
* Tools for managing event schema validation.

If an Commerce merchant needs the features described above, Fueled would recommend that the merchant push our data into a dedicated, enterprise-grade CDP like Segment, mParticle, or Tealium. In fact, Fueled pairs quite nicely with these tools: We collect the eCommerce data you need, and can then push it into these enterprise platforms for advanced use cases.

> 📘 **CDPs vs CRMs**
>
> Initially, it might be easiest to think about a Customer Data Platforms (CDP) like you would a sales-oriented Customer Relationship Management (CRM) Platform like Salesforce or Hubspot.
>
> **With a CRM**, you have <mark style="color:red;">`Customer Records`</mark> that represent the people with whom you interact. You can track various <mark style="color:red;">`Properties`</mark> of those customers. You can also track all of your interactions with those customers, such as email correspondence and phone calls. Each of those interactions might have properties as well, such as the body of an email or the topic of a phone call.
>
> **CDPs work pretty much the same way.** CDPs automatically track all of your interactions with customers — as well as their interactions with your brand, website, mobile app, and so forth. In the CDP world, we refer to these interactions as <mark style="color:red;">`Events`</mark>.
>
> **The difference between a CDP and a CRM is essentially the volume of customers and interactions.** Whereas you might manage thousands or tens of thousands of interactions with customers via your CRM; CDPs are designed to manage relationships with hundreds of thousands or millions of customers.
>
> **CDPs automate all of this event tracking, customer identity resolution, and segmentation, to allow you to personalize customer experiences at scale.**

## So Why Fueled?

### The Problem with General-Purpose CDPs

Implementing a customer data platform as an eCommerce merchant can be really hard.

* Many common eCommerce and marketing SaaS technologies currently lack CDP integrations;
* Launching a conventional, general-purpose CDP for eCommerce requires a lot of time and planning;
* Once live, there’s no playbook or clear best practices for leveraging a CDP for eCommerce use cases; and
* In addition to platform fees, most eCommerce merchants end up spending considerable money on CDP consultants.

### How Fueled solves these Challenges

As a *purpose-built 1st-part attribution suite for eCommerce*, we take out all the friction, time, and expense to launching customer data strategies for eCommerce.

* We provide turnkey integrations for your favorite eCommerce sales and marketing tools, like Shopify, BigCommerce, Yotpo, ReCharge Payments, Gorgias and Loop Returns.
* We stream real-time events between tools and store all of your historical events in a data warehouse that you can access with your own BI tools.
* And…we do all this for you, through our fast, cost-effective concierge onboarding process.


# Shopify App

## Introduction

> 🔥 Fueled’s [Attribution Suite for Shopify](https://apps.shopify.com/fueled-attribution-suite) allows Shopify merchants to push client-side and server-side attribution events to Google Analytics 4, Google Ads, and Facebook Pixel/Conversion API.

<figure><img src="/files/0P9cjyZQHXsPykNq4ofa" alt=""><figcaption><p>Visualization of how Fueled collects client-side &#x26; server-side events, and sends them to various analytics &#x26; advertising platforms.</p></figcaption></figure>

Migrating from Universal Analytics to Google Analytics 4 (GA4) can be challenging. Fueled's Advanced Attribution Suite makes it easy to get up and running with Google Analytics (GA4) in minutes. No coding is required.

Leverage our client-side & server-side events for reliable attribution tracking. Customize events using our attribution library and open data layer. Use Fueled to send point-of-sale, recurring subscription purchases, and "offline purchases" to GA4, Google Ads & Facebook Pixel/Conversion API (CAPI).

## Key Benefits

### Easy, No-Code Install

Start tracking over a dozen different event types in Google Analytics (GA4) within minutes. No coding required. Fully customizable.

### Track Point of Sale and Subscription Events

Track every purchase, including POS and recurring orders, via our server-side event integration. Unlock new audiences in Facebook using this critical, but largely untapped source of conversion events.

### Marketing Analytics You Can Trust

We combine client-side and server-side attribution tracking for reliable attribution tracking. Make better decisions and increase ROAS with good data.

### Take Advantage of Google Signals

Fueled’s GA4 Connector app sends both client-side and server-side events on behalf of our merchants. We push clean, accurate data to [Google Analytics Measurement Protocol API](https://developers.google.com/analytics/devguides/collection/protocol/ga4). We also integrate with Google’s new [Signals product](https://support.google.com/analytics/answer/7532985), which enriches your attribution events with additional demographic data and leverages machine-learning for enhanced attribution matching.

## Additional App Highlights

* Manage all of your app configuration from within the Shopify Admin UI
* This app works with all of Shopify’s latest themes — as well as headless sites
* This app has been speed tested to have minimal impact on page load times
* Leverage our data layer to set up consistent Google Tag Manager event tracking.

## Core Features

### Get Started with Server-Side Event Tracking Today, for free

With ad blockers becoming more and more prevalent, it is critical that brands start tracking purchase events through server-side technologies. Server-side event tracking can be complex and expensive with other apps. But not Fueled. Within 10 minutes of installing our app, you can be tracking your most important events server-side — without writing any code.

Fueled’s GA4 Connector also sends point-of-sale and recurring order events to GA4. Track all of your Shopify orders in GA4, regardless of the sales channel.

Leverage this technology as well for critical integrations, like our Facebook Conversion API integration.

### Why Trust Your Attribution Tracking with Fueled?

We live and breathe attribution tracking. We understand how confusing it can be to reconcile attribute metrics between platforms. We know how critical it is for merchants to measure performance and build campaigns around data they can trust.

Our attribution model is fully transparent. Our server-side event tracking is highly reliable. And our client-side event tracking can be customized to meet your specific requirements.

### Make Better Decisions with Accurate Data

Fueled’s Google Analytics 4 integration combines client-side (i.e., browser-based) event tracking with server-side event tracking for the most reliable attribution model possible. We track over a dozen different customer event types so that you can drill down on your data in GA4 and build precise reports.

With Fueled, you can track the following Shopify events in Google Analytics, Google Ads, and Facebook Conversion API with no coding required:

* Client-side events
  * add\_to\_cart
  * login
  * pageview
  * search
  * sign\_up
  * view\_cart
  * view\_item
  * view\_item\_list
  * begin\_checkout
  * add\_shipping\_info
  * add\_payment\_info
* Server-side events
  * purchase

(Note: Additional client-side events can be configured within your theme. [Learn more about customizing our client-side tracking events.](/apps/shopify/shopify-event-tracking/customizing-client-side-shopify-events))

### Respect Your Customers' Tracking Consent

Fueled integrates with Shopify’s Customer Privacy API. When your customers ask not to be tracked, Fueled respects those settings for all client-side events.

### Fully Customizable with Tracking Library and Data Layer

Do you have a custom Shopify theme? Do you want to track custom events into GA4, Google Ads, or Facebook Conversion API? Fueled’s client-side library is available for your developers to configure custom events.

### New Features Coming Every Month

As a venture-backed company with offices in the U.S. and Europe, the team at Fueled is committed to customer feedback and feature development. Engage with us to continually improve this app!

## Integrations

Fueled’s Attribution Suite integrates with numerous Shopify Apps, such as:

* Klaviyo
* ReCharge Payments
* Skio
* Sendlane
* Attentive
* Postscript
* Point of Sale

## Getting Started

Getting started with our Shopify App is easy. Simply install [Fueled in the Shopify App Store](https://apps.shopify.com/fueled-attribution-suite), and then follow our instructions to configure GA4 and our app: [Configuration Steps](/apps/shopify/google-analytics-4-connector/configuring-fueleds-shopify-app).

## Customer Support

Please email <support@fueled.io> with any questions or feature requests you might have regarding this application. We are committed to responding to all requests within one business day.


# Shopify Event Tracking

(More coming soon, but check out the following tutorials.)

To get started with Fueled, you will first need to configure how the app tracks client-side and server-side events. These configuration settings apply to all of the destinations where Fueled sends data, such as Google Analytics and Facebook Conversion API.

<figure><img src="/files/WBn1SZtIyN5R4HpNZi1A" alt=""><figcaption><p>Fueled's "Tracking Setup" configuration screen.</p></figcaption></figure>

## Step 1: Configure Client-Side Event Tracking

The first step in configuring Fueled is to enable our "App Extension" in your Shopify theme.

<figure><img src="/files/SKd3Cp95eUBI1fJICGEj" alt=""><figcaption><p>At the top o f our "Tracking Setup" screen, you will find a link to enable Fueled's App Extension in your theme.</p></figcaption></figure>

Click the link in the "Configure Client-Side Tracking section. This will take you to your active Shopify theme, where you can enable our App Extension Widget. *Remember to hit "Save."*

<figure><img src="/files/B9AFWjxbFpvi1JEILtNX" alt=""><figcaption><p>Save Fueled's App Extension settings in your active theme.</p></figcaption></figure>

### Optional: Adjust You "Add To Cart" Tracking Settings

We will cover this option in more detail in: [Custom Pixel For Tracking ATC Events](/apps/shopify/shopify-event-tracking/custom-pixel/custom-pixel-for-tracking-atc-events)

However, it's good to know that you can customize how "Add To Cart" (ATC) events are tracked in your theme. By default, Fueled listens for standard ATC event buttons in your theme code. However, for highly customized sites, it's sometimes helpful to disable our standard ATC tracking and instead leverage our Shopify Custom Pixel implementation for these events.

## Step 2: Configure Server-Side Event Tracking

Next, confirm your server-side event tracking configuration.

<figure><img src="/files/TQRt5w2cRSexVbatNAir" alt=""><figcaption><p>By default, Fueled tracks checkout and purchase-related events server-side.</p></figcaption></figure>

Out-of-the-box, Fueled will track checkout and purchase-related events server-side. We inject special code in your Shopify theme (when you have client-side tracking enabled) to send attribution events from the browser to our server-side event integration.

With server-side tracking, we can ensure near-perfect, 1-to-1 tracking of purchase events between Shopify and Google Analytics. With server-side tracking, we also allow merchants to use point-of-sale and recurring billing purchases for ad targeting in Facebook.

{% hint style="info" %}
There are pros and cons to client-side vs. server-side tracking of purchase events into GA4. With server-side tracking, you get better parity between GA4 reports and Shopify order counts/totals. With client-side tracking, you do get a bit more metadata about purchase events, such as information about browser devices and geolocation data.

We do offer customizations to track purchase event client-side. Please contact <support@fueled.io> for more information on this.
{% endhint %}

## Step 3: Configure Fueled's Custom Pixel

Fueled leverages a Custom Pixel for tracking Checkout-related steps and purchases. If you installed our app before February 4th, 2025, you will likely need to update any custom pixel code that you have configured with us. Otherwise, you will simply need to install our <mark style="color:red;">`Custom Pixel v2`</mark> following these instructions.

<figure><img src="/files/o4YJNbYH1AU0p48Qa7Ti" alt=""><figcaption><p>Instructions for installing Fueled's Custom Pixel v2.</p></figcaption></figure>

This pixel code can be found here:

{% embed url="<https://github.com/fueled-io/client-scripts/blob/main/shopify/custom_pixel_v2.js>" %}

This code can be added as a custom pixel here:

<mark style="color:red;">`https://admin.shopify.com/store/[your-store-name]/settings/customer_events`</mark>

## Step 4: (Optional) Configure Fueled's Domain Proxy

At the bottom of our "Tracking Setup" tab, you will see a reference to our "Domain Proxy" feature:

<figure><img src="/files/O40ZaadC6zFL9SqxjWcK" alt=""><figcaption><p>Callout for our Domain Proxy feature</p></figcaption></figure>

This feature is only available on our "Fueled Advanced" and "Fueled Plus" plans. With domain proxying, we run all of Fueled's scripts, as well as our Google Analytics endpoint over a *domain proxy*, which helps with cookie expires and ensures more complete client-side event tracking.

If you are interested in learning more about our advanced features, please visit:

{% embed url="<https://fueled.io/pricing>" %}

## Next Steps:

{% content-ref url="/pages/SGef3SN6teecDb10qJ50" %}
[Customizing Client-Side Shopify Events](/apps/shopify/shopify-event-tracking/customizing-client-side-shopify-events)
{% endcontent-ref %}

{% content-ref url="/pages/xiDQlXqLx34y9WXbnl3n" %}
[Custom Pixel For Tracking ATC Events](/apps/shopify/shopify-event-tracking/custom-pixel/custom-pixel-for-tracking-atc-events)
{% endcontent-ref %}

{% content-ref url="/pages/ZSY7ECOW7NtnKmDGjZKN" %}
[Working with Fueled’s Shopify Data Layer](/apps/shopify/shopify-event-tracking/working-with-fueleds-shopify-data-layer)
{% endcontent-ref %}


# Customizing Client-Side Shopify Events

## When to Customize Client-Side Tracking for Fueled’s GA4 Connector App

By default, Fueled’s GA4 Connector App for Shopify tracks ten different types of customer events. An out-of-the-box installation of our app on a standard Shopify theme, one that uses Shopify’s core theme components, should cover the vast majority of your attribution use cases.

That said, if any of the following are true for your storefront, it might make sense to extend your attribution tracking with Fueled to cover your specific use cases:

* You are leveraging a third-party shopping cart app, or you have “upsells” and “product recommendation” widgets on your cart and checkout pages.
* You have highly-customized product collections pages that allow shoppers to interact with product variants without first going to the product description pages.
* You offer product bundles or other custom “add to cart” experiences on your product pages.

You might also consider *adding additional client-side event tracking*, following Google Analytics 4’s event specification, describe here:

{% embed url="<https://developers.google.com/analytics/devguides/collection/ga4/reference/events>" %}

## Turning Off Fueled’s Default Client-Side Events

Generally speaking, you are likely to add additional custom events to your client-side attribution setup, rather than turning off Fueled’s events. That said, if you want to fully customize your client-side tracking with Fueled, you can turn off our events, and simply use our data layer and client-side library.

<figure><img src="/files/FPRovhqZnlVCZ0begwSP" alt="" width="375"><figcaption><p>Fueled's "App Extension Widget" configuration options.</p></figcaption></figure>

## Respecting Customer’s Privacy Preferences

Fueled’s GA4 Connector App for Shopify includes a setting for respecting shopper’s privacy preferences. This setting applies to all of the client-side events that we track.

If you’re setting up your own custom events with Fueled’s client-side library, you will need to follow these best practices on your own, leveraging Shopify’s Customer Privacy API.

{% embed url="<https://shopify.dev/api/consent-tracking>" %}


# Custom Pixel

Fueled leverages a Custom Pixel for tracking Checkout-related steps and Purchases client-side.

## If You Installed Fueled Before February 4, 2025

If you installed the Fueled app before February 4th, 2025, your instance of the Fueled app tracked website purchases client-side using a "Script Tag."

Shopify is deprecating Script Tags in August 2025, so you will need to either install or update Fueled's Custom Pixel and disable this Script Tag for the best purchase-related tracking experience.

To do so:

First, go to the first tab at: <mark style="color:red;">`https://admin.shopify.com/store/[YOUR-STOREFRONT]/apps/fueled-7`</mark>&#x20;

Copy Fueled's Custom Pixel v2 code:

<figure><img src="/files/hVfRNxsOZc67X6DHjxBl" alt=""><figcaption><p>Copy/paste Fueled's Custom Pixel code into a new or existing Custom Pixel.</p></figcaption></figure>

Either replace or create a new Fueled Custom Pixel at:&#x20;

<mark style="color:red;">`https://admin.shopify.com/store/[your-store-name]/settings/customer_events`</mark>

*(The click-through path to this configuration screen is: Settings > Customer Events)*

Second, disable Fueled's Script Tag in the Fueled App settings:

<figure><img src="/files/w6VDAqw7Ro2lFcKBJSg3" alt=""><figcaption><p>Disable Fueled's Script Tag.</p></figcaption></figure>

## If You Installed Fueled On or After February 4th, 2025.

If you installed Fueled on or after February 4th, 2025, you do not need to disable Fueled's Script Tag, as it will not be installed.

Simply follow the instructions to set up a new Custom Pixel for Fueled.


# Custom Pixel For Tracking ATC Events

Custom Pixel For Tracking ATC Events

## The Problem

Fueled provides an out-of-the-box solution for tracking <mark style="color:red;">`add to cart`</mark> events on your Shopify store. This solution adds a javascript event listener on your store’s “Add to Cart” buttons.

For most merchants, this works quite well. We have tested this default solution against many different Shopify 2.0 themes, and it will correctly track <mark style="color:red;">`add to cart`</mark> events on most Product Description Pages and Product Collection Pages.

However, some Shopify themes have been customized in ways that make it more difficult for our default solution to capture all <mark style="color:red;">`add to cart`</mark> events. Examples of when our default solution might not capture all of these events include:

* <mark style="color:red;">`add to cart`</mark> offers listed in side carts.
* “Bundled” <mark style="color:red;">`add to cart`</mark> buttons that add multiple products to a shopping cart at the same time.
* Custom <mark style="color:red;">`add to cart`</mark> buttons that don’t use Shopify’s standard product forms.
* <mark style="color:red;">`add to cart`</mark> buttons that immediately redirect to the Cart page or Checkout.

## The Solution

In late 2022, Shopify released its [Web Pixel API](https://shopify.dev/docs/api/pixels/pixel-extension). This API provides an alternative solution for tracking attribution events. While the API has many benefits, it’s not a perfect solution for full attribution tracking — so we haven’t migrated Fueled over to the Web Pixel API completely.

That said, there are certain use cases, such as with <mark style="color:red;">`add to cart`</mark> events, where the Web Pixel API can be quite helpful.

### Tracking <mark style="color:red;">`add to cart`</mark> events with Fueled with the Web Pixel API

Merchants can leverage the Web Pixel API for tracking <mark style="color:red;">`add to cart`</mark> events in two steps.

1. By setting up a Custom Pixel in the Shopify Admin, which leverages this API.
2. By disabling Fueled’s default <mark style="color:red;">`add to cart`</mark> tracking event.

#### Step 1: Setting up a Custom Pixel in the Shopify Admin UI

To set up a Custom pixel, go to:

<mark style="color:red;">`https://admin.shopify.com/store/[your-store-name]/settings/customer_events`</mark>

*(The click-through path to this configuration screen is: Settings > Customer Events)*

Create a new Pixel called <mark style="color:red;">`Fueled Custom Pixel`</mark>. Copy/paste the code you can find in our App settings:

<figure><img src="/files/o4YJNbYH1AU0p48Qa7Ti" alt=""><figcaption><p>Fueled Custom Pixel v2 Code.</p></figcaption></figure>

#### Step 2: Disabling Fueled’s default <mark style="color:red;">`add to cart`</mark> tracking event

Once you have set up the Custom Pixel, you will want to go into the Fueled App for Shopify and disable our standard <mark style="color:red;">`add to cart`</mark> event tracking:

<figure><img src="/files/vR5VjwFg8qyS0NXB5jpq" alt=""><figcaption><p>If you are using Fueled's custom pixel for your add_to_cart events, be sure to deactivate our standard add_to_cart event.</p></figcaption></figure>

Set this value to “Deactivated”, so that it reads:

> Standard “Add to Cart” tracking is currently ***deactivated*****.**


# Custom Pixel For Tracking Checkout Steps

Custom Pixel For Tracking ATC Events

### Tracking checkout-related events with Fueled with the Web Pixel API

Merchants can leverage the Web Pixel API for tracking checkout-related events, such as <mark style="color:red;">`Add Payment Info`</mark>, by setting up a Custom Pixel in the Shopify Admin, which leverages this API.

#### Step 1: Setting up a Custom Pixel in the Shopify Admin UI

To set up a Custom pixel, go to:

<mark style="color:red;">`https://admin.shopify.com/store/[your-store-name]/settings/customer_events`</mark>

*(The click-through path to this configuration screen is: Settings > Customer Events)*

Here, you should see the screen below:

<figure><img src="/files/Plx4gXQH2riMSeUN1CtE" alt=""><figcaption><p>Screenshot of the custom events configuration page.</p></figcaption></figure>

From this screen, click “Add custom pixel”, and name it <mark style="color:red;">`Fueled Custom Pixel`</mark>:

This will take you to a screen where you can enter the Custom Pixel code:

<figure><img src="/files/N0VooFJFORMlQHWR9eVm" alt=""><figcaption><p>Screenshot of the Shopify user interface for adding custom pixel code.</p></figcaption></figure>

On this screen, you will want to enter the code snippet found on the first tab of the Fueled App in Shopify:

<figure><img src="/files/o4YJNbYH1AU0p48Qa7Ti" alt=""><figcaption><p>Inserting Fueled's Custom Pixel.</p></figcaption></figure>


# Working with Fueled’s Shopify Data Layer

## Overview <a href="#block-e9efea4e8fd247f0850b50780be90183" id="block-e9efea4e8fd247f0850b50780be90183"></a>

Fueled provides a lightweight data layer and data layer listeners that can be leveraged with Google Tag Manager, or used to create your own event tracking scripts/events.

## Why Leverage Fueled’s Data Layer? <a href="#block-e9efea4e8fd247f0850b50780be90183" id="block-e9efea4e8fd247f0850b50780be90183"></a>

If a merchant needs to set up multiple client-side attribution scripts to run on their Shopify store, leveraging our data layer can help ensure that the same event data is sent to all destinations. Our data layer defines a data model in one place for consistent tracking and metrics.

## Enabling Fueled’s Data Layer <a href="#block-50f6650bb51e44b5bb8c628a4bfc0a8d" id="block-50f6650bb51e44b5bb8c628a4bfc0a8d"></a>

Fueled’s data layer is enabled whenever the Theme App Extension is enabled for our Google Analytics 4 Connector App.

The App Extension settings can be found in your theme, as see below:

<figure><img src="/files/vkqDzpP6AGPTu0r6oxjb" alt="" width="375"><figcaption><p>A screenshot of the App Extension settings for the Fueled app.</p></figcaption></figure>

Note: You do not have to check the “Track client events” box in the App Extension Settings to utilize our data layer. In fact, if you’d like to leverage our data layer in combination with our client-side event library to manage all of your own client-side events, you would disable this checkbox.

## Data Layer Object Definitions <a href="#block-8e32df2b562b42898c39edee596f11dd" id="block-8e32df2b562b42898c39edee596f11dd"></a>

*Visit:*

{% content-ref url="/pages/uwV6jNTpQJHd5v4gxbBQ" %}
[GA4 Shopify App Event Definitions](/apps/shopify/google-analytics-4-connector/ga4-shopify-app-event-definitions)
{% endcontent-ref %}

## Leveraging Fueled’s Data Layer with Google Tag Manager <a href="#block-22b5c6045b9e472fa8d38b87cfc9284c" id="block-22b5c6045b9e472fa8d38b87cfc9284c"></a>

> ⚠️ **We are not fans of GTM here at Fueled…** While Google Tag Manager remains a popular way for marketing teams to inject and manage attribution tags and other scripts on their website, GTM is highly problematic:
>
> * Google Tag Manager is stripped from websites by ad blockers up to 12% of the time in the United States.
> * It’s difficult to document and control attribution configuration with GTM.
> * It’s difficult to debug errors in attribution scripts that are managed via GTM.
>
> That said, you can still leverage Google Tag Manager with our data layer to help ensure consistent tracking and client-side metrics.

Fueled’s data layer is instantiated in the DOM’s window\.dataLayer object, as a variable called <mark style="color:red;">`fueled`</mark>.

Inside your Google Tag Manager instance, you can map the data layer to the variables you need for GTM events.

Go “Variables” and click “New” to to create new user-defined variables.

<figure><img src="/files/r4SBSWZgFOliImDXkSsT" alt=""><figcaption><p>Google Tag Manager UI for adding user-defined data layer variables.</p></figcaption></figure>

Then click “Data Layer Variable” as seen below.

<figure><img src="/files/hyBKTzOC9zH0cV4qst6B" alt=""><figcaption><p>Google Tag Manager UI for adding a custom data layer variable.</p></figcaption></figure>

An example of how you would access properties of Fueled’s data layer are described in the screenshot below.

<figure><img src="/files/t6wG1ZCEr1x16mMlPtIf" alt=""><figcaption><p>Google Tag Manager UI for naming a custom data layer variable</p></figcaption></figure>

<mark style="color:red;">`fueled`</mark> is the javascript variable to which we populate all of our event and data layer data. To access customer-related data (when a shopper is logged in), you’d select values such as:

* <mark style="color:red;">`fueled.customer.first_name`</mark>
  * <mark style="color:red;">`fueled.customer.email`</mark>

## Getting Assistance with Fueled’s Data Layer

For help working with our data layer, please consider [joining our Community Slack Channel](/more-info/get-support).


# Google Analytics Connector

Fueled's Google Analytics Connector allows you to quickly configure a best-in-class, highly-reliable solution for tracking critical shopper events into GA4.

> *Fueled's Google Analytics integration is available to Shopify merchants on our "Fueled Starter" plan and above.*

{% hint style="warning" %}
Important: Before turning on Fueled's Google Analytics connector, please disable any other Google Analytics scripts or connector apps that you might have installed — including Shopify's built-in GA4 connector, which comes with its Google/YouTube channel app.

Having multiple Google Analytics integrations installed at the same time can lead to duplicate events, the lost of events, and mismatched attribution tracking.
{% endhint %}

## Introduction

Fueled's Google Analytics connector is a robust, highly-accurate solution for attribution tracking for GA4. We provide significant flexibility and customization of your GA4 tracking setup — without requiring that you write code.

<figure><img src="/files/2Aluc4ajPzb1KQ9tYLeX" alt=""><figcaption><p>Visualization of how Fueled collects both client-side and server-side events, and sends them to Google Analytics 4.</p></figcaption></figure>

#### *How We Differ From Shopify's Built-In GA4 Integration*

Shopify's built-in GA4 integration, which is enabled through their Google Shopping/YouTube app, is a fine solution for small businesses that need a basic integration.

However, having implemented GA4 for many thousands of Shopify merchants, we understand the functionality and configuration options that help merchants truly get the most out of GA4 — and we've built these features into our application.

* Unlike Shopify's built-in GA4 integration, Fueled provides server-side purchase event tracking to ensure the highest possible accuracy in reports and to allow merchants to track offline purchases in GA4 as well as website purchases.
* Fueled allows merchants to configure parameters that they send to GA4, such as the `transaction value` and `transaction ID`.
* Fueled presents a data layer that you can leverage with Google Tag Manager.
* Fueled provides a library for tracking custom events into GA4.
* Fueled provides dedicated support from a team of technologists who work in Google Analytics every day.

## Getting Started

{% content-ref url="/pages/Xk68vhnBjlh92dj1FMIr" %}
[Configuring Google Analytics 4](/apps/shopify/google-analytics-4-connector/configuring-google-analytics-4)
{% endcontent-ref %}

{% content-ref url="/pages/IKReACgZlqPtASf9FTEc" %}
[Configuring GA4 Settings in Shopify](/apps/shopify/google-analytics-4-connector/configuring-fueleds-shopify-app)
{% endcontent-ref %}

{% content-ref url="/pages/uwV6jNTpQJHd5v4gxbBQ" %}
[GA4 Shopify App Event Definitions](/apps/shopify/google-analytics-4-connector/ga4-shopify-app-event-definitions)
{% endcontent-ref %}


# Configuring Google Analytics 4

> ⚡ Getting started with Google Analytics 4 is quick and easy.

Before Fueled’s free Google Analytics 4 Connector App for Shopify can be installed, you’ll either need to set up a new Google Analytics 4 property, or to get the Measurement ID and and an API key from an existing property.

If you already have a GA4 property, please skip to: [Getting Your GA4 API Credentials](https://www.notion.so/Getting-Your-GA4-API-Credentials-257eca99be614ec8848738e17edca6ba?pvs=21).

## Creating a New GA4 Property

If you don’t have a Google Analytics 4 property enabled, click on the “Admin” link in the bottom left-hand corner of the Google Analytics UI to view the settings of your Google Analytics account.

From there, you will want to create a new property, clicking the link displayed in the screenshot below.

<figure><img src="/files/XXQ8rYAZRR0QKRrz34bz" alt=""><figcaption><p>Google Analytics UI for adding a new GA4 property</p></figcaption></figure>

Then, name your GA4 property.

<figure><img src="/files/Ku2osbJYupr973LHuMC0" alt=""><figcaption><p>Google Analytics UI for naming your new GA4 property</p></figcaption></figure>

Once your GA4 property is created, you’ll want to choose “Web” as your platform for collecting data, as described below.

<figure><img src="/files/jYnuP5g3kakckTApvUjn" alt=""><figcaption><p>Google Analytics UI for adding a new "data stream" for Fueled events</p></figcaption></figure>

Enter the URL of your Shopify storefront. (If your site is accessed with “www” in the website URL, make sure you included that.)

<figure><img src="/files/0S45LHa5amsHmDjIYBD2" alt=""><figcaption><p>Second step in setting up a new data stream</p></figcaption></figure>

## Getting Your GA4 API Credentials <a href="#block-257eca99be614ec8848738e17edca6ba" id="block-257eca99be614ec8848738e17edca6ba"></a>

Once you’ve created your GA4 Property, you’ll want to create a Measurement Protocol API Secret, clicking on the configuration section highlighted below.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/ccfe425d-f2cd-4436-ae6f-3ce5c73fbeae/Image_2022-09-08_at_5.57.48_PM/w=3840,quality=80" alt=""><figcaption><p>Google Analytics UI for creating a Measurement Protocol API secret</p></figcaption></figure>

Click “Create.”

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/6b570ecc-be81-46e1-94fb-63f7505b8507/Image_2022-09-08_at_6.00.03_PM/w=3840,quality=80" alt=""><figcaption><p>GA4 UI for creating a new secret</p></figcaption></figure>

Copy the Secret Key, as described below, as well as your Measurement ID. You will need these two values when configuring our Shopify App.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/aea41a9c-9e75-4f7e-8ab7-dbbf99243ee1/Image_2022-09-08_at_6.00.49_PM/w=3840,quality=80" alt=""><figcaption><p>Copy/paste your Google Analytics 4 Measurement Protocol Secret into your Fueled settings.</p></figcaption></figure>

## Enabling Google Signals <a href="#block-31041566209c4abeb6a620cc90f392b8" id="block-31041566209c4abeb6a620cc90f392b8"></a>

While not required, we recommend that you enable Google Signals in your “Data Collection” settings, as described below. Google Signals will allow you to enrich your attribution reports in GA4 with demographic data about your shoppers. Google Signals also unlocks additional attribution models, including new models powered by machine learning.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/48faf579-3103-4df9-9c53-901429cca7a3/Image_2022-09-08_at_6.02.33_PM/w=3840,quality=80" alt=""><figcaption><p>Enable Google Signals to collect demographic data on your shoppes with Google Analytics 4.</p></figcaption></figure>

## Optional: Configuring "Affiliation" As A Custom Dimension <a href="#block-4976af5473124a23b085642ab23f9133" id="block-4976af5473124a23b085642ab23f9133"></a>

With server-side tracking, Fueled tracks all purchase events into Google Analytics, including point-of-sale orders and recurring billing events. This provides accurate tracking, but it can create some confusion in standard Google Analytics reports, if you can't filter or group orders by their *source.*

To solve for this, we recommend that you set up a "Custom Dimension" in your GA4 property, so that you can differentiate these order sources.

To do so, visit:

Admin > Custom Definitions

<figure><img src="/files/4ZzSQqDs9wT522K82ixi" alt=""><figcaption><p>Go to the "Custom definitions" section in your GA4 property configuration to set up a custom dimension for order source.</p></figcaption></figure>

Here, you'll want to click "Create Custom Dimension" to set up the following:

<figure><img src="/files/GZxmWbcT2cxWAzUaOOCV" alt=""><figcaption><p>Add the custom dimension by clicking "Create Custom Dimension."</p></figcaption></figure>

1. You'll want ot set the Dimension name to `Affiliation`.
2. You'll want to provide a Description that you will remember.
3. You'll want to choose the Event paramenter: `affiliation`.

After completing these steps, you'll want to wait 24-48 hours for this custom dimension to populate in your Google Analytics reports. Then, you can use it as a custom filter or grouping option in your conversion reports.

*Note: This custom dimension will not apply retroactively to historical purchase events.*

## Confirming Your Setup <a href="#block-4976af5473124a23b085642ab23f9133" id="block-4976af5473124a23b085642ab23f9133"></a>

Once you’ve set up Google Analytics 4 and [you’ve configured Fueled ](/apps/shopify/shopify-event-tracking)to push event data into your GA4 property, you should soon see events flowing in GA4’s “Realtime Reports,” as described below.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/83e28859-afb2-4941-a301-464fa622c862/Image_2022-09-08_at_6.05.48_PM/w=3840,quality=80" alt=""><figcaption><p>Once you complete your setup, you should see client-side and server-side events flowing into GA4's real-time reports.</p></figcaption></figure>

{% hint style="info" %}
It's important to note that Google Analytics' primary reports experience a 24-48 hour "data lag." Please give those reports time to populate, as you will only see data immediately within GA4's real-time reporting tool.
{% endhint %}


# Configuring GA4 Settings in Shopify

Configuring our [Google Analytics 4 Connector](https://apps.shopify.com/google-analytics-4-connector) settings for Shopify is quick and easy.

First, please make sure that you’ve created a Google Analytics 4 Property, and that you have your Measurement ID and your API key ready to go. You can learn more about GA4 configuration at:

{% content-ref url="/pages/Xk68vhnBjlh92dj1FMIr" %}
[Configuring Google Analytics 4](/apps/shopify/google-analytics-4-connector/configuring-google-analytics-4)
{% endcontent-ref %}

Next, visit our [Shopify Marketplace listing](https://apps.shopify.com/google-analytics-4-connector) to install our app on your Shopify Store. Then, follow our instructions for [configuring Shopify Event Tracking](/apps/shopify/shopify-event-tracking).

## Configuring the GA4 Connector Settings

<figure><img src="/files/9nxCP1GkWnoqLqB5p3ny" alt=""><figcaption><p>Fueled user interface for adding GA4 settings and configuration</p></figcaption></figure>

### Entering Your Google Analytics 4 Credentials

You will need to enter your Measurement ID and API Key for GA4 to send Google attribution events, which you set up when [Configuring Google Analytics 4](/apps/shopify/google-analytics-4-connector/configuring-google-analytics-4).

<figure><img src="/files/QTfwNqXeiRRBRnKe1DlJ" alt=""><figcaption><p>Entire your Google Analytics Measurement ID and API Key in the "Configure Google Analytics 4" section.</p></figcaption></figure>

### Choose The "Value" To Send To GA4 For Purchase Events

<figure><img src="/files/bIXjVofFSWW3EtN5IJ1s" alt=""><figcaption><p>You can send "subtotal" (recommended) or "Total Order Value" to GA4 for Purchase events.</p></figcaption></figure>

### Choose The Transaction ID To Send To GA4 For Purchase Events

<figure><img src="/files/LSWucw0bAdH1042vhGoB" alt=""><figcaption><p>Choose how you want to send Google Analytics a transaction ID on purchase events.</p></figcaption></figure>

By default, Fueled sends a "hash" of the Shopify Transaction ID to GA4 for the purchase transaction ID. This is because many governing laws, including the California Privacy Rights Act, consider Order IDs to be PII (personally identifiable information).

However, we do allow merchants to use Shopify's Transaction ID (non-hashed) or Order Number as the transaction ID sent to GA4. Please consider the privacy implications of this choice. Fueled is not liable for personally-identifiable information that a merchant chooses to send to Google Analytics.

### Pausing Attribution Events

For the most part, once a merchant has configured our app, they will never need to adjust their settings or temporarily pause events. That said, if you’re setting up a new development store or are staging the Fueled app for a new store, you can use the settings below to turn off event tracking, while keeping the Fueled app installed and configured for your storefront.

<figure><img src="/files/dlUr4SEofmuwnDLYHiUt" alt=""><figcaption><p>You can pause Fueled's GA4 integration, if need be.</p></figcaption></figure>

### Getting Help

We do our best to support the wonderful merchants who choose to leverage our software. You can get in touch with us at: <support@fueled.io>.

You might also considering [joining our Community Slack Channel](/more-info/get-support), where consultants, developers, and other merchants are available to lend a hand.


# Shopify Order Source IDs

With server-side `purchase` tracking into Google Analytics, it's helpful to understand and recognize the various apps that you might have installed on your Shopify website that generate orders.

Shopify refers to these as "Order Source Names." In Google Analytics, we refer to these as `Affiliations`.

Below you will find a running list of these Source Names. The third column in this list refers to how we handle these orders in our Facebook CAPI integration. Please get in touch with us if you run into additional apps that we should add to this list:

| Order Source                           | Order Source ID        | Facebook CAPI Event                                                      |
| -------------------------------------- | ---------------------- | ------------------------------------------------------------------------ |
| Shopify Storefront                     | www or checkout\_next  | Purchase                                                                 |
| Subscription rebilling events          | subscription\_contract | Subscription Rebilling                                                   |
| Shopify draft orders created throug UI | shopify\_draft\_ order | Offline Purchase                                                         |
| Point of Sale                          | pos                    | Offline Purchase                                                         |
| Alloy - Easy store                     | 3613079                |                                                                          |
| Ankorstore                             | 3041525761             |                                                                          |
| Best Buy                               | 2338342                |                                                                          |
| Buy Button App                         | 88312                  |                                                                          |
| Carthook                               | 116649                 |                                                                          |
| Cart Rover                             | 1876156                |                                                                          |
| Cleever                                | 45714046977            |                                                                          |
| Collabs                                | 2775569                |                                                                          |
| Convictional                           | 1848011                | These events are dropped.                                                |
| Discount Ninja Sales Channel           | 3162277                |                                                                          |
| Easy Product Addons                    | 2585671                |                                                                          |
| eBay                                   | 2684447                |                                                                          |
| eBay / PayPal                          | 1775805                |                                                                          |
| Etsy                                   | 279941                 |                                                                          |
| Eway                                   | 457101                 |                                                                          |
| EZ Importer                            | 1622947                |                                                                          |
| Facebook Marketplace                   | 26899712612735         | purchase\_marketplace                                                    |
| Facebook/Instagram                     | 2329312                | purchase\_marketplace                                                    |
| Far Fetch                              | 12484609               |                                                                          |
| Flxpoint                               | 2684447                |                                                                          |
| Gifted                                 | 6525455                |                                                                          |
| Giftship                               | 1814127                |                                                                          |
| Global-e                               | 1498281                |                                                                          |
| Global-e CrossBorder                   | 5806573                |                                                                          |
| Gorgias                                | 1424624                |                                                                          |
| GRIN Creator Management                | 2376822                |                                                                          |
| GrowLTV                                | 6674877                |                                                                          |
| Honeycomb Upsell & Cross Sell          | 3333491                |                                                                          |
| Honeycomb Wholesale to Retail          | 2611619                |                                                                          |
| Ink Frog                               | 197753                 |                                                                          |
| Klickly                                | 1821457                |                                                                          |
| Loop Returns                           | 1662707                |                                                                          |
| Manor (Lengow)                         | 2461419                |                                                                          |
| Omnivore (TheMarket)                   | 1203668                |                                                                          |
| OneText                                | 13863550977            |                                                                          |
| Order Merger App                       | 2815387                |                                                                          |
| Order Sync for Google Shopping         | 2404230                |                                                                          |
| PostCo Returns & Exchanges             | 3385147                |                                                                          |
| Pre-order 1 / Loop return              | 1662707                |                                                                          |
| Private                                | 5351193                |                                                                          |
| Recharge                               | 294517                 | Subscription Rebilling                                                   |
| Rep Rally                              | 35864674305            |                                                                          |
| Repeat                                 | 5311261                |                                                                          |
| Repeat                                 | 1149894657             |                                                                          |
| Returnly                               | 352363                 |                                                                          |
| Returnly                               | 4907581                |                                                                          |
| Seal Subscriptions & Loyalty           | 3501525                |                                                                          |
| Shop App                               | 3890849                | Purchase                                                                 |
| Sparklayer                             | 4974139                |                                                                          |
| Spocket                                | 2590691                |                                                                          |
| Square                                 | 3441221                |                                                                          |
| TapCart                                | 1520611                | Purchase                                                                 |
| Teelaunch                              | 1520611                |                                                                          |
| TikTok Shops                           | tiktok                 | Purchase, unless it's a zero dollar order. If zero-dollar, then dropped. |
| USO: Discounts & Promotion             | 653793                 |                                                                          |
| Verishop                               | 4813211                |                                                                          |
| Waves                                  | 132347199489           | These orders are dropped.                                                |
| Wayfair                                | 1308986                |                                                                          |
| Zapier                                 | 1356615                |                                                                          |


# GA4 Shopify App Event Definitions

> 📌 ***Bookmark this page.***&#x20;
>
> Understanding how attribution metrics are derived and how event properties are translated from one platform to another can be difficult. Our team is committed to taking the guesswork out of managing attribution. The definitions below are shared to provide transparency and clarity in setting up and maintaining your attribution model.

***Note: If you are exclusively leveraging Fueled’s GA4 Connector App for Shopify, you don’t need to worry about Fueled’s naming convention, as events will show up in Google Analytics correctly, using Google’s event schema.***

## Naming Conventions <a href="#block-6ec0cc667de34ff4ba1a7425dfc641e2" id="block-6ec0cc667de34ff4ba1a7425dfc641e2"></a>

One of the challenges in attribution tracking is that every platform, from Shopify to Google Analytics to Facebook Ads to Segment, uses different naming conventions to describe a shopper’s behavioral events, and the properties of those events.

It’s Fueled’s job handle all of these translations on behalf of our merchants. However, if you are looking to [customize any of your Fueled events](/apps/shopify/shopify-event-tracking/customizing-client-side-shopify-events), it’s helpful to understand and adopt our naming conventions to keep your data clean and consistent.

### Event Naming Convention <a href="#block-75b8ceab0b2d4427bb8ebd46da2eac38" id="block-75b8ceab0b2d4427bb8ebd46da2eac38"></a>

Fueled’s internal event naming convention follows the **“Object-Action Framework.**” What that means is that event names begin with the object upon which an action occurs, followed by a past-tense verb describing the action.

For example: when a user visits a product description page, we refer to this event as a <mark style="color:red;">`Product Viewed`</mark> event, ***not*** a <mark style="color:red;">`Viewed Product`</mark> or <mark style="color:red;">`viewed_product`</mark> event. The majority of CDPs and attribution platforms follow this Object-Action Framework. (Google Analytics, however, does the opposite.)

Moreover, Fueled events are Title Cased, and use spaces between the Object and the Action. Google Analytics, on the other hand, uses snake\_case naming.

#### Event Mapping between Fueled and Google Analytics <a href="#block-ca8779b2b85c45a0901301e353b522cd" id="block-ca8779b2b85c45a0901301e353b522cd"></a>

<table data-full-width="true"><thead><tr><th width="126">Fueled</th><th width="160">Google Analytics</th><th width="147" align="center">Automatically Tracked with Fueled’s GA4 App?</th><th>Notes</th></tr></thead><tbody><tr><td>Product Added</td><td>add_to_cart</td><td align="center"><strong>✅</strong></td><td>If your storefront theme is based upon one of Shopify’s themes, and you haven’t customized the HTML markup of your “Add to Cart” buttons, these events should automatically fire with our client-side tracking script.</td></tr><tr><td>Product Added to Wishlist</td><td>add_to_wishlist</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Checkout Started</td><td>begin_checkout</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a server-side event by default.</td></tr><tr><td>Account Logged In</td><td>login</td><td align="center"><strong>✅</strong></td><td>If your storefront theme is based upon one of Shopify’s themes, and you haven’t customized the HTML markup of your account screens, these events should automatically fire with our client-side tracking script.</td></tr><tr><td>Promotion Clicked</td><td>select_promotion</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Order Completed</td><td>purchase</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a server-side event by default.</td></tr><tr><td>Order Refunded</td><td>refund</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Page Viewed</td><td>pageview</td><td align="center"><strong>✅</strong></td><td><mark style="color:red;"><code>pageview</code></mark> events sent directly from Google Analytics 4’s client-side library from the website to GA4. This is required to trigger Google Signals and assign the client-side events a Google Customer ID.</td></tr><tr><td>Product Removed</td><td>remove_from_cart</td><td align="center"><strong>✅</strong></td><td>This event fires when a shopper removes a product from the full-page shopping cart page (/cart). There may be other places in a merchant’s storefront where products can be removed from the cart. Such events can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Products Searched</td><td>search</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product Clicked</td><td>select_item</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Product Shared</td><td>share</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Account Created</td><td>sign_up</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a server-side event by default.</td></tr><tr><td>Cart Viewed</td><td>view_cart</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product Viewed</td><td>view_item</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product List Viewed</td><td>view_item_list</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side, if your storefront is using standard “Collections” pages.</td></tr><tr><td>Promotion Viewed</td><td>view_promotion</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s Shopify theme, leveraging Fueled’s javascript library.</td></tr></tbody></table>

## Property Naming Convention

Fueled uses <mark style="color:red;">`camelCasing`</mark> when labeling event properties. Google Analytics typically uses <mark style="color:red;">`snake_casing`</mark>.

## Fueled’s Data Layer Objects <a href="#block-963663544df94b8ebbc6a3c7174c5f20" id="block-963663544df94b8ebbc6a3c7174c5f20"></a>

When Fueled’s GA4 Connector App is installed, we provide an option for enabling a theme extension that installs a data layer and, optionally, injects client-side event tracking. You can leverage this data layer for your own purposes. Doing so is actually a great idea, as it helps ensure that you are using the data storefront variables across all of your client-side attribution scripts.

Our data layer exposes the following objects in your theme.

### Customer Object <a href="#block-61f456bf387949448f39c03ac0a68ad6" id="block-61f456bf387949448f39c03ac0a68ad6"></a>

The Customer Object is only exposed when a shopper is logged into your store.

<table data-full-width="true"><thead><tr><th width="159">Property</th><th width="131" align="center">Type</th><th width="187">Shopify Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.first_name + customer.last_name</td><td>The shopper’s first and last name as a single value.</td></tr><tr><td>externalCustomerId</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.id</td><td>Shopify’s unique identifier for the customer.</td></tr><tr><td>email</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.email</td><td>The customer’s email address.</td></tr><tr><td>firstName</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.first_name</td><td>The customer’s first name.</td></tr><tr><td>lastName</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.last_name</td><td>The customer’s last name.</td></tr><tr><td>address</td><td align="center"><code>Object</code></td><td>N/A (This object is generated using the Shopify storefront API variables listed below.)</td><td>The Address Object is made up of the following properties.</td></tr><tr><td>address.street</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.street</td><td>The customer’s default street address.</td></tr><tr><td>address.city</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.city</td><td>The customer’s default city.</td></tr><tr><td>address.state</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.province</td><td>The customer’s default state or province.</td></tr><tr><td>address.postalCode</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.zip</td><td>The customer’s default zip code.</td></tr><tr><td>address.countryCode</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.country_code</td><td>The customer’s default country code.</td></tr></tbody></table>

### Product Object <a href="#block-69b89fdea251440aacd728820571f506" id="block-69b89fdea251440aacd728820571f506"></a>

Product objects are exposed both on individual product pages, and as an array of products on Collection pages and so forth.

<table data-full-width="true"><thead><tr><th width="133">Property</th><th width="142" align="center">Type</th><th width="202">Shopify Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>productId</td><td align="center"><mark style="background-color:orange;">String</mark></td><td><a href="http://product.id/">product.id</a></td><td>Shopify’s globally-unique identifier.</td></tr><tr><td>sku</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.selected_or_first_available_variant.sku</td><td>The Shopify SKU for either the selected product, or for the first available variant on a product page.</td></tr><tr><td>quantity</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>cartItemsJson[i].quantity</td><td>Note: only exposed on Cart pages, via the Cart JSON object.</td></tr><tr><td>variant</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.selected_or_first_available_variant.id</td><td>Shopify’s globally-unique identifier for either the selected product, or for the first available variant on a product page.</td></tr><tr><td>name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.title</td><td>The product’s title.</td></tr><tr><td>price</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>product.price / 100</td><td>The price of the currently selected product or variant.</td></tr><tr><td>brand</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.vendor</td><td>The product’s vendor name.</td></tr><tr><td>position</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>N/A (Position is calculated for each product in a collection, carousel, or shopping cart.)</td><td>The position of the product in either a Collection or the Cart is calculated. Positioning starts with “1.”</td></tr><tr><td>url</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.url</td><td>The product’s online URL</td></tr><tr><td>imageUrl</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.featured_image</td><td>The URL of the feature product image.</td></tr><tr><td>category</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.type</td><td>The product categorization/type.</td></tr></tbody></table>

### Cart Object <a href="#block-2d3de08c4da446819b3c27543b9bd123" id="block-2d3de08c4da446819b3c27543b9bd123"></a>

Exposed on the cart page (<https://examplestore.com/cart>).

<table data-full-width="true"><thead><tr><th width="139">Property</th><th width="146" align="center">Type</th><th width="173">Shopify Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>products</td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>N/A</td><td>The products array in the Cart Object uses the data structure described for the <a href="https://learn.fueled.io/ga4-connector-for-shopify/ga4-shopify-app-event-definitions#69b89fdea251440aacd728820571f506">Product Object</a>.</td></tr><tr><td>total</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>cart.total_price</td><td>Note: The Shopify cart <mark style="color:red;"><code>total_price</code></mark> is equal to the purchase price of each product line item, times the quantity of each line item, minus discounts. It does <em><strong>not</strong></em> include taxes or shipping.</td></tr></tbody></table>

## GA4 Client-Side Events <a href="#block-d55643bea84846c8939940251c378310" id="block-d55643bea84846c8939940251c378310"></a>

The following events are sent client-side, from your Shopify storefront to Google Analytics 4, via our javascript library, which is installed into your active Shopify theme. These are the default events that Fueled tracks out of the box. Additional [tracking events can be added to your theme](/apps/shopify/shopify-event-tracking/customizing-client-side-shopify-events) with a small amount of custom code.

*Note: Fueled currently supports event properties marked with **✅**. Properties marked with **❌** are not currently supported.*

### add\_to\_cart <a href="#block-ef097eed56714f708d2c8e3761add1fd" id="block-ef097eed56714f708d2c8e3761add1fd"></a>

This event fires when an item is added to a cart for purchase.

GA4’s <mark style="color:red;">`add_to_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Added`</mark> event specification. The <mark style="color:red;">`add_to_cart`</mark> event is populated with the following properties.

*Note: The “add to cart” experiences on a Shopify theme are often heavily customized. Fueled’s out-of-the-box* <mark style="color:red;">`add_to_cart`</mark> *attribution events only cover standard use cases. Customized tracking scripts may be needed to capture all* <mark style="color:red;">`add_to_cart`</mark> *events on your website.*

<table data-full-width="true"><thead><tr><th width="129">GA4 Event Property</th><th width="117" align="center">Supported</th><th width="115" align="center">Type</th><th width="151">Corresponding Fueled Property</th><th width="121">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td><mark style="color:red;"><code>currency</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Product Added</code></mark> event schema. It is calculated from the <mark style="color:red;"><code>currency</code></mark> values passed as part of the <mark style="color:red;"><code>items</code></mark> array.</td><td>currency is not available within the Shopify Storefront API <mark style="color:red;"><code>product</code></mark> object. Therefore, it is calculated when needed.</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td><mark style="color:red;"><code>value</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Product Added</code></mark> event schema. It is calculated from the individual products in Fueled’s <mark style="color:red;"><code>product</code></mark> array (which is the equivalent of GA4’s <mark style="color:red;"><code>items</code></mark> array).</td><td>Calculated, based upon the subtotal of the items being added to the cart (ie, price minus discounts, not including shipping or taxes).</td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartLine.quantity</td><td>Item quantity added to a cart, an order, etc.</td></tr></tbody></table>

> 👓 Fueled’s Product Added event schema also includes <mark style="color:red;">`cartId`</mark>, which is exposed to other Fueled destinations, such as [Segment](https://segment.com/). <mark style="color:red;">`cartId`</mark> represents the unique identifier of a shopping cart. We use cartId to connect GA4 carts, checkouts, and orders in our backend. However, cartId is not passed directly to GA4, given GA4’s PII requirements.

### login <a href="#block-056e3c43bb8543669b1178f3417e441d" id="block-056e3c43bb8543669b1178f3417e441d"></a>

This event fires when a shopper logs into a Shopify storefront. Currently, the event is logged with no additional properties.

<table data-full-width="true"><thead><tr><th width="120">GA4 Event Property</th><th width="84" align="center">Supported</th><th width="85" align="center">Type</th><th width="104">Corresponding Fueled Property</th><th width="129">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>method</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The method used to login.</td></tr></tbody></table>

### pageview <a href="#block-e10e1078273547ee97326fde5ca39ce5" id="block-e10e1078273547ee97326fde5ca39ce5"></a>

Fueled’s GA4 Connector for Shopify injects Google GTag.js script on each Shopify storefront page load. This allows Google Analytics 4 to directly track page view events. We do this, because this tag needs to fire to instantiate a GA4 Customer ID client-side.

To learn more about what GA4 collects for each page view event, visit [GA4’s event documentation site](https://support.google.com/analytics/answer/11403294).

### remove\_from\_cart <a href="#block-3f423b9f64d545dc83b57f6f8dbdd693" id="block-3f423b9f64d545dc83b57f6f8dbdd693"></a>

This event fires when an item is removed from a shopping cart.

GA4’s <mark style="color:red;">`remove_from_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Removed`</mark> event specification. The <mark style="color:red;">`remove_from_cart`</mark> event is populated with the following properties.

*Note: Fueled’s out-of-the-box client-side event tracking only tracks* <mark style="color:red;">`remove_from_cart`</mark> *events that occur on Shopify’s standard cart page. Customizations may be required to track all* <mark style="color:red;">`remove_from_cart`</mark> *events in a merchant’s theme.*

<table data-full-width="true"><thead><tr><th width="124">GA4 Event Property</th><th width="94" align="center">Supported</th><th width="63" align="center">Type</th><th width="116">Corresponding Fueled Property</th><th width="147">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartLine.quantity</td><td>Item quantity removed from a cart, an order, etc.</td></tr></tbody></table>

### search

This event fires when a shopper uses Shopify’s built-in search..

GA4’s <mark style="color:red;">`search`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Search`</mark> event specification. The **search** event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="144">GA4 Event Property</th><th width="96">Supported</th><th width="78">Type</th><th width="79">Corresponding Fueled Property</th><th width="137">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>search_term</td><td><strong>✅</strong></td><td><mark style="background-color:orange;">String</mark></td><td>query</td><td>search.terms</td><td>The terms used for the search event.</td></tr></tbody></table>

### sign\_up <a href="#block-78fedf99255944b7a6c3109cf56db20f" id="block-78fedf99255944b7a6c3109cf56db20f"></a>

This event fires when a shopper registers and creates a user account on a Shopify store.

GA4’s <mark style="color:red;">`sign_up`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Account Created`</mark> event specification. The <mark style="color:red;">`sign_up`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="134">GA4 Event Property</th><th width="77">Supported</th><th width="82">Type</th><th width="147">Corresponding Fueled Property</th><th width="194">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>email</td><td><strong>✅</strong></td><td><mark style="background-color:orange;">String</mark></td><td>email</td><td>customer.email</td><td>The customer’s email address.</td></tr><tr><td>first_name</td><td><strong>✅</strong></td><td><mark style="background-color:orange;">String</mark></td><td>firstName</td><td>customer.first_name</td><td>The customer’s first name.</td></tr><tr><td>last_name</td><td><strong>✅</strong></td><td><mark style="background-color:orange;">String</mark></td><td>lastName</td><td>customer.last_name</td><td>The customer’s last name.</td></tr></tbody></table>

### view\_cart <a href="#block-44866aa3a4bd422298a45c7150e64238" id="block-44866aa3a4bd422298a45c7150e64238"></a>

This event fires when a shopper views their Shopify cart.

GA4’s <mark style="color:red;">`view_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Cart Viewed`</mark> event specification. The <mark style="color:red;">`view_cart`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="126">GA4 Event Property</th><th width="97" align="center">Supported</th><th width="102" align="center">Type</th><th width="168">Corresponding Fueled Property</th><th width="149">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td><mark style="color:red;"><code>currency</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Cart Viewed</code></mark> event schema. It is calculated from the <mark style="color:red;"><code>currency</code></mark> values passed as part of the <mark style="color:red;"><code>items</code></mark> array.</td><td>currency is not available within the Shopify Storefront API <mark style="color:red;"><code>product</code></mark> object. Therefore, it is calculated when needed.</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td><mark style="color:red;"><code>value</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Cart Viewed</code></mark> event schema. It is calculated from the individual products in Fueled’s <mark style="color:red;"><code>product</code></mark> array (which is the equivalent of GA4’s <mark style="color:red;"><code>items</code></mark> array).</td><td>Calculated, based upon the subtotal of the items being added to the cart (ie, price minus discounts, not including shipping or taxes).</td><td>The monetary value of the event. <code>Value</code> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;background-color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>cartItemsJson[i].id (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>cartItemsJson[i].title (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>cartItemsJson[i].vendor (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>N/A</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>cartItemsJson[i].variant_id.toString() (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>cartItemsJson[i].final_price / 100 (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartItemsJson[i].quantity (Note: rather than pull from a Shopify theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>Item quantity added to a cart, an order, etc.</td></tr></tbody></table>

### view\_item <a href="#block-42d04cb74e484a5c8f0f26e9e46b9a39" id="block-42d04cb74e484a5c8f0f26e9e46b9a39"></a>

This event fires when a shopper views a Shopify product page.

GA4’s <mark style="color:red;">`view_item`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Viewed`</mark> event specification. The <mark style="color:red;">`view_item`</mark> event is populated with the following properties.

*Note: GA4’s view\_item event expects that the viewed product is returned in an array, even though it has a single item in that array.*

<table data-full-width="true"><thead><tr><th width="125">GA4 Event Property</th><th width="110" align="center">Supported</th><th width="94" align="center">Type</th><th width="108">Corresponding Fueled Property</th><th width="90">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>N/A</td><td>N/A</td><td></td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

### view\_item\_list <a href="#block-b50753a6c71940bc9a07c64565504f5e" id="block-b50753a6c71940bc9a07c64565504f5e"></a>

This event fires when a shopper views a Shopify collections page.

GA4’s <mark style="color:red;">`view_item_list`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product List Viewed`</mark> event specification. The <mark style="color:red;">`view_item_list`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="125">GA4 Event Property</th><th width="89" align="center">Supported</th><th width="99" align="center">Type</th><th width="112">Corresponding Fueled Property</th><th width="142">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list or category page in which an item is presented to the user.</td></tr><tr><td>item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list or category page in which an item is presented to the user.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

## GA4 Server-Side Events <a href="#block-f88b390e8c1e4b3e91fc2cb8cbdfee9a" id="block-f88b390e8c1e4b3e91fc2cb8cbdfee9a"></a>

The following events are sent server-side, from Shopify to Google Analytics 4, to ensure the highest-level of attribution tracking possible.

### begin\_checkout <a href="#block-73f2a731c8304bdc8e75f78d087169b8" id="block-73f2a731c8304bdc8e75f78d087169b8"></a>

GA4’s <mark style="color:red;">`begin_checkout`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Order Completed`</mark> event specification. The begin\_checkout event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="98">GA4 Event Property</th><th width="107" align="center">Supported</th><th width="108" align="center">Type</th><th width="112">Corresponding Fueled Property</th><th width="141">Shopify Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td></td><td></td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td></td><td></td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td></td><td></td><td>The coupon name/code associated with the event. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the Shopify Admin API</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Shopify doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

### purchase <a href="#block-b1ba919d0c8a4a11b9fd364d412e2e43" id="block-b1ba919d0c8a4a11b9fd364d412e2e43"></a>

| GA4 Event Property       | Supported |                         Type                         | Corresponding Fueled Property    | Shopify Object/Property                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------ | :-------: | :--------------------------------------------------: | -------------------------------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| currency                 |   **✅**   | <mark style="background-color:orange;">String</mark> |                                  |                                                                    | Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.                                                                                                                                                                                                                                                                    |
| value                    |   **✅**   | <mark style="background-color:yellow;">Number</mark> |                                  |                                                                    | The monetary value of the event. <mark style="color:red;">`Value`</mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;">`subtotal`</mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;">`total_price`</mark>, which includes shipping and taxes. |
| coupon                   |   **❌**   | <mark style="background-color:orange;">String</mark> |                                  |                                                                    | The coupon name/code associated with the event. Event-level and item-level coupon parameters are independent.                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| items                    |   **✅**   |   <mark style="background-color:blue;">Array</mark>  | products                         | An array of product objects, exposed through the Shopify Admin API | An array of <mark style="color:red;">`item`</mark> objects, each with the properties described below.                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| items.$.item\_id         |   **✅**   | <mark style="background-color:orange;">String</mark> | products.$.id                    | product.id                                                         | The ID of the item.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| items.$.item\_name       |   **✅**   | <mark style="background-color:orange;">String</mark> | products.$.name                  | product.title                                                      | The name of the item.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| items.$.affiliation      |   **❌**   | <mark style="background-color:orange;">String</mark> | N/A                              | N/A                                                                | Shopify doesn’t support <mark style="color:red;">`affiliation`</mark> at the individual product level.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| items.$.coupon           |   **❌**   | <mark style="background-color:orange;">String</mark> | products.$.coupon                | N/A                                                                | The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| items.$.currency         |   **❌**   | <mark style="background-color:orange;">String</mark> | products.$.currency              | N/A                                                                | The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.                                                                                                                                                                                                                                                                                                                                                                   |
| items.$.discount         |   **❌**   | <mark style="background-color:yellow;">Number</mark> | products.$.discount              | N/A                                                                | The monetary discount value associated with the item. This <mark style="color:red;">`discount`</mark> value, has not been deducted from the item’s <mark style="color:red;">`price`</mark> property.                                                                                                                                                                                                                                                                                                                                          |
| items.$.item\_brand      |   **✅**   | <mark style="background-color:orange;">String</mark> | products.$.brand                 | product.vendor                                                     | The brand of the item.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| items.$.item\_category   |   **❌**   | <mark style="background-color:orange;">String</mark> | products.$.categories (An array) | product.collections                                                | The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| items.$.item\_list\_id   |   **❌**   | <mark style="background-color:orange;">String</mark> | N/A                              | N/A                                                                | The ID of the list in which the item was presented to the user. If set, event-level item\_list\_id is ignored. If not set, event-level item\_list\_id is used, if present.                                                                                                                                                                                                                                                                                                                                                                    |
| items.$.item\_list\_name |   **❌**   | <mark style="background-color:orange;">String</mark> | N/A                              | N/A                                                                | The name of the list in which the item was presented to the user. If set, event-level item\_list\_name is ignored. If not set, event-level item\_list\_name is used, if present.                                                                                                                                                                                                                                                                                                                                                              |
| items.$.item\_variant    |   **✅**   | <mark style="background-color:orange;">String</mark> | products.$.variant               | product.selected\_or\_first\_available\_variant.id                 | The item variant or unique code or description for additional item details/options.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| items.$.location\_id     |   **❌**   | <mark style="background-color:orange;">String</mark> | N/A                              | N/A                                                                | The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location\_id is ignored.\nIf not set, event-level location\_id is used, if present.                                                                                                                                                                                                                                                                 |
| items.$.price            |   **✅**   | <mark style="background-color:yellow;">Number</mark> | products.$.price                 | product.price / 100                                                | The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.                                                                                                                                                                                                                                                                                                                           |

<br>


# Google Ads Connector

> *Fueled's Google Ads integration is available to Shopify merchants on our "Fueled Standard" plan and above.*

{% hint style="warning" %}
Important: Before turning on Fueled's Google Ads Connector, please disable any other Google Ads scripts or connector apps that you might have installed

Having multiple Google Ads integrations in place can lead to duplicate conversion event tracking.
{% endhint %}

## What Does Fueled's Google Ads Connector Do?

### Enhanced Conversion Tracking

The primary function of our Google Ads integration is to ensure the proper setup of "Google Ads Enhanced Conversions."

You can learn more about Enhanced Conversion Tracking here:

{% embed url="<https://support.google.com/google-ads/answer/9888656?hl=en>" %}

With Enhanced Conversions, Google reports a 3.5% automatic improvement in conversions for your ad spend, due to the better matching of customers between your website purchases and Google's index of online shoppers.

### Automatic Remarketing Event Tracking

If you are also leveraging Fueled's Google Analytics 4 event tracking, our Google Ads integration will automatically send Google Ads remarketing events for every GA4 event that we track. This improves signal into Google Ads, and can help Google Ads better target potential customers.

### Custom Audience Creation & Advanced Segmentation

With all of this comprehensive event data in Google Ads, you can build more robust audiences and segments for your advertising campaigns within Google Ads.

### *How We Differ From Shopify's Built-In Google Ads Integration*

Shopify's built-in Google Ads integration, which is enabled through their Google Shopping/YouTube app, is a fine solution for small businesses with limited spend on Google Ads.

As Google Ads configuration experts, we've designed our Google Ads integration to follow best practices and to offer merchants configurability — without requiring deep expertise in attribution tracking.

Key features that differentiate Fueled's Google Ads integration include:

* 1-to-1 mapping of Google Analytics events with Google Ads Remarketing events.
* Enhanced Conversion Tracking and customer matching on purchase events.
* Additional "metadata" about Google Ads conversions.
* Configurability when setting conversion values and transaction IDs for purchase events.
* Dedicated support from a team that implements Google Ads every day.

## Getting Started

<figure><img src="/files/Nw0vSrJeTQM0WRxSkccS" alt=""><figcaption><p>Fueled's Shopify App UI for managing Google Ads settings and configuration</p></figcaption></figure>

### Video Tutorial

{% embed url="<https://www.loom.com/share/5c353dd16c284abb8a08b66163ec362a?sid=f3bdd2eb-24c0-4cc6-af80-6f011c4aafd1>" %}
Video instructions for installing Fueled's Google Ads integration.
{% endembed %}

### Getting Your Conversion ID And Conversion Label From Google Ads

The first step in setting up our Google Ads Connector is to go to your Google Ads account and click "Conversion Actions" under "Tools And Settings > Conversions."

<figure><img src="/files/dZiKHwmaVOBW9aAixgZu" alt=""><figcaption><p>Conversion Actions can be found under "Tools And Settings > Conversions" in Google Ads' menu bar.</p></figcaption></figure>

Here, you will either want to configure a new Conversion Action for Purchase Events, or grab the configuration of an existing Conversion Action for Purchase Events.

<figure><img src="/files/IMygUkPV5kpm0vIvu0ZR" alt=""><figcaption><p>Screenshot of Google Ads' Conversions admin page.</p></figcaption></figure>

After configuring your Attribution Window preferences for your new/existing Conversion Action, you will want to click into the HTML tag setup, to grab the Conversion ID and Conversion Label for your Purchase event.

<figure><img src="/files/oJtOL2M9hVTZA0Ji9S7Q" alt=""><figcaption><p>You can find your Google Ads Conversion ID and Conversion Label in the HTML settings for your Conversion Action.</p></figcaption></figure>

{% hint style="success" %}
Make sure that you have enabled "Enhanced Conversions" using a GTag in your Conversion Action setup.
{% endhint %}

<figure><img src="/files/LPyMaErejbKnaLFX3HFt" alt=""><figcaption><p>Make sure that you've checked the box to enable "Enhanced Conversions" in your Conversion Action setup.</p></figcaption></figure>

You'll then enter these two values within our Shopify App UI. The string starting with `AW-` is the Conversion ID. The string after the `/` symbol is the Conversion Label.

<figure><img src="/files/OrssfpjLzJnEFXOnNdV2" alt=""><figcaption><p>Fueled form fields for setting up Google Ads ID/label.</p></figcaption></figure>

With these two values in place, and with our Google Ads Connector enabled, Fueled will begin tracking purchases into Google Ads on the Order Confirmation page.

### Additional Configuration Options

There are two additional configuration options that you can choose for our Google Ads Connector:

<figure><img src="/files/wyCjuLGfhKwLyIfjvGzi" alt=""><figcaption><p>Additional settings for Fueled's Google Ads integration.</p></figcaption></figure>

First, you can choose to send Shopify's "Subtotal" (recommended) or "Total Order Value" to Google Ads as the value of the Purchase conversion action.

Second, you can choose whether to send the Order ID or a *hash* of the Order ID to Google Ads. We prefer to use the hash, to avoid sending unnecessary customer data to Google. While we are not attorneys and ask that Shopify merchants make their own decisiosn around PII, we believe that hashing these IDs is more in compliance with GDPR and CPRA.

## Setting Fueled's Purchase Conversion Action As "Primary"

When tracking conversions into Google Ads, you have to choose which source (or sources) should be used as your "Primary Action" for ad optimization.

Typically, merchants will chose a Google Ads Conversion Action, like the one set up with Fueled, or an imported Conversion Action from Google Analytics 4. (Note: Do not choose both, or you'll end up double counting your conversions.)

Imported Google Analytics Conversion Actions do not contain "Enhanced Conversion" data. So, they typically are better as "Secondary Actions" that can be used for reporting rather than ad campaign optimization.

When correctly configured, Google Ads Enhanced Conversions should collect better data for ad targeting and customer matching.

## Confirming Your Enhanced Conversion Tracking Setup

After a few days of running Google Ads Enhanced Conversion Tracking, you should be able to visit the "Diagnostics" tab in your Conversion Action settings to see the status of your tracking setup.

<figure><img src="/files/friMtsSafkLHyonzsWM4" alt=""><figcaption><p>Enhanced Conversions Diagnostics tab</p></figcaption></figure>

If everything is configured correctly, you should see a message stating that Google Ads is "recording enhanced conversions."


# Facebook Pixel/CAPI Connector

> *Fueled's Facebook integration is available to Shopify merchants on our "Fueled Standard" plan and above.*

{% hint style="warning" %}
Important: Before turning on Fueled's Facebook Pixel/Conversion API integration, please disable any other Facebook attribution scripts that you might have installed, including Shopify's built-in Facebook Pixel/CAPI integration.

Having multiple Facebook Pixel/CAPI integrations enabled at the same time can result in conversion event duplication in Facebook.
{% endhint %}

## Introduction

Fueled's Facebook Ads Connector integrates with both Facebook Pixel and Facebook's Conversion API (CAPI) for robust and complete event tracking.

<figure><img src="/files/tHVYDDix9YvubHaMLTWP" alt=""><figcaption><p>Visualization of how Fueled works with Facebook Pixela and Conversion API (CAPI).</p></figcaption></figure>

Shopify's built-in Facebook Pixel/Conversion API (CAPI) integration works well for small businesses. But growth marketers and high-performing teams often seek out more robust solutions to power their Facebook Ads spend and targeting.

Fueled's Facebook integration captures more event types that what you get out of the box with other tools. We follow best practices and continually innovate, so that merchants using our application can get more precise in their targeting and feed Facebook's algorithms more and better data.

## How It Works

Fueled's Facebook integration loads your Facebook Pixel on all pages, and sends the following browser events to Facebook via the Facebook Pixel API:

* `PageView`
* `View content`  — for both Product Pages and Collection Pages
* `Add to cart`
* `CartViewed`
* `Initiate checkout`
* `Add payment info`
* `Purchase`
* *(More events coming soon!)*

We also send these same events to Facebook Conversion API (CAPI) — where Facebook deduplicates each set of events. By sending these events through both the Pixel API and the Conversion API, we ensure that Facebook receives the most accurate and complete data possible.

Through our CAPI integration, we can also enrich events to improve customer match rates and provide additional information about conversions.

## Installing Fueled's Facebook Pixel/CAPI Integration

First, make sure you've disabled any other FB Pixel/Conversion API integration on your site, including Shopify's built-in integration. You can still use Shopify's Facebok App, but you will need to choose Fueled as your Pixel/CAPI connector.

Then, go to the "Facebook" tab in the Fueled app:

<figure><img src="/files/aO8h4qTGKlbSGL4vz0zd" alt=""><figcaption><p>Screenshot of Fueled's configuration UI for Facebook Pixel/CAPI.</p></figcaption></figure>

Here, you will enter your Facebook Pixel ID, as well as a Facebook Access Token. You can find these within Facebook Events Manager, as described below.

### Retrieving Your Facebook Pixel ID and Business Access Token

Check out this short video for a complete guide to configuring your Facebook Pixel and Business Access Token for Fueled:

{% embed url="<https://www.loom.com/share/002c55b36bed44629cab5573d2e06fad?sid=3f92d84c-42b5-4964-b621-903c27b13fbe>" %}
Short video on configuring Fueled's Facebook integration.
{% endembed %}

#### Step 1: Creating a Facebook DataSet

1. Go into Facebook Business Manager.
2. Select "Events Manager"
3. Select "Connect Data Sources"
4. Follow the instructions for the manual setup of a Facebook Pixel/CAPI integration (as described in the video above).

#### Step 2: Copy/paste your Facebook Pixel/Dataset ID

<figure><img src="/files/vJNOnYARAv7ehyTLclID" alt=""><figcaption><p>Screenshot of Facebook Dataset UI for copy/pasting your Facebook Pixel ID</p></figcaption></figure>

Place this Pixel ID in Fueled's Facebook configuration UI:

<figure><img src="/files/1sllQ6Swh45W4H2cbnC2" alt=""><figcaption><p>Copy/paste your Facebook Pixel ID into our configuration UI.</p></figcaption></figure>

#### Step 3: Copy/paste your Facebook Business Access Token

1. Scroll down the "Settings" tab for your new Facebook Dataset to the section called "Conversions API."
2. Click "Generate Access Token"

<figure><img src="/files/u7RkNoYEUrYhWqOaKhor" alt=""><figcaption><p>Scroll down the settings screen in the Facebook Dataset UI to generate a Business Access Token.</p></figcaption></figure>

Place this token in your Fueled configuration settings for our Facebook integration:

<figure><img src="/files/KXaoLZ3HU6LQpEIWOARM" alt=""><figcaption><p>Drop the Facebook Business Access Token into your Fueled configuration.</p></figcaption></figure>

#### Step 4: Enable Advanced Customer Matching in your Facebook Dataset

<figure><img src="/files/cURFs9JlKmvwwnv9Ow79" alt=""><figcaption><p>Go into your Facebook Dataset "Settings" to enable Automatic Website Matching.</p></figcaption></figure>

## Test Your Integration

Once you complete this setup, you should start to see events flowing into Facebook Events Manager soon. Note: Initially, there can be a 4-24 hour delay before events are summarized on the "Overview" tab of your Facebook Dataset. But you can use Facebook's event testing tool to check if events are actively flowing.


# Segment Connector

> *Fueled's* [*Segment integration*](https://segment.com/docs/connections/sources/catalog/cloud-apps/shopify-fueled/) *is available to Shopify merchants on our "Fueled Advanced" plan and above.*

## Introduction

[Segment](https://segment.com) is an enterprise Customer Data Platform. Segment is an ideal customer data pipeline/infrastructure solution for Shopify merchants facing the following challenges:

* Event tracking needs that span across multiple eCommerce storefronts, mobile apps, and custom software systems.
* Complex identity resolution requirements.
* Complex integration needs that require transforming data between systems.

Segment provides javascript libraries and APIs that can be implemented directly into your Shopify store. However, implementing Segment directly can take a lot of time and requires significant expertise. In fact, we originally designed Fueled to address these challenges — after years of manually implementing Segment for Shopify and BigCommerce merchants as consultants.

Fueled takes all of the hard work and time out of implementing Segment for Shopify. With Fueled, you can be up and running with Segment on Shopify in minutes, rather than weeks.

## Getting Started

Fueled's Segment integration leverages a server-side connection to Segment's APIs. It can be installed here: <https://segment.com/docs/connections/sources/catalog/cloud-apps/shopify-fueled/>.

Give the Fueled Connector a meaningful name:

<figure><img src="/files/Vz2Xe9OImFvgUfYbpUqf" alt=""><figcaption><p>Name your Node.js connector</p></figcaption></figure>

Copy the API Writekey for the Connector:

<figure><img src="/files/vSCZCfe3DqO95rxBem5A" alt=""><figcaption><p>Copy the Node.js Connector Writekey.</p></figcaption></figure>

Now, drop this Writekey into the Fueled App:

<figure><img src="/files/wFeyrPC9eYa6tMAZruCy" alt=""><figcaption><p>Drop your Segment Writekey into the Fueled App.</p></figcaption></figure>

That's it!

Fueled will begin tracking both client-side and server-side events into your Segment instance.

## Our Segment eCommerce Event Specifications

Fueled supports Segment Page, Track, and Identify events:

### Page Events

Page events tract a page load on a website. They automagically pull in basic UTM and campaign data. They can be extended to support additional event properties. An example can be found below:

```javascript
analytics.page({
  path: '/products/sample',
  referrer: '<https://www.example.com/products/sample?variant=123456789>',
  search: '?variant=123456789',
  title: 'Example Product',
  url: '<https://www.example.com/products/sample?variant=123456789>'
});
```

### Track Events

Track events fire when a user takes a specific action. Custom event types and properties can be defined for specific use cases. Standardized event types have also been defined for general use cases, as described below:

{% content-ref url="/pages/EFv9tT9VCzwtwqb70vdl" %}
[Segment Event Specifications](/integrations/destinations/segment.com/segment-event-specifications)
{% endcontent-ref %}

### Identify Events

Identify events *identify* a website or application user, generally by a userId or an email address. When an identify event fires as part of a session that contains Track and Page events associated with a single, anonymous user, all of the events in this session are automatically associated with the identified user. With an Identify event, additional user/customer attributes can be defined and assigned. An example can be found below:

```jsx
analytics.identify("12345abcd78910", {
  name: "Peter Parker",
  email: "[peter@example.com](<mailto:peter@example.com>)",
  address: {
    street: "7th St",
    city: "Queens",
    state: "NY",
    postalCode: "12345",
    country: "USA"
  },
  allOrderIds: "20,67"
});
```

## Advanced Solutions

#### Custom Client-Side Events

Fueled supports custom client-side track events. If you need to track additional types of client-side events, you can simply leverage Fueled's client-side javascript library and these events will flow into Segment.

#### Checkout-Related Events

Fueled's [Custom Pixel implementation](/apps/shopify/shopify-event-tracking/custom-pixel/custom-pixel-for-tracking-atc-events) is supported by our Segment Destination. You can use this solution to send checkout-related events to Segment.

#### Modifying Event Payloads In Segment

Sometimes, merchants seek to modify the event payloads that Fueled sends to Segment as part of its [standard eCommerce specification](/integrations/destinations/segment.com/segment-event-specifications). To do so, you can use a combination of a [Webhook Destination](https://segment.com/docs/connections/destinations/catalog/actions-webhook/) and a [Source Function](https://segment.com/docs/connections/functions/source-functions/#create-a-source-function) in Segment.

If you have questions about this approach, please contact <support@fueled.io>.


# Google Tag Manager Integration

> Fueled's Google Tag Manager Integration, as well as its data layer and data layer listeners, are available on all of our Shopify plans.

Learn more about working with our data layer and exposing it to Google Tag Manager variables and tags at:

{% content-ref url="/pages/ZSY7ECOW7NtnKmDGjZKN" %}
[Working with Fueled’s Shopify Data Layer](/apps/shopify/shopify-event-tracking/working-with-fueleds-shopify-data-layer)
{% endcontent-ref %}

### GTM Container Template

You can also get started with the following sample Google Tag Manager Container configuration.

{% hint style="success" %}
Note: The following GTM Tags, Triggers and Variables are provided as is, without warranty. Occasionally, we may update this GTM container snippet. It's the merchant's responsibility to manage this recipe.

Also, please be sure respect your customers' privacy and implement consent mode in GTM. Compliance with privacy laws is the responsibility of the merchant.
{% endhint %}

To use this template, download the json file below and then upload it into a GTM container. Be sure to pay attention to any tag, trigger, or variable names that are shared, so as not to override existing work in GTM.

{% embed url="<https://gist.github.com/seanberto/fc3144f2c6f152994d84b6c16936b28c>" %}


# Data Warehouse Connector

> On our Fueled Plus plan, Shopify merchants can take advantage of our data warehouse connector, to stream events into BigQuery, Snowflake or RedShift.

To learn more, please reach out to <support@fueled.io>.


# Domain Name Proxy

> Shopify merchants on our Fueled Advanced and Fueled Plus plans can take advantage of our domain name proxy, to ensure longer cookie lifespans and robust client-side event tracking.

With domain name proxying (or "CNAME proxying"), Fueled runs all of its scripts and API endpoints, including Google Analytics endpoints, over the same root domain as your Shopify store.

Domain name proxying can extend the lifespan of cookies, as well as help ensure that you are tracking as many client-side events as possible.

Our domain name proxy service is configured on your behalf by our team. To get started, upgrade your Fueled plan to Advanced or Plus. We will reach out to you to get this feature set up on your behalf. If you have questions, please reach out to: <support@fueled.io>.


# BigCommerce App

## Introduction <a href="#block-a8581ad48b6d42519bad9af619e8925d" id="block-a8581ad48b6d42519bad9af619e8925d"></a>

> 🔥 Fueled’s [Advanced Attribution Suite](https://www.bigcommerce.com/apps/fueled-advanced-attribution/) allows BigCommerce merchants to push client-side and server-side attribution events to Google Analytics 4 and Google Ads.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/77910ced-ddb5-4f72-882f-da62e892ea07/Group_8/w=3840,quality=80" alt=""><figcaption><p>Visualization of how Fueled collects both client-side and server-side events, and sends them to Google Analytics 4.</p></figcaption></figure>

## Key Benefits <a href="#block-1c00635ae5be4dd890ade518d4339c52" id="block-1c00635ae5be4dd890ade518d4339c52"></a>

#### Easy, No-Code Install <a href="#block-bd5397f03fae4dfaa65a669530859d97" id="block-bd5397f03fae4dfaa65a669530859d97"></a>

Start tracking over a dozen different event types in GA4 and Google Ads within minutes. No coding required. Customizable.

#### Track Point of Sale and Subscription Events <a href="#block-de52b3618c744d9983302ebe6c121ba1" id="block-de52b3618c744d9983302ebe6c121ba1"></a>

Track every purchase, including phone orders, POS and recurring orders, into Google Analytics via our server-side event integration.

#### Marketing Analytics You Can Trust <a href="#block-37e9ed056cfc4c63a8236102c3e12354" id="block-37e9ed056cfc4c63a8236102c3e12354"></a>

We combine client-side and server-side event tracking for reliable attribution tracking. Make better decisions and increase ROAS with good data.

#### Take Advantage of Google Signals <a href="#block-2e0621422286465f805a28ae9ca2ceb2" id="block-2e0621422286465f805a28ae9ca2ceb2"></a>

ueled’s [Advanced Attribution Suite](https://www.bigcommerce.com/apps/fueled-advanced-attribution/) for BigCommerce sends both client-side and server-side events on behalf of our merchants. We push clean, accurate data to [Google Analytics Measurement Protocol API](https://developers.google.com/analytics/devguides/collection/protocol/ga4). We also integrate with Google’s new [Signals product](https://support.google.com/analytics/answer/7532985), which enriches your attribution events with additional demographic data and leverages machine-learning for enhanced attribution matching.

#### Additional App Highlights <a href="#block-41862c7822b74863a19d267dbdbc7cd4" id="block-41862c7822b74863a19d267dbdbc7cd4"></a>

* Manage all of your app configuration from within the BigCommerce Admin UI.
* This app was designed for Stencil themes, but can be configured to work with legacy Blueprint themes.
* This app has been speed tested to have minimal impact on page load times.

## Features <a href="#block-3d06b4704d384539b8136883471ccdeb" id="block-3d06b4704d384539b8136883471ccdeb"></a>

#### **Get Started with Server-Side Event Tracking for GA4 Today,&#x20;*****for free*** <a href="#block-fb914d6523dc470fa1e5688a6e1fe975" id="block-fb914d6523dc470fa1e5688a6e1fe975"></a>

With ad blockers becoming more and more prevalent, it is critical that brands start tracking purchase events through server-side technologies. Server-side event tracking can be complex and expensive with other apps. But not Fueled. Within 10 minutes of installing our app, you can be tracking your most important events server-side — without writing any code.

Fueled’s GA4 Connector also sends point-of-sale and recurring order events to GA4. Track all of your BigCommerce orders in GA4, regardless of the sales channel.

#### **Why Trust Your Google Analytics Integration with Fueled?** <a href="#block-733e4bcd078342d88ebe6f28d93387d9" id="block-733e4bcd078342d88ebe6f28d93387d9"></a>

We live and breathe attribution tracking. We understand how confusing it can be to reconcile attribute metrics between platforms. We know how critical it is for merchants to measure performance and build campaigns around data they can trust.

Our attribution model is fully transparent. Our server-side event tracking is highly reliable. And our client-side event tracking can be customized to meet your specific requirements.

#### **How is this App Free? Does Fueled Provide Support?** <a href="#block-2a4a718552d64d18b3ac1ae0a7d7d092" id="block-2a4a718552d64d18b3ac1ae0a7d7d092"></a>

Fueled is a customer data platform, or *CDP*. We are offering this app for free, because we know the transition from Universal Analytics to Google Analytics 4 can be challenging for eCommerce brands — and we wanted to give back. We fully support this application and are available if you have any questions. You can even [connect with us on Slack](/more-info/get-support#slack-channel-sign-up-form)!

#### **Make Better Decisions with Accurate Data** <a href="#block-0af669de705a42f4add89091a073921f" id="block-0af669de705a42f4add89091a073921f"></a>

Fueled’s Google Analytics 4 integration combines client-side (i.e., browser-based) event tracking with server-side event tracking for the most reliable attribution model possible. We track over a dozen different customer event types so that you can drill down on your data in GA4 and build precise reports.

With Fueled, you can track the following BigCommerce events in Google Analytics 4 with no coding required:

**Client-side events**

* add\_to\_cart
* begin\_checkout
* login
* pageview
* search
* view\_cart
* view\_item
* view\_item\_list

**Server-side events**

* sign\_up
* purchase

(Note: Additional client-side events can be configured within your theme or via Scripts manager. [Learn more about customizing our client-side tracking events.](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/bigcommerce-event-tracking/customizing-client-side-bigcommerce-events))

#### **Respect Your Customers’ Tracking Consent** <a href="#block-6dabf374c82d468590f787a074b19d2b" id="block-6dabf374c82d468590f787a074b19d2b"></a>

Fueled fully integrates with BigCommerce’s [tracking consent features for attribution scripts](https://support.bigcommerce.com/s/article/Using-Script-Manager). When your customers ask not to be tracked, Fueled respects those settings for all client-side events.

#### **Fully Customizable with Tracking Library and Data Layer** <a href="#block-dec16867f74449a8b6c9859468e97eb3" id="block-dec16867f74449a8b6c9859468e97eb3"></a>

Do you have a custom BigCommerce theme? Do you want to track custom events in GA4? Fueled’s client-side library is available for your developers to configure custom events. You can also leverage our data layer to send consistent data to other applications, such as Facebook’s Conversion API.

#### **New Features Coming Every Month** <a href="#block-718aa6c618544716bd2cb035381c935d" id="block-718aa6c618544716bd2cb035381c935d"></a>

As a venture-backed company with offices in the U.S. and Europe, the team at Fueled is committed to customer feedback and feature development. Engage with us to continually improve this app!

## Integrations <a href="#block-c0b3d37337904724866dfe38d4da0b0e" id="block-c0b3d37337904724866dfe38d4da0b0e"></a>

Fueled’s Advanced Attribution Suite integrates with numerous BigCommerce Apps, including:

* ReCharge Payments
* Point of Sale

## Getting Started <a href="#block-d4eb12fb8607427685b35c1d7d451f76" id="block-d4eb12fb8607427685b35c1d7d451f76"></a>

Getting started with our BigCommerce App is easy. Simply [install our free app from the BigCommerce App Marketplace](https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/), and then follow our instructions to configure GA4 and our app:

{% content-ref url="/pages/BmSZKcpL8DeBE45gjSMr" %}
[Google Analytics 4 Connector](/apps/bigcommerce-marketplace-app/google-analytics-4-connector)
{% endcontent-ref %}

## Customer Support <a href="#block-b4c85f3077cb436ba0aea919cd03aea0" id="block-b4c85f3077cb436ba0aea919cd03aea0"></a>

Please email <support@fueled.io> with any questions or feature requests you might have regarding this application. We are committed to responding to all requests within 1 business day.


# Google Analytics 4 Connector


# Configuring Google Analytics 4 for BigCommerce

> ⚡ Getting started with Google Analytics 4 is quick and easy.

Before Fueled’s free [Google Analytics 4 Connector App for BigCommerce](https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/) can be installed, you’ll either need to set up a new Google Analytics 4 property, or to get the Measurement ID and and an API key from an existing property.

If you already have a GA4 property, please skip to: .

## Creating a New GA4 Property <a href="#block-42c2a643cf9f4147a5130002ec2ebc99" id="block-42c2a643cf9f4147a5130002ec2ebc99"></a>

If you don’t have a Google Analytics 4 property enabled, click on the “Admin” link in the bottom left-hand corner of the Google Analytics UI to view the settings of your Google Analytics account.

From there, you will want to create a new property, clicking the link displayed in the screenshot below.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/d2ddfc80-9be7-4d26-8cc2-b07c309a4924/Image_2022-09-08_at_5.50.32_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

Then, name your GA4 property.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/3e954fe7-f059-4cb4-9e5b-acd8f64f42f8/Image_2022-09-08_at_5.53.33_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

Once your GA4 property is created, you’ll want to choose “Web” as your platform for collecting data, as described below.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/dc789746-b85b-476c-ad46-29dbb49b22db/Image_2022-09-08_at_5.54.34_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

Enter the URL of your BigCommerce storefront. (If your site is accessed with “www” in the website URL, make sure you included that.)

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/b7598c35-642a-4cb3-93eb-4b86da9d1c33/Image_2022-09-08_at_5.56.36_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

## Getting Your GA4 API Credentials <a href="#block-7f5d9c4132d14a93be489a89cd9d9909" id="block-7f5d9c4132d14a93be489a89cd9d9909"></a>

Once you’ve created your GA4 Property, you’ll want to create a Measurement Protocol API Secret, clicking on the configuration section highlighted below.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/e64b5ac6-0c6f-4c51-99cf-ef441388c45b/Image_2022-09-08_at_5.57.48_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

Click “Create.”

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/367ff0fd-37a5-4f11-8a15-4b1c1c19db34/Image_2022-09-08_at_6.00.03_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

Copy the Secret Key, as described below, as well as your Measurement ID. You will need these two values when configuring our BigCommerce App.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/36dfa2cf-ffda-4d7c-8d8c-c1ec20434944/Image_2022-09-08_at_6.00.49_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

## Enabling Google Signals <a href="#block-5e6246e289334c1aa362bea1db2ce3b5" id="block-5e6246e289334c1aa362bea1db2ce3b5"></a>

While not required, we recommend that you enable Google Signals in your “Data Collection” settings, as described below. Google Signals will allow you to enrich your attribution reports in GA4 with demographic data about your shoppers. Google Signals also unlocks additional attribution models, including new models powered by machine learning.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/1ea03173-0733-4851-b561-3a4fc3703dd0/Image_2022-09-08_at_6.02.33_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

## Confirming Your Setup <a href="#block-9654506cc84c4470a770b85d16c91708" id="block-9654506cc84c4470a770b85d16c91708"></a>

Once you’ve set up Google Analytics 4 and [you’ve configured Fueled](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/configuring-fueleds-bigcommerce-app) to push event data into your GA4 property, you should soon see events flowing in GA4’s “Realtime Reports,” as described below.<br>

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/2eddf932-7310-4e75-b50c-d62592cd2cf3/Image_2022-09-08_at_6.05.48_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>


# Configuring Fueled’s BigCommerce App

## Getting Started with Fueled’s GA4 Connector App <a href="#block-69b9931706dc4d16b3ede600a1816d86" id="block-69b9931706dc4d16b3ede600a1816d86"></a>

Configuring our [Google Analytics 4 Connector for BigCommerce](https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/) is quick and easy.

First, please make sure that you’ve created a Google Analytics 4 Property, and that you have your Measurement ID and your API key ready to go. You can learn more about GA4 configuration at:

[Configuring Google Analytics 4 for BigCommerce](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/configuring-google-analytics-4-for-bigcommerce)

Next, visit our BigCommerce Marketplace listing to install our app on your BigCommerce Store: <https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/>

## Configuring the GA4 Connector App <a href="#block-fa97a04f39e843d68096304da1c65573" id="block-fa97a04f39e843d68096304da1c65573"></a>

### Tracking Client-Side Events <a href="#block-63da997451224774a39659d4feec2745" id="block-63da997451224774a39659d4feec2745"></a>

[Fueled’s GA4 Connector app](https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/) leverages BigCommerce’s [Scripts Manager](https://support.bigcommerce.com/s/article/Using-Script-Manager) and Scripts Manager API to install client-side javascript that tracks events that take place in the browser.

> 🔑 **Note:** Fueled’s client-side tracking only works *out of the box* for Stencil-powered themes. For legacy sites running on BigCommerce’s Blueprint theme engine, additional steps are required to configure client-side tracking. Please contact <support@fueled.io> if you are on a Blueprint theme and would like to leverage our client-side tracking features.

When you install our app on a Stencil-powered theme, we inject two javascript snippets in Scripts Manager:

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th width="255"></th><th width="154"></th><th width="107"></th><th></th></tr></thead><tbody><tr><td><strong>Script Name</strong></td><td><strong>Description</strong></td><td><strong>Placement</strong></td><td><strong>Location</strong></td><td><strong>Category</strong></td></tr><tr><td><mark style="color:red;"><code>fueled-vars</code></mark></td><td>This script loads the Fueled writekeys and API configurations</td><td>All pages (including checkout)</td><td>Head</td><td>Analytics</td></tr><tr><td><mark style="color:red;"><code>fueled-script_tag</code></mark></td><td>This script loads Fueled’s data layer and handles event tracking.</td><td>All pages (including checkout)</td><td>Footer</td><td>Analytics</td></tr></tbody></table>

***Please do not update either of these two scripts, unless you know exactly what you are doing. In particular, edits to&#x20;**<mark style="color:red;">**`fueled-vars`**</mark>* ***could break your client-side Fueled integration.***

Within Fueled’s GA4 Connector App settings, you can enable/disable client-side tracking:

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/17e4d533-e9d2-479e-9936-3a5ced41e1f3/client-side_tracking_config/w=1920,quality=80" alt=""><figcaption></figcaption></figure>

When client-side tracking is disabled, our application’s scripts still fire, such that you can access our data layer. But our application will not send these events to Google Analytics.

> 📢 **Client-side** and **server-side** tracking configuration is managed separately in our app. Some merchants choose to leverage our client-side tracking features, and not our server-side tracking features, or vice versa. Unless you’re building custom functionality on top of our libraries and APIs, we recommend that merchants enable both client-side and server-side tracking through our app.

### Respecting User Tracking Consent <a href="#block-7f16c1a113994aad9ce490db9838afc3" id="block-7f16c1a113994aad9ce490db9838afc3"></a>

By default, our GA4 Connector App respects the customer privacy/tracking consent features provided by BigCommerce’s Scripts Manager. We recommend that you leave these settings **activated**, to respect your customers’ consent when it comes to client-side event tracking.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/6e13a479-eac2-4134-b829-ef97e14219ff/Image_2022-10-17_at_6.14.34_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

### Enabling Server-Side Tracking <a href="#block-d91a5531b9ca4421b78d91db37cf8e05" id="block-d91a5531b9ca4421b78d91db37cf8e05"></a>

Enable/disable server-side tracking to track checkout and purchase events with Fueled. By default, our app tracks server-side events.

> 🔑 With server-side event tracking enabled, Fueled tracks ***all*** purchase events, including purchases made through your BigCommerce Admin UI, point-of-sale, third-party checkout apps, and subscription management apps like ReCharge Payments. We send the BigCommerce order source to Google Analytics 4 via the <mark style="color:red;">`attribution`</mark> property on purchase events. Orders placed by customers through your storefront will have “web” listed in this <mark style="color:red;">`attribution`</mark> property.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/edf1c353-6875-4fdd-89f7-fa6fceed73ab/Image_2022-10-17_at_6.16.55_PM/w=1920,quality=80" alt=""><figcaption></figcaption></figure>

### Configuring the Purchase Value Sent to Google Analytics <a href="#block-932d4ced19194be5a89e70388e351421" id="block-932d4ced19194be5a89e70388e351421"></a>

Google recommends that purchase events use the “subtotal” value of an order as the <mark style="color:red;">`value`</mark> parameter. However, some merchants have historically used, or would prefer to use, the “total order value” (which includes taxes and shipping). We leave this choice up to you!

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/b1f10a7d-7cda-4daa-b1e6-75fcd91bb634/Image_2022-10-17_at_6.22.37_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

### Entering Your Google Analytics 4 Credentials <a href="#block-deea07059eac4ba28dab6f19f9f9d9fb" id="block-deea07059eac4ba28dab6f19f9f9d9fb"></a>

You will need to enter your Measurement ID and API Key for GA4 to send Google attribution events. Please review our documentation on configuring a GA4 property [here](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/ga4-bigcommerce-app-event-definitions).

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/d4673346-59e4-4352-9794-509982e58885/Image_2022-10-17_at_6.18.12_PM/w=3840,quality=80" alt=""><figcaption></figcaption></figure>

### Pausing Attribution Events <a href="#block-cff695abc627464f9698b3eb6d9dd8a5" id="block-cff695abc627464f9698b3eb6d9dd8a5"></a>

For the most part, once a merchant has configured our app, they will never need to adjust their settings or temporarily pause events. That said, if you’re setting up a new development store or are staging the Fueled app for a new store, you can use the settings below to turn off event tracking, while keeping the Fueled app installed and configured for your storefront.

<figure><img src="https://images.spr.so/cdn-cgi/imagedelivery/j42No7y-dcokJuNgXeA0ig/fdddceed-0062-4d84-a720-b968b6254c9d/Image_2022-10-17_at_6.20.23_PM/w=1920,quality=80" alt=""><figcaption></figcaption></figure>

### Getting Help <a href="#block-c403b8dd435a4cc78fdb9253b0afaec8" id="block-c403b8dd435a4cc78fdb9253b0afaec8"></a>

While Fueled has provided this app to Shopify merchants for free, we do our best to support the wonderful merchants who choose to leverage our software.

You can get in touch with us at: <support@fueled.io>.

You might also considering [joining our Community Slack Channel,](/more-info/get-support) where consultants, developers, and other merchants are available to lend a hand.


# BigCommerce Event Tracking


# Working with Fueled’s BigCommerce Data Layer

## Why Leverage Fueled’s Data Layer?

If a merchant needs to set up multiple client-side attribution scripts to run on their BigCommerce store, leveraging our data layer can help ensure that the same event data is sent to all destinations. Our data layer defines a data model in one place for consistent tracking and metrics.

## Enabling Fueled’s Data Layer

Fueled’s data layer is enabled whenever our scripts are enabled via Scripts Manager.

## Data Layer Object Definitions

See [our data layer object definitions documentation](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/ga4-bigcommerce-app-event-definitions).

## Leveraging Fueled’s Data Layer with Google Tag Manager

> ⚠️ **We are not fans of GTM here at Fueled…** While Google Tag Manager remains a popular way for marketing teams to inject and manage attribution tags and other scripts on their website, GTM is highly problematic:
>
> * Google Tag Manager is stripped from websites by ad blockers up to 12% of the time in the United States.
> * It’s difficult to document and control attribution configuration with GTM.
> * It’s difficult to debug errors in attribution scripts that are managed via GTM.
>
> That said, you can still leverage Google Tag Manager with our data layer to help ensure consistent tracking and client-side metrics.

Fueled’s data layer is instantiated in the DOM’s window\.dataLayer object, as a variable called <mark style="color:red;">`fueled`</mark>.

Inside your Google Tag Manager instance, you can map the data layer to the variables you need for GTM events.

Go “Variables” and click “New” to to create new user-defined variables.

<figure><img src="/files/AoYqsBEx7jroZA8Ah1Lk" alt=""><figcaption></figcaption></figure>

Then click “Data Layer Variable” as seen below.

<figure><img src="/files/2R2vOmsovXUNklBLFd5F" alt=""><figcaption></figcaption></figure>

An example of how you would access properties of Fueled’s data layer are described in the screenshot below.

<figure><img src="/files/XD4KBUvNvNU3rYM5Z1tu" alt=""><figcaption></figcaption></figure>

<mark style="color:red;">`fueled`</mark> is the javascript variable to which we populate all of our event and data layer data. To access customer-related data (when a shopper is logged in), you’d select values such as:

* <mark style="color:red;">`fueled.customer.first_name`</mark>
* <mark style="color:red;">`fueled.customer.email`</mark>

## Getting Assistance with Fueled’s Data Layer

For help working with our data layer, please consider [joining our Community Slack Channel.](/more-info/get-support)


# Customizing Client-Side BigCommerce Events

## When to Customize Client-Side Tracking for Fueled’s GA4 Connector App

By default, Fueled’s GA4 Connector App for BigCommerce tracks ten different types of customer events. An out-of-the-box installation of our app on a standard BigCommerce theme, one that uses BigCommerce’s core theme components and Script Manager, should cover the vast majority of your attribution use cases.

That said, if any of the following are true for your storefront, it might make sense to extend your attribution tracking with Fueled to cover your specific use cases:

* You are leveraging a third-party shopping cart app, or you have “upsells” and “product recommendation” widgets on your cart and checkout pages.
* You have highly-customized product collections pages that allow shoppers to interact with product variants without first going to the product description pages.
* You offer product bundles or other custom “add to cart” experiences on your product pages.

You might also consider *adding additional client-side event tracking*, following Google Analytics 4’s event specification, describe here:

<https://developers.google.com/analytics/devguides/collection/ga4/reference/events>

## Turning Off Fueled’s Default Client-Side Events

Generally speaking, you are likely to add additional custom events to your client-side attribution setup, rather than turning off Fueled’s events. That said, if you want to fully customize your client-side tracking with Fueled, you can turn off our events, and simply use our data layer and client-side library:

<figure><img src="/files/h5ycr63qXUiCjYodiAbG" alt=""><figcaption></figcaption></figure>

## Respecting Customer’s Privacy Preferences

Fueled’s GA4 Connector App for BigCommerce includes a setting for respecting shopper’s privacy preferences. This setting applies to all of the client-side events that we track.

If you’re setting up your own custom events with Fueled’s client-side library, you will need to follow these best practices on your own, leveraging BigCommerce’s privacy settings, including BigCommerce’s privacy cookie and [Scripts Manager privacy features](https://support.bigcommerce.com/s/article/Using-Script-Manager).


# GA4 BigCommerce App Event Definitions

> 📌 ***Bookmark this page.*** Understanding how attribution metrics are derived and how event properties are translated from one platform to another can be difficult. Our team is committed to taking the guesswork out of managing attribution. The definitions below are shared to provide transparency and clarity in setting up and maintaining your attribution model.

## Naming Conventions <a href="#block-3257b12bcbfb44cdbd0b8c5d203a8a27" id="block-3257b12bcbfb44cdbd0b8c5d203a8a27"></a>

One of the challenges in attribution tracking is that every platform, from BigCommerce to Google Analytics to Facebook Ads to Segment, uses different naming conventions to describe a shopper’s behavioral events, and the properties of those events.

It’s Fueled’s job handle all of these translations on behalf of our merchants. However, if you are looking to [customize any of your Fueled events](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/bigcommerce-event-tracking/customizing-client-side-bigcommerce-events), it’s helpful to understand and adopt our naming conventions to keep your data clean and consistent.

### Event Naming Convention <a href="#block-25f8c3917edb42f2b4cc6e6921a147dc" id="block-25f8c3917edb42f2b4cc6e6921a147dc"></a>

Fueled’s internal event naming convention follows the **“Object-Action Framework.**” What that means is that event names begin with the object upon which an action occurs, followed by a past-tense verb describing the action.

For example: when a user visits a product description page, we refer to this event as a <mark style="color:red;">`Product Viewed`</mark> event, ***not*** a <mark style="color:red;">`Viewed Product`</mark> or <mark style="color:red;">`viewed_product`</mark> event. The majority of CDPs and attribution platforms follow this Object-Action Framework. (Google Analytics, however, does the opposite.)

Moreover, Fueled events are Title Cased, and use spaces between the Object and the Action. Google Analytics, on the other hand, uses snake\_case naming.

***Note: If you are exclusively leveraging Fueled’s GA4 Connector App for BigCommerce, you don’t need to worry about Fueled’s naming convention, as events will show up in Google Analytics correctly, using Google’s event schema.***

#### Event Mapping between Fueled and Google Analytics <a href="#block-28be394cc7bb481198a55196e6ad8c66" id="block-28be394cc7bb481198a55196e6ad8c66"></a>

<table data-full-width="true"><thead><tr><th width="146">Fueled</th><th width="142">Google Analytics</th><th width="120" align="center">Automatically Tracked with Fueled’s GA4 App?</th><th>Notes</th></tr></thead><tbody><tr><td>Product Added</td><td>add_to_cart</td><td align="center"><strong>✅</strong></td><td>If your storefront theme is based upon one of BigCommerce’s Stencil themes, and you haven’t customized the HTML markup of your “Add to Cart” buttons, these events should automatically fire with our client-side tracking script.</td></tr><tr><td>Product Added to Wishlist</td><td>add_to_wishlist</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Checkout Started</td><td>begin_checkout</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a client-side event by default.</td></tr><tr><td>Account Logged In</td><td>login</td><td align="center"><strong>✅</strong></td><td>If your storefront theme is based upon one of BigCommerce’s Stencil themes, and you haven’t customized the HTML markup of your account screens, these events should automatically fire with our client-side tracking script.</td></tr><tr><td>Promotion Clicked</td><td>select_promotion</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Order Completed</td><td>purchase</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a server-side event by default.</td></tr><tr><td>Order Refunded</td><td>refund</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library. It is not tracked out of the box.</td></tr><tr><td>Page Viewed</td><td>pageview</td><td align="center"><strong>✅</strong></td><td><mark style="color:red;"><code>pageview</code></mark> events sent directly from Google Analytics 4’s client-side library from the website to GA4. This is required to trigger Google Signals and assign the client-side events a Google Customer ID.</td></tr><tr><td>Product Removed</td><td>remove_from_cart</td><td align="center"><strong>✅</strong></td><td>This event fires when a shopper removes a product from the full-page shopping cart page (/cart). There may be other places in a merchant’s storefront where products can be removed from the cart. Such events can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Products Searched</td><td>search</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product Clicked</td><td>select_item</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Product Shared</td><td>share</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s bigCommerce Stencil theme, leveraging Fueled’s javascript library.</td></tr><tr><td>Account Created</td><td>sign_up</td><td align="center"><strong>✅</strong></td><td>Fueled tracks this event as a server-side event by default.</td></tr><tr><td>Cart Viewed</td><td>view_cart</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product Viewed</td><td>view_item</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side.</td></tr><tr><td>Product List Viewed</td><td>view_item_list</td><td align="center"><strong>✅</strong></td><td>Fueled tracks these events client-side, if your storefront is using standard “Collections” pages.</td></tr><tr><td>Promotion Viewed</td><td>view_promotion</td><td align="center"><strong>❌</strong></td><td>This event can be custom coded into a merchant’s BigCommerce theme, leveraging Fueled’s javascript library.</td></tr></tbody></table>

### Property Naming Convention <a href="#block-d99d1de591644620b01f502332703533" id="block-d99d1de591644620b01f502332703533"></a>

Fueled uses <mark style="color:red;">`camelCasing`</mark> when labeling event properties. Google Analytics typically uses <mark style="color:red;">`snake_casing`</mark>.

## Fueled’s Data Layer Objects <a href="#block-dd61ef50aa244cc7aad960771ad69723" id="block-dd61ef50aa244cc7aad960771ad69723"></a>

When Fueled’s GA4 Connector App is installed, we provide an option for enabling a theme extension that installs a data layer and, optionally, injects client-side event tracking. You can leverage this data layer for your own purposes. Doing so is actually a great idea, as it helps ensure that you are using the data storefront variables across all of your client-side attribution scripts.

Our data layer exposes the following objects in your theme.

### Customer Object <a href="#block-17cdf032d93d42389a8c5f423074cdbc" id="block-17cdf032d93d42389a8c5f423074cdbc"></a>

The Customer Object is only exposed when a shopper is logged into your store.

<table data-full-width="true"><thead><tr><th width="128">Property</th><th width="117" align="center">Type</th><th width="244">BigCommmerce Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td align="center"><code>String</code></td><td>customer.first_name + customer.last_name</td><td>The shopper’s first and last name as a single value.</td></tr><tr><td>externalCustomerId</td><td align="center"><mark style="background-color:orange;"><code>String</code></mark></td><td>customer.id</td><td>BigCommerce’s unique identifier for the customer.</td></tr><tr><td>email</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.email</td><td>The customer’s email address.</td></tr><tr><td>firstName</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.first_name</td><td>The customer’s first name.</td></tr><tr><td>lastName</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.last_name</td><td>The customer’s last name.</td></tr><tr><td>address</td><td align="center"><code>Object</code></td><td>N/A (This object is generated using the BigCommerce storefront API variables listed below.)</td><td>The Address Object is made up of the following properties.</td></tr><tr><td>address.street</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.street</td><td>The customer’s default street address.</td></tr><tr><td>address.city</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.city</td><td>The customer’s default city.</td></tr><tr><td>address.state</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.province</td><td>The customer’s default state or province.</td></tr><tr><td>address.postalCode</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.zip</td><td>The customer’s default zip code.</td></tr><tr><td>address.countryCode</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>customer.default_address.country_code</td><td>The customer’s default country code.</td></tr></tbody></table>

### Product Object <a href="#block-3e53cc4791bf421d8fcea45fed7dc61b" id="block-3e53cc4791bf421d8fcea45fed7dc61b"></a>

Product objects are exposed both on individual product pages, and as an array of products on Collection pages and so forth.

<table data-full-width="true"><thead><tr><th width="136">Property</th><th width="135" align="center">Type</th><th width="193">BigCommerce Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>productId</td><td align="center"><mark style="background-color:orange;">String</mark></td><td><a href="http://product.id/">product.id</a></td><td>BigCommerce’s globally-unique identifier.</td></tr><tr><td>sku</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.selected_or_first_available_variant.sku</td><td>The BigCommerce SKU for either the selected product, or for the first available variant on a product page.</td></tr><tr><td>quantity</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>cartItemsJson[i].quantity</td><td>Note: only exposed on Cart pages, via the Cart JSON object.</td></tr><tr><td>variant</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.selected_or_first_available_variant.id</td><td>BigCommerce’s globally-unique identifier for either the selected product, or for the first available variant on a product page.</td></tr><tr><td>name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.title</td><td>The product’s title.</td></tr><tr><td>price</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>product.price / 100</td><td>The price of the currently selected product or variant.</td></tr><tr><td>brand</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.vendor</td><td>The product’s vendor name.</td></tr><tr><td>position</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>N/A (Position is calculated for each product in a collection, carousel, or shopping cart.)</td><td>The position of the product in either a Collection or the Cart is calculated. Positioning starts with “1.”</td></tr><tr><td>url</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.url</td><td>The product’s online URL</td></tr><tr><td>imageUrl</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.featured_image</td><td>The URL of the feature product image.</td></tr><tr><td>category</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>product.type</td><td>The product categorization/type.</td></tr></tbody></table>

### Cart Object <a href="#block-f0e66404a39b49ec812c06630d6cd19a" id="block-f0e66404a39b49ec812c06630d6cd19a"></a>

Exposed on the cart page (<https://examplestore.com/cart>).

<table data-full-width="true"><thead><tr><th width="131">Property</th><th width="131" align="center">Type</th><th width="180" align="center">BigCommerce Storefront API Value</th><th>Description</th></tr></thead><tbody><tr><td>products</td><td align="center"><mark style="background-color:blue;">Array</mark></td><td align="center">N/A</td><td>The products array in the Cart Object uses the data structure described for the <a href="https://learn.fueled.io/ga4-connector-for-bigcommerce/ga4-bigcommerce-app-event-definitions">Product Object</a>.</td></tr><tr><td>total</td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td align="center">cart.total_price</td><td>Note: The bigCommerce cart <mark style="color:red;"><code>total_price</code></mark> is equal to the purchase price of each product line item, times the quantity of each line item, minus discounts. It does <em><strong>not</strong></em> include taxes or shipping.</td></tr></tbody></table>

## GA4 Client-Side Events <a href="#block-19648aefd4f84a248b7f98948d102bcf" id="block-19648aefd4f84a248b7f98948d102bcf"></a>

The following events are sent client-side, from your BigCommerce storefront to Google Analytics 4, via our javascript library, which is installed into your active BigCommerce theme. These are the default events that Fueled tracks out of the box. Additional [tracking events can be added to your theme](https://learn.fueled.io/bf4547ae8053451e834d68c50aeea238) with a small amount of custom code.

*Note: Fueled currently supports event properties marked with **✅**. Properties marked with **❌** are not currently supported.*

### add\_to\_cart <a href="#block-a7e30ac1bad748bd9de1a22d50b82eab" id="block-a7e30ac1bad748bd9de1a22d50b82eab"></a>

This event fires when an item is added to a cart for purchase.

GA4’s <mark style="color:red;">`add_to_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Added`</mark> event specification. The <mark style="color:red;">`add_to_cart`</mark> event is populated with the following properties.

*Note: The “add to cart” experiences on a BigCommerce theme are often heavily customized. Fueled’s out-of-the-box* <mark style="color:red;">`add_to_cart`</mark> *attribution events only cover standard use cases. Customized tracking scripts may be needed to capture all* <mark style="color:red;">`add_to_cart`</mark> *events on your website.*

<table data-full-width="true"><thead><tr><th width="123">GA4 Event Property</th><th width="93" align="center">Supported</th><th width="108" align="center">Type</th><th width="144">Corresponding Fueled Property</th><th width="141">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td><mark style="color:red;"><code>currency</code></mark> is not included in Fueled’s top-level <code>Product Added</code> event schema. It is calculated from the <mark style="color:red;"><code>currency</code></mark> values passed as part of the <mark style="color:red;"><code>items</code></mark> array.</td><td>currency is not available within the BigCommerce Storefront API <mark style="color:red;"><code>product</code></mark> object. Therefore, it is calculated when needed.</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td><mark style="color:red;"><code>value</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Product Added</code></mark> event schema. It is calculated from the individual products in Fueled’s <mark style="color:red;"><code>product</code></mark> array (which is the equivalent of GA4’s <mark style="color:red;"><code>items</code></mark> array).</td><td>Calculated, based upon the subtotal of the items being added to the cart (ie, price minus discounts, not including shipping or taxes).</td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartLine.quantity</td><td>Item quantity added to a cart, an order, etc.</td></tr></tbody></table>

> 👓 Fueled’s Product Added event schema also includes <mark style="color:red;">`cartId`</mark>, which is exposed to other Fueled destinations, such as [Segment](https://segment.com/). <mark style="color:red;">`cartId`</mark> represents the unique identifier of a shopping cart. We use cartId to connect GA4 carts, checkouts, and orders in our backend. However, cartId is not passed directly to GA4, given GA4’s PII requirements.

### begin\_checkout <a href="#block-d3ffa9f970e94eddb5cd701fe7daa5ec" id="block-d3ffa9f970e94eddb5cd701fe7daa5ec"></a>

GA4’s <mark style="color:red;">`begin_checkout`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Order Completed`</mark> event specification. The begin\_checkout event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="131">GA4 Event Property</th><th width="100" align="center">Supported</th><th width="91" align="center">Type</th><th width="116">Corresponding Fueled Property</th><th width="115">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td></td><td></td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td></td><td></td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td></td><td></td><td>The coupon name/code associated with the event. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Admin API</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

### login <a href="#block-f995bab9ba1345cfa9649d05ef5bc30c" id="block-f995bab9ba1345cfa9649d05ef5bc30c"></a>

This event fires when a shopper logs into a BigCommerce storefront. Currently, the event is logged with no additional properties.

<table data-full-width="true"><thead><tr><th width="126">GA4 Event Property</th><th width="94" align="center">Supported</th><th width="101" align="center">Type</th><th width="116">Corresponding Fueled Property</th><th width="125">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>method</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The method used to login.</td></tr></tbody></table>

### pageview <a href="#block-778c05e0e5bc4a89b68006664ad73dc1" id="block-778c05e0e5bc4a89b68006664ad73dc1"></a>

Fueled’s GA4 Connector for BigCommerce injects Google GTag.js script on each BigCommerce storefront page load. This allows Google Analytics 4 to directly track page view events. We do this, because this tag needs to fire to instantiate a GA4 Customer ID client-side.

To learn more about what GA4 collects for each page view event, visit [GA4’s event documentation site](https://support.google.com/analytics/answer/11403294).

### remove\_from\_cart <a href="#block-0ef6726c6fdc4a55b876bc2c556a6d94" id="block-0ef6726c6fdc4a55b876bc2c556a6d94"></a>

This event fires when an item is removed from a shopping cart.

GA4’s <mark style="color:red;">`remove_from_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Removed`</mark> event specification. The <mark style="color:red;">`remove_from_cart`</mark> event is populated with the following properties.

*Note: Fueled’s out-of-the-box client-side event tracking only tracks* <mark style="color:red;">`remove_from_cart`</mark> *events that occur on BigCommerce’s standard cart page. Customizations may be required to track all* <mark style="color:red;">`remove_from_cart`</mark> *events in a merchant’s theme.*

<table data-full-width="true"><thead><tr><th width="155">GA4 Event Property</th><th width="89" align="center">Supported</th><th width="96" align="center">Type</th><th width="113">Corresponding Fueled Property</th><th width="144">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartLine.quantity</td><td>Item quantity removed from a cart, an order, etc.</td></tr></tbody></table>

### search <a href="#block-b1164e27d09c408a89ba43a5b03c0ab4" id="block-b1164e27d09c408a89ba43a5b03c0ab4"></a>

This event fires when a shopper uses BigCommerce’s built-in search..

GA4’s <mark style="color:red;">`search`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Search`</mark> event specification. The **search** event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="107">GA4 Event Property</th><th width="102" align="center">Supported</th><th width="61" align="center">Type</th><th width="103">Corresponding Fueled Property</th><th width="188">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>search_term</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>query</td><td>search.terms</td><td>The terms used for the search event.</td></tr></tbody></table>

### view\_cart <a href="#block-23ad108cfe9940b3b4c3f52948889ec8" id="block-23ad108cfe9940b3b4c3f52948889ec8"></a>

This event fires when a shopper views their BigCommerce cart.

GA4’s <mark style="color:red;">`view_cart`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Cart Viewed`</mark> event specification. The <mark style="color:red;">`view_cart`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="126">GA4 Event Property</th><th width="101" align="center">Supported</th><th width="102" align="center">Type</th><th width="158">Corresponding Fueled Property</th><th width="129">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td><mark style="color:red;"><code>currency</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Cart Viewed</code></mark> event schema. It is calculated from the <mark style="color:red;"><code>currency</code></mark> values passed as part of the <mark style="color:red;"><code>items</code></mark> array.</td><td>currency is not available within the BigCommerce Storefront API <mark style="color:red;"><code>product</code></mark> object. Therefore, it is calculated when needed.</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td><mark style="color:red;"><code>value</code></mark> is not included in Fueled’s top-level <mark style="color:red;"><code>Cart Viewed</code></mark> event schema. It is calculated from the individual products in Fueled’s <mark style="color:red;"><code>product</code></mark> array (which is the equivalent of GA4’s <mark style="color:red;"><code>items</code></mark> array).</td><td>Calculated, based upon the subtotal of the items being added to the cart (ie, price minus discounts, not including shipping or taxes).</td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>cartItemsJson[i].id (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>cartItemsJson[i].title (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <code>discount</code> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>cartItemsJson[i].vendor (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>N/A</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>cartItemsJson[i].variant_id.toString() (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>cartItemsJson[i].final_price / 100 (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr><tr><td>items.$.quantity</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.quantity</td><td>cartItemsJson[i].quantity (Note: rather than pull from a BigCommerce theme variable. On the cart page, we pull this value from the Cart JSON object.)</td><td>Item quantity added to a cart, an order, etc.</td></tr></tbody></table>

### view\_item <a href="#block-6ccafd38e1e64eb0ae9758e8609e7b1d" id="block-6ccafd38e1e64eb0ae9758e8609e7b1d"></a>

This event fires when a shopper views a BigCommerce product page.

GA4’s <mark style="color:red;">`view_item`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product Viewed`</mark> event specification. The <mark style="color:red;">`view_item`</mark> event is populated with the following properties.

*Note: GA4’s view\_item event expects that the viewed product is returned in an array, even though it has a single item in that array.*

<table data-full-width="true"><thead><tr><th width="124">GA4 Event Property</th><th width="93" align="center">Supported</th><th width="84" align="center">Type</th><th width="126">Corresponding Fueled Property</th><th width="133">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>N/A</td><td>N/A</td><td></td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used. If set, event-level location_id is ignored. If not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

### view\_item\_list <a href="#block-1d988832e1a8455a89485957265bb418" id="block-1d988832e1a8455a89485957265bb418"></a>

This event fires when a shopper views a BigCommerce collections page.

GA4’s <mark style="color:red;">`view_item_list`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Product List Viewed`</mark> event specification. The <mark style="color:red;">`view_item_list`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="114">GA4 Event Property</th><th width="87" align="center">Supported</th><th width="93" align="center">Type</th><th width="107">Corresponding Fueled Property</th><th width="138">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list or category page in which an item is presented to the user.</td></tr><tr><td>item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list or category page in which an item is presented to the user.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:blue;">Array</mark></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Storefront API.</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.index</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.position</td><td>The position of an item/product in a storefront collection, carousel, or cart is calculated.</td><td>The index/position of the item in a list. (If applicable.)</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

## GA4 Server-Side Events <a href="#block-f23b8b2e44b0432aa17cbe938e9042fb" id="block-f23b8b2e44b0432aa17cbe938e9042fb"></a>

The following events are sent server-side, from BigCommerce to Google Analytics 4, to ensure the highest-level of attribution tracking possible.

### sign\_up <a href="#block-1880804d82e34a6f8e71a3b2f3590f76" id="block-1880804d82e34a6f8e71a3b2f3590f76"></a>

This event fires when a shopper registers and creates a user account on a BigCommerce store.

GA4’s <mark style="color:red;">`sign_up`</mark> event maps to Fueled’s generalized <mark style="color:red;">`Account Created`</mark> event specification. The <mark style="color:red;">`sign_up`</mark> event is populated with the following properties.

<table data-full-width="true"><thead><tr><th width="119">GA4 Event Property</th><th width="78" align="center">Supported</th><th width="106" align="center">Type</th><th width="113">Corresponding Fueled Property</th><th width="144">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>email</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>email</td><td>customer.email</td><td>The customer’s email address.</td></tr><tr><td>first_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>firstName</td><td>customer.first_name</td><td>The customer’s first name.</td></tr><tr><td>last_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>lastName</td><td>customer.last_name</td><td>The customer’s last name.</td></tr></tbody></table>

### purchase <a href="#block-2e92de9e694d4ed295d6d728fe99db55" id="block-2e92de9e694d4ed295d6d728fe99db55"></a>

<table data-full-width="true"><thead><tr><th width="105">GA4 Event Property</th><th width="105" align="center">Supported</th><th width="101" align="center">Type</th><th width="123">Corresponding Fueled Property</th><th width="131">BigCommerce Object/Property</th><th>Description</th></tr></thead><tbody><tr><td>currency</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td></td><td></td><td>Currency of the items associated with the event, in 3-letter ISO 4217 format. If set, item-level currency is ignored. If not set, currency from the first item in items is used. If you set value then currency is required for revenue metrics to be computed accurately.</td></tr><tr><td>value</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td></td><td></td><td>The monetary value of the event. <mark style="color:red;"><code>Value</code></mark> is typically required for meaningful reporting. Note: By default, Google Analytics recommends that the value of conversion events is equal to the <mark style="color:red;"><code>subtotal</code></mark> value of a cart, checkout, purchase, and so forth, where subtotal includes discounts, but not shipping or taxes. Fueled supports setting the value of carts, checkouts, and orders to <mark style="color:red;"><code>total_price</code></mark>, which includes shipping and taxes.</td></tr><tr><td>coupon</td><td align="center"><strong>❌</strong></td><td align="center"><code>String</code></td><td></td><td></td><td>The coupon name/code associated with the event. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items</td><td align="center"><strong>✅</strong></td><td align="center"><code>Array</code></td><td>products</td><td>An array of product objects, exposed through the BigCommerce Admin API</td><td>An array of <mark style="color:red;"><code>item</code></mark> objects, each with the properties described below.</td></tr><tr><td>items.$.item_id</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.id</td><td>product.id</td><td>The ID of the item.</td></tr><tr><td>items.$.item_name</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.name</td><td>product.title</td><td>The name of the item.</td></tr><tr><td>items.$.affiliation</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>BigCommerce doesn’t support <mark style="color:red;"><code>affiliation</code></mark> at the individual product level.</td></tr><tr><td>items.$.coupon</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.coupon</td><td>N/A</td><td>The coupon name/code associated with the item. Event-level and item-level coupon parameters are independent.</td></tr><tr><td>items.$.currency</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.currency</td><td>N/A</td><td>The currency, in 3-letter ISO 4217 format. If set, event-level currency is ignored. Multiple currencies per event is not supported. Each item should set the same currency.</td></tr><tr><td>items.$.discount</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.discount</td><td>N/A</td><td>The monetary discount value associated with the item. This <mark style="color:red;"><code>discount</code></mark> value, has not been deducted from the item’s <mark style="color:red;"><code>price</code></mark> property.</td></tr><tr><td>items.$.item_brand</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.brand</td><td>product.vendor</td><td>The brand of the item.</td></tr><tr><td>items.$.item_category</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.categories (An array)</td><td>product.collections</td><td>The category of the item. If used as part of a category hierarchy or taxonomy then this will be the first category.</td></tr><tr><td>items.$.item_list_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The ID of the list in which the item was presented to the user. If set, event-level item_list_id is ignored. If not set, event-level item_list_id is used, if present.</td></tr><tr><td>items.$.item_list_name</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The name of the list in which the item was presented to the user. If set, event-level item_list_name is ignored. If not set, event-level item_list_name is used, if present.</td></tr><tr><td>items.$.item_variant</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>products.$.variant</td><td>product.selected_or_first_available_variant.id</td><td>The item variant or unique code or description for additional item details/options.</td></tr><tr><td>items.$.location_id</td><td align="center"><strong>❌</strong></td><td align="center"><mark style="background-color:orange;">String</mark></td><td>N/A</td><td>N/A</td><td>The location associated with the item. It's recommended to use the Google Place ID that corresponds to the associated item. A custom location ID can also be used.\n\nIf set, event-level location_id is ignored.\nIf not set, event-level location_id is used, if present.</td></tr><tr><td>items.$.price</td><td align="center"><strong>✅</strong></td><td align="center"><mark style="background-color:yellow;">Number</mark></td><td>products.$.price</td><td>product.price / 100</td><td>The monetary price of the item, in units of the specified currency parameter. Note: This price does not include line-item discounts, taxes, or shipping. It is the sales price of the item at the time of purchase.</td></tr></tbody></table>

<br>


# Google Ads Connector

New! 🔥🔥  Fueled's Google Ads Connector for BigCommerce allows you to automatically set up Google Ads remarketing tags and Google Ads Enhanced Conversion Tracking.

{% hint style="info" %}
Fueled's Google Ads Connector is a paid feature. Please contact <hello@fueled.io> if you are interested in pricing and learning more.
{% endhint %}

## Overview

Fueled's Google Ads Connector helps merchants properly implement Google Ads event tracking on their website. Proper implementation of Google Ads tracking provides Google Ads with better data, improves customer match rates, and increases return on ad spend.

## Getting Started

Fueled's Google Ads Connector is an advanced feature available to merchants on paid plans. To get started, reach out to <hello@fueled.io>. Once we get you signed up for a paid plan, our team will then enable this feature on your behalf.

## How It Works

Our Google Ads Connector integrates your BigCommerce store with Google Ads in two ways.

### 1. Automatic Remarketing Tag Configuration

If you're using our Google Analytics 4 integration, our Google Ads integration will automatically send Google Ads "Remarketing Events" every time a Google Analytics event fires on your site.

This provides Google Ads with more robust click-stream data to power Google Ads retargeting, audience creation, and machine learning.

### 2. Google Ads Enhanced Conversion Tracking

Fueled installs a Google Ads Conversion Tracking tag on your Order Confirmation page, which includes the correct configuration for "Enhanced Conversion Tracking."

What this means is that our Google Ads integration collects shopper information to send to Google Ads with the purchase conversion event.

Of course, we do not send the customer's contact information to Google in plain text. We *hash* the data so that Google Ads can match against it, while not having direct access to your shopper's contain information.

Google reports that Enhanced Conversion Tracking can improve customer match rates significantly, and (generally speaking) lead to a near-immediate improvement in conversions of 3.5%.


# Segment Connector

> *Fueled's Segment integration is available to BigCommerce merchants on our "Fueled Plus" plan and above.*

## Introduction

[Segment](https://segment.com) is an enterprise Customer Data Platform. Segment is an ideal customer data pipeline/infrastructure solution for BigCommerce merchants facing the following challenges:

* Event tracking needs that span eCommerce storefronts, mobile apps, and custom software systems.
* Complex identity resolution requirements.
* Complex integration needs that require transforming data between systems.

Segment provides javascript libraries and APIs that can be implemented directly into your Shopify store. However, implementing Segment directly can take a lot of time and requires significant expertise. In fact, we originally designed Fueled to address these challenges — after years of manually implementing Segment for Shopify and BigCommerce merchants as consultants.

Fueled takes all of the hard work and time out of implementing Segment for Shopify. With Fueled, you can be up and running with Segment on BigCommerce in just one business day, rather than weeks.

## Getting Started

Fueled's Segment integration leverages a server-side connection to Segment's APIs, via a Node.js connection. To get started, log into Segment and create a Node.js Source:

<figure><img src="/files/NOoTxGCdGordk90UOwpN" alt=""><figcaption><p>Fueled leverages a "Node.js" Source connection from Segment's Connector Catalog.</p></figcaption></figure>

Give the Node.js Connector a meaningful name:

<figure><img src="/files/Vz2Xe9OImFvgUfYbpUqf" alt=""><figcaption><p>Name your Node.js connector</p></figcaption></figure>

Copy the API Writekey for the Connector:

<figure><img src="/files/vSCZCfe3DqO95rxBem5A" alt=""><figcaption><p>Copy the Node.js Connector Writekey.</p></figcaption></figure>

Now, send this Writekey over to our team using OneTimeSecret.com or another secure mechanism, and we'll get your BigCommerce store sending events to Segment right away!

## Our Segment eCommerce Event Specifications

Fueled supports Segment Page, Track, and Identify events:

### Page Events

Page events tract a page load on a website. They automagically pull in basic UTM and campaign data. They can be extended to support additional event properties. An example can be found below:

```javascript
analytics.page({
  path: '/products/sample',
  referrer: '<https://www.example.com/products/sample?variant=123456789>',
  search: '?variant=123456789',
  title: 'Example Product',
  url: '<https://www.example.com/products/sample?variant=123456789>'
});
```

### Track Events

Track events fire when a user takes a specific action. Custom event types and properties can be defined for specific use cases. Standardized event types have also been defined for general use cases, as described below:

{% content-ref url="/pages/EFv9tT9VCzwtwqb70vdl" %}
[Segment Event Specifications](/integrations/destinations/segment.com/segment-event-specifications)
{% endcontent-ref %}

### Identify Events

Identify events *identify* a website or application user, generally by a userId or an email address. When an identify event fires as part of a session that contains Track and Page events associated with a single, anonymous user, all of the events in this session are automatically associated with the identified user. With an Identify event, additional user/customer attributes can be defined and assigned. An example can be found below:

```jsx
analytics.identify("12345abcd78910", {
  name: "Peter Parker",
  email: "[peter@example.com](<mailto:peter@example.com>)",
  address: {
    street: "7th St",
    city: "Queens",
    state: "NY",
    postalCode: "12345",
    country: "USA"
  },
  allOrderIds: "20,67"
});
```

## Advanced Solutions

#### Custom Client-Side Events

Fueled supports custom client-side track events. If you need to track additional types of client-side events, you can simply leverage Fueled's client-side javascript library and these events will flow into Segment.

#### Modifying Event Payloads In Segment

Sometimes, merchants seek to modify the event payloads that Fueled sends to Segment as part of its [standard eCommerce specification](/integrations/destinations/segment.com/segment-event-specifications). To do so, you can use a combination of a [Webhook Destination](https://segment.com/docs/connections/destinations/catalog/actions-webhook/) and a [Source Function](https://segment.com/docs/connections/functions/source-functions/#create-a-source-function) in Segment.

If you have questions about this approach, please contact <support@fueled.io>.


# Data Warehouse Connector

> On our Fueled Plus plan, BigCommerce merchants can take advantage of our data warehouse connector, to stream events into BigQuery, Snowflake or RedShift.

To learn more, please reach out to <support@fueled.io>.


# Sources

Fueled integrates with the following "Sources" of 1st-party data


# Shopify

Fueled was designed to be the ideal 1st-party attribution suite for Shopify.

You can learn more about our Shopify Source Integration at:

{% content-ref url="/pages/IxxVHkvguR8u3fyiw5eJ" %}
[Shopify App](/apps/shopify)
{% endcontent-ref %}


# BigCommerce

Fueled was designed to be the best 1st-party attribution suite on the market for BigCommerce.

Fueled's Advanced Attribution Suite for BigCommerce is the ideal way to integration your BigCommerce store with Google Analytics 4 and Google Ads.

Enterprise BigCommerce merchants also leverage Fueled to integrate with packaged CDPs, like Segment, and data warehouses, like Google BigQuery.

You can learn more about our BigCommerce Source Integration at:

{% content-ref url="/pages/APKVzwMVmGQ7RT3kr6Xb" %}
[BigCommerce App](/apps/bigcommerce-marketplace-app)
{% endcontent-ref %}


# Headless eCommerce

Fueled is fastest, most robust way to configure attribution tracking for your headless (e.g., "composable") eCommerce site.

Fueled integrates with leading headless/composable solutions for Shopify and BigCommerce. If you would like to discuss integrations with custom headless implementations or other composable frameworks, please reach out to use at: <support@fueled.io>.


# Pack Digital

[Pack Digital](https://packdigital.com/) is a leading composable framework for launching world-class Shopify customer experiences quickly.

Fueled offers an out-of-the-box integration for tracking Pack Digital attribution events into Google Analytics, Google Ads, and Facebook Pixel/Conversion API.

Our event tracking specification for Pack Digital sites closely resembles the event specification of our Shopify Markeplace app. You can learn more at:

{% content-ref url="/pages/uTALVlPKdVCGdnMcyyMG" %}
[Shopify Event Tracking](/apps/shopify/shopify-event-tracking)
{% endcontent-ref %}

{% hint style="info" %}
For more information or a demo of our Pack Digital integration, please contact: <support@fueled.io>.
{% endhint %}


# TakeShape

[TakeShape](https://www.takeshape.io/) is a composable framework for building eCommerce experiences. It is build around the concept of a "data mesh," and provides a unified way to build headless eCommerce sites for Shopify, BigCommerce, and Elastic Path.

TakeShape offers a Next.js-based starter project for building composable frontends, called [Penny](https://github.com/takeshape/penny). We offer an out-of-the-box integration for Penny, so that TakeShape merchants can get started with attribution tracking with minimal effort.

For more information on our TakeShape integration, please reach out to <support@fueled.io>.


# Next Commerce

Attribution tracking is a common challenge when launching headless/composable commerce experiences - particularly when leveraging a third-party checkout, such as Shopify's checkout.

Fueled has developed a number of data layer and data layer listeners for React and Next.js headless frameworks, such as [Next Commerce](https://nextjs.org/commerce).

For more information, please contact: <support@fueled.io>.


# Gorgias

Our Gorgias source event integration tracks customer engagement on tickets/issues:

{% content-ref url="/pages/7xXTpgjR9HBHR70sUdK4" %}
[Ticket Created](/integrations/sources/gorgias/ticket-created)
{% endcontent-ref %}

{% content-ref url="/pages/7dcYVbE5a3FFE8NdIfLp" %}
[Ticket Updated](/integrations/sources/gorgias/ticket-updated)
{% endcontent-ref %}


# Ticket Created

When a ticket is created in Gorgias, the following server-side Track Event fires.

```json
{
  "context": {
    "library": {
      "name": "unknown",
      "version": "unknown"
    }
  },
  "event": "Ticket Created",
  "integrations": {},
  "messageId": "api-45JaGKlJrpIsdrlkj3555glkjgjW x",
  "originalTimestamp": "2022-06-27T17:04:01+00:00",
  "properties": {
    "assignee": "",
    "channel": "email",
    "name": "sean@example.com",
    "status": "open",
    "subject": "I have a question about sizing",
    "tags": "[]",
    "ticket_id": "12345678910"
  },
  "receivedAt": "2022-06-27T17:04:08.042Z",
  "timestamp": "2022-06-27T17:04:01.000Z",
  "type": "track",
  "userId": "sean@example.com"
}
```


# Ticket Updated

When a ticket is updated in Gorgias, the following server-side Track Event fires:

```json
{
  "context": {
    "library": {
      "name": "unknown",
      "version": "unknown"
    }
  },
  "event": "Ticket Updated",
  "integrations": {},
  "messageId": "api-45JaGKlJrpIsdrlkj3555glkjgjW x",
  "originalTimestamp": "2022-06-27T17:04:01+00:00",
  "properties": {
    "assignee": "",
    "channel": "email",
    "name": "sean@example.com",
    "status": "open",
    "subject": "I have a question about sizing",
    "tags": "[]",
    "ticket_id": "12345678910"
  },
  "receivedAt": "2022-06-27T17:04:08.042Z",
  "timestamp": "2022-06-27T17:04:01.000Z",
  "type": "track",
  "userId": "sean@example.com"
}
```


# Loop Returns

Fueled's Loop Returns Source integration fires server-side when information is received about a return issue. Our integration is built on top of Loop Return's [webhook system](https://docs.loopreturns.com/reference/return-webhook).

*(More documentation coming soon. If you have questions, please reach out to* [*support@fueled.io*](mailto:support@fueled.io)*.)*


# Klaviyo

## What is Fueled?

Fueled is a 1st-party attribution suite for eCommerce. Our Klaviyo integration allows you to send all of your email sends, opens, and click events to dozens of downstream *destinations*, including marketing automation tools, email marketing platforms, data warehouses, business intelligence tools — and enterprise customer data platforms (CDPs) like [Segment](https://segment.com), [mParticle](https://mparticle.com) or [Tealium](https://tealium.com).

Leveraging Fueled’s Klaviyo connector, you can unlock the power of email engagement to build more compelling omni-channel engagement strategies, improve social advertising campaigns, and build better product offers.

## Our Klaviyo connector supports the following server-side events

[Email Opened](/integrations/sources/klaviyo-source-integration/email-opened)

[Email Link Clicked](/integrations/sources/klaviyo-source-integration/email-link-clicked)

[Email Bounced](/integrations/sources/klaviyo-source-integration/email-bounced)

[Email Unsubscribed](/integrations/sources/klaviyo-source-integration/email-unsubscribed)

[Email Marked as Spam](/integrations/sources/klaviyo-source-integration/email-marked-as-spam)

[Newsletter Signup Started/Completed](/integrations/sources/klaviyo-source-integration/newsletter-signup-started-completed)

## Getting Started with Fueled’s Klaviyo Connector

Getting stared with Fueled is easy! Our Klaviyo Connector is available with our “Fueled Plus” plan. [Register with us](/more-info/get-support), and we’ll have your Fueled instance configured within 2-5 business days.

All of your email engagement data will instantly stream into your marketing automation, analytics, and paid advertising tools.

### Pricing

Our Klaviyo integration is available on our “Fueled Plus” plan. *For updated pricing and discount opportunities, please visit our pricing page at:* <https://fueled.io/pricing>.

### Installation

If you’re interested in our Klaviyo integration, our onboarding team can get you set up asap.

## Customer Support

For support for your Klaviyo integration with Fueled, please contact: <support@fueled.io>.


# Email Opened

## Description

This is a server-side event that fires directly from Klaviyo whenever a recipient has opened the HTML message. You need to enable Open Tracking for getting this type of event.

## Instrumentation

This event is implemented server-side via the Klaviyo Source for Fueled.

## Event Properties

<table data-full-width="true"><thead><tr><th width="248.33333333333331">Property</th><th width="195" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>campaign_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign ID</td></tr><tr><td>campaign_name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign name</td></tr><tr><td>email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Campaign specific Email ID</td></tr><tr><td>email_subject</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email subject</td></tr><tr><td>global_email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Global Klaviyo Email ID</td></tr><tr><td>variation_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Variation ID of the email</td></tr></tbody></table>

### Example

```javascript
analytics.track('Email Opened', {
  campaign_id: "12345678",
  campaign_name: "Welcome Email #1",
  email_id: "y_1234895678",
  email_subject: "Welcome to the Dream Team!",
  global_email_id: "l_45623456654654456555",
  variation_id: "WACVw4"
});
```


# Email Bounced

## Description

This is a server side event that fires directly from Klaviyo whenever a receiving server could not or would not accept message

## Instrumentation

This event is implemented server-side via the Klaviyo Source for Fueled.

## Event Properties

<table data-full-width="true"><thead><tr><th width="248.33333333333331">Property</th><th width="195" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>campaign_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign ID</td></tr><tr><td>campaign_name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign name</td></tr><tr><td>email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Campaign specific Email ID</td></tr><tr><td>email_subject</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email subject</td></tr><tr><td>global_email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Global Klaviyo Email ID</td></tr><tr><td>variation_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Variation ID of the email</td></tr></tbody></table>

### Example

```javascript
analytics.track('Email Bounced', {
  campaign_id: "2342342",
  campaign_name: "Welcome Email #1",
  email_id: "r_55533222",
  email_subject: "Welcome to the Dream Team!",
  global_email_id: "a_9334555978074pqwe5985375",
  variation_id: "WUZZp3"
});
```


# Email Unsubscribed

## Description

This is a server side event that fires directly from Klaviyo whenever a recipient clicked on message’s subscription management link

## Instrumentation

This event is implemented server-side via the Klaviyo Source for Fueled.

## Event Properties

<table data-full-width="true"><thead><tr><th width="248.33333333333331">Property</th><th width="195" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>campaign_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign ID</td></tr><tr><td>campaign_name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign name</td></tr><tr><td>email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Campaign specific Email ID</td></tr><tr><td>email_subject</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email subject</td></tr><tr><td>global_email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Global Klaviyo Email ID</td></tr><tr><td>variation_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Variation ID of the email</td></tr></tbody></table>

### Example

```javascript
analytics.track('Email Unsubscribed', {
  campaign_id: "2342342",
  campaign_name: "Welcome Email #1",
  email_id: "r_55533222",
  email_subject: "Welcome to the Dream Team!",
  global_email_id: "m_12334558687372112566499824576",
  variation_id: "WUZZp3"
});
```


# Email Marked as Spam

## Description

This is a server side event that fires directly from Klaviyo whenever a recipient marked message as spam.

## Instrumentation

This event is implemented server-side via the Klaviyo Source for Fueled.

## Event Properties

<table data-full-width="true"><thead><tr><th width="248.33333333333331">Property</th><th width="195" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>campaign_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign ID</td></tr><tr><td>campaign_name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign name</td></tr><tr><td>email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Campaign specific Email ID</td></tr><tr><td>email_subject</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email subject</td></tr><tr><td>global_email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Global Klaviyo Email ID</td></tr><tr><td>variation_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Variation ID of the email</td></tr></tbody></table>

### Example

```javascript
analytics.track('Email Marked as Spam', {
  campaign_id: "12345678",
  campaign_name: "Welcome Email #1",
  email_id: "p_123445678789",
  email_subject: "Welcome to the Dream Team!",
  global_email_id: "u_12345987654098765467580",
  variation_id: "WUZZp3"
});
```


# Email Link Clicked

## Description

This is a server-side event that fires directly from Klaviyo whenever a recipient clicks on a link within the message. You need to enable Click Tracking for getting this type of event.

## Instrumentation

This event is implemented server-side via the Klaviyo Source for Fueled.

## Event Properties

<table data-full-width="true"><thead><tr><th width="265">Property</th><th width="236" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>campaign_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign ID</td></tr><tr><td>campaign_name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The campaign name</td></tr><tr><td>email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Campaign specific Email ID</td></tr><tr><td>email_subject</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email subject</td></tr><tr><td>global_email_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Global Klaviyo Email ID</td></tr><tr><td>variation_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Variation ID of the email</td></tr></tbody></table>

### Example

```javascript
analytics.track('Email Link Clicked', {
  campaign_id: "12345678",
  campaign_name: "Welcome Email #1",
  email_id: "b_23488979098",
  email_subject: "Welcome to the Dream Team!",
  global_email_id: "c_53135jhgfdfg462345555598",
  variation_id: "M4K9p3"
});
```


# Newsletter Signup Started/Completed

## Description

These two events, <mark style="color:red;">`Newsletter Signup Started`</mark> and <mark style="color:red;">`Newsletter Signup Completed`</mark>, fire as a website visitor interacts with the Klaviyo email capture pop-up.

## Instrumentation

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme

## Event Properties

<table data-full-width="true"><thead><tr><th width="267">Property</th><th width="242" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>email</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Email address, only available on <mark style="color:red;"><code>Completed</code></mark></td></tr></tbody></table>

### Example

```javascript
window.analytics.track('Newsletter Signup Completed', {
  email: 'my_email@gmail.com'
});
```


# KnoCommerce Surveys

**Coming soon!** If you are interested in this integration, please reach out to us at:

{% embed url="<https://fueled.io/sign-up>" %}


# ReCharge Payments

Our ReCharge Payments integration is primarily designed to track the following server-side events:

* Subscription Started
* Subscription Paused
* Subscription Canceled

Our Shopify and BigCommerce Apps also track re-billing events triggered by ReCharge Payments out-of-the-box. The value of our ReCharge Payments integration is that it allows you to track the creation and updates to ReCharge subscriptions.

*(Detailed event schema documentation coming soon.)*

### Use Cases

* Analyze customer journies that lead to subscription sign-ups in Google Analytics, MixPanel or Amplitude.
* Measure one-time purchases from shoppers with active subscriptions
* Trigger email and SMS campaigns when customers pause or cancel their subscriptions.


# Yotpo Reviews

## What is Fueled?

Fueled is a 1st-party attribution suite for eCommerce. Our Yotpo integration allows you to send all of your reviews and real-time Yotpo events to dozens of downstream *destinations*, including marketing automation tools, email marketing platforms, data warehouses, business intelligence tools — and enterprise customer data platforms (CDPs) like [Segment](https://segment.com), [mParticle](https://mparticle.com) or [Tealium](https://tealium.com).

Leveraging Fueled’s Yotpo connector, you can unlock the power of customer reviews to build more compelling omni-channel engagement strategies, improve social advertising campaigns, and build better product offers.

You can also leverage our Yotpo integration to set up marketing automations with enterprise platforms like [Iterable](https://iterable.com) or [Airship](https://airship.com).

<figure><img src="/files/TCmNGdtcbTkn24wB9m28" alt=""><figcaption><p>Visualization of Fueled's Yotpo Source integration</p></figcaption></figure>

## Our Yotpo connector supports the following server-side events

{% content-ref url="/pages/r81u9krDmxmIz2eIZB1Y" %}
[Identify](/integrations/sources/yotpo-reviews/identify)
{% endcontent-ref %}

{% content-ref url="/pages/tUdEsnSbemx8pofF3H1w" %}
[Product Reviewed/Review Updated](/integrations/sources/yotpo-reviews/product-reviewed-review-updated)
{% endcontent-ref %}

{% content-ref url="/pages/2wj2yoFFlHsyLUCTLcpi" %}
[Site Reviewed/Review Updated](/integrations/sources/yotpo-reviews/site-reviewed-review-updated)
{% endcontent-ref %}

> 💡 Note: Client-side Yotpo event tracking (i.e., interaction with the Yotpo widget on an eCommerce website) can be accomplished with our Fueled Analytics javascript library. Please contact us for setting up these client-side events by using our [Shopify](https://apps.shopify.com/google-analytics-4-connector) or [BigCommerce](https://www.bigcommerce.com/apps/google-analytics-4-attribution-suite/) apps.

## Fueled::Yotpo Example Use Cases

Fueled’s Yotpo Connector unlocks the potential of real-time Yotpo events to power dozens of use cases. For example:

* Stream Yotpo product and site review events to Google Analytics 4 for enriched journey analytics.
* Stream Yotpo events to your marketing automation platform(s) to trigger personalized email and SMS campaigns.
* Stream Yotpo events to your data warehouse and reverse ETL tools, including RedShift, BigQuery, Snowflake and [Hightouch](https://hightouch.com).
* Stream Yotpo events into your customer data platform (for example, [Segment](https://fueled.io)) to integrate Yotpo with hundreds of other tools and platforms.

## Getting Started with Fueled’s Yotpo Connector

Getting stared with Fueled is easy! Our Yotpo Connector is available with our “Fueled Plus” plan, which starts at $399/month. [Register with us](/more-info/get-support), and we’ll have your Fueled instance configured within 2-5 business days.

All of your product and website reviews will instantly stream into your marketing automation, analytics, and paid advertising tools.

### Pricing

Our Yotpo integration is available on our “Fueled Plus” plan.

*For updated pricing and discount opportunities, please visit our pricing page at:* <https://fueled.io/pricing>.

### Installation

If you’re interested in our Yotpo integration, our onboarding team can get you set up asap. Simply:

1. [Reach out to our team](/more-info/get-support) to set up billing and the creation of your Fueled merchant account.
2. We will send you a verification URL to generate an API key specific to your Yotpo instance.
3. Email us that API key and we’ll take care of the rest.
4. From within Fueled’s user interface, you can then select the **destinations** where you would like to stream your Yotpo events. For advanced destination integrations, we’ll take care of the set up for you, at no additional cost.

## Customer Support

For support for your Yotpo integration with Fueled, please contact: <support@fueled.io>.


# Identify

## Description

This server-side event fires whenever there is a Yotpo event of any kind

## Instrumentation

This event is part of Fueled’s advanced Yotpo Source Connector.

## Event Properties

<table data-full-width="true"><thead><tr><th width="199.33333333333331">Property</th><th width="260" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>email</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The customer’s email address</td></tr><tr><td>externalCustomerId</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>The customer ID at Yotpo</td></tr></tbody></table>

### Example

```javascript
analytics.identify({
  userId: 'john.smith@gmail.com',
  traits: {
    email: 'john.smith@gmail.com',
    externalCustomerId: '12345678'
  }
});
```


# Product Reviewed/Review Updated

## Description <a href="#block-915304e5e9d24339ae1656dd61c0dc1f" id="block-915304e5e9d24339ae1656dd61c0dc1f"></a>

This server-side event fires when Yotpo receives a product review. This event fires in response to a customer leaving a review directly on a merchant’s storefront, or when submitting a review through an email-based review request.

## Instrumentation <a href="#block-25735b89b4e84a768fc2e47ab2bed0de" id="block-25735b89b4e84a768fc2e47ab2bed0de"></a>

This event is part of Fueled.io’s advanced Yotpo Source Connector.

<table data-full-width="true"><thead><tr><th width="208">Property</th><th width="233" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>product_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Product’s ID</td></tr><tr><td>name</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Product Name</td></tr><tr><td>url</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Product Url</td></tr><tr><td>image_url</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Product Image Url</td></tr><tr><td>review_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review ID</td></tr><tr><td>review_body</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review body</td></tr><tr><td>rating</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review rating</td></tr></tbody></table>

### Example

```javascript
analytics.track('Product Reviewed', {
  product_id: '507fasfgr5563377bcf86dv769429912',
	name: 'Monopoly: 3rd Edition',
	url: 'https://www.example.com/product/path',
  image_url: 'https://www.example.com/product/path.jpg'
  review_id: 'gafers29fj456233jl2',
  review_body: 'I love this product',
  rating: '5'
});
```


# Site Reviewed/Review Updated

## Description

This server-side event fires when Yotpo receives a product review. This event fires in response to a customer leaving a review directly on the merchant’s website, or when submitting a review through an email-based review request.

## Instrumentation

This event is part of [Fueled.io](http://Fueled.io)’s advanced Yotpo Source Connector.

## Event Properties

<table data-full-width="true"><thead><tr><th width="250">Property</th><th width="263" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>review_id</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review ID</td></tr><tr><td>review_body</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review body</td></tr><tr><td>rating</td><td align="center"><mark style="background-color:orange;">String</mark></td><td>Review body</td></tr></tbody></table>

### Example

```javascript
analytics.track('Site Reviewed', {
  review_id: 'hjkkgfdfghde338765432ghijas3',
  review_body: 'I love this website',
  rating: '5'
});
```


# WordPress

While the vast majority of our customers are on Shopify or BigCommerce, Fueled can be used for tracking events on content-driven sites. We can integrate Fueled for you on WordPress, Drupal, or event static HTML websites.

This can be particularly useful if you are an eCommerce brand leveraging a content management system or other "landing page" solution, and you want to track customer journeys from these sites to your main eCommerce website.


# Destinations

Fueled can push 1st-party customer events to the following "Destinations"


# Google Analytics 4

To learn more about our Google Analytics 4 Destination and event specifications, please visit our Shopify and BigCommerce app documentation.

### Shopify:

{% content-ref url="/pages/uwV6jNTpQJHd5v4gxbBQ" %}
[GA4 Shopify App Event Definitions](/apps/shopify/google-analytics-4-connector/ga4-shopify-app-event-definitions)
{% endcontent-ref %}

### BigCommerce:

{% content-ref url="/pages/OvgCPoFCnxKfy6IoaBcw" %}
[GA4 BigCommerce App Event Definitions](/apps/bigcommerce-marketplace-app/google-analytics-4-connector/ga4-bigcommerce-app-event-definitions)
{% endcontent-ref %}


# Google Ads

To learn more about our Google Ads Destination and event specifications, please visit our Shopify and BigCommerce app documentation:

### Shopify:

{% content-ref url="/pages/8CbYDYOcAi90SqiogGrr" %}
[Google Ads Connector](/apps/shopify/google-ads-connector)
{% endcontent-ref %}

### BigCommerce:

{% content-ref url="/pages/28pQ45720onDwiefBFyg" %}
[Google Ads Connector](/apps/bigcommerce-marketplace-app/google-ads-connector)
{% endcontent-ref %}


# Facebook Pixel/CAPI

Our Facebook Pixel/CAPI integration is currently available for Shopify. To learn more, please vist:

{% content-ref url="/pages/1PeGtIpXDWzlCnzS2Ck3" %}
[Facebook Pixel/CAPI Connector](/apps/shopify/facebook-ads-connector)
{% endcontent-ref %}


# Klaviyo

Server-side event tracking that helps your Klaviyo flows perform better.

## Overview

Fueled's Klaviyo destination helps your Klaviyo flows perform better with reliable server-side event tracking. Capture missed shopping events, recognize returning visitors using your own first-party data, and send cleaner customer data to Klaviyo so your flows, segments, and campaigns perform stronger.

## Key Features

### 1. Capture Missed Shopping Events&#x20;

Recover missed Add to Cart, Checkout, and Product View events with server-side tracking so more shoppers enter your highest-converting Klaviyo flows.

### 2. Recognize Returning Visitors

Connect returning shoppers to their existing Klaviyo profiles using your brand's own first-party data so automations continue working across multiple visits.&#x20;

### 3. Improve Data Quality

Send cleaner, more reliable customer and shopping data into Klaviyo with event deduplication and data quality controls that help keep profiles accurate.&#x20;

### 4. Build Better Segments & Personalization&#x20;

Power more accurate audiences with complete behavioral data so your campaigns and automations reach the right customers with more relevant messaging.

## Installation Instructions

### 1. Install the Fueled App from the Shopify Marketplace

If you haven't already, please make sure that you have installed the [Fueled App from the Shopify Marketplace](https://apps.shopify.com/fueled-attribution-suite). Installation instructions for enabling Fueled can be found here: <https://learn.fueled.io/apps/shopify>.

### 2. Enabling Fueled's Klaviyo Destination

Once Fueled has been installed for Shopify, visit the `Email & SMS` tab within the Fueled App UI to configure our Klaviyo integration.&#x20;

{% hint style="info" %}
If you installed the Fueled App after July 1st, 2026, you will only see our Klaviyo Oauth integration option. If you installed the App before July 1st, you will see an option to migrate from a Private API key integration to Klaviyo Oauth.
{% endhint %}

<figure><img src="/files/Wb2Sgpe7cfvCJGcvQroz" alt="Fueled Email and SMS Configuration Screen"><figcaption></figcaption></figure>

Select "Connect with Klaviyo" to begin the Oauth authentication process with your Klaviyo account.

If you have more than one Klaviyo account, you'll be asked to select the associated account:

<figure><img src="/files/jAW26wscXn0bFJDob0lo" alt="Select The Associated Klaviyo Account"><figcaption></figcaption></figure>

Then, approve the Fueled App's Klaviyo permissions request:

<figure><img src="/files/oC3XhAdv61nw16a5tVjO" alt=""><figcaption></figcaption></figure>

Once this is complete, you will return to the Fueled App in Shopify. Confirm that the Oauth integration is complete and that the Klaviyo Destination is enabled:

<figure><img src="/files/YaduRSBwAHfCEqoHmaiS" alt=""><figcaption></figcaption></figure>

### 3. Confirm Event Stream in Klaviyo

Once enabled, the Fueled app will start streaming server-side events into Klaviyo. Fueled events have the suffix `- SS`.

<figure><img src="/files/wi5VHqtF0tcYiUBNqtlU" alt="Confirmation of Fueled Server-Side Metrics in Klaviyo"><figcaption></figcaption></figure>

Once these events are streaming in Klaviyo, you can duplicate your standard "Abandonment Flows" in Klaviyo to fire emails based upon these server-side events.


# Data Warehouses

> Fueled's 1st-party event stream into data warehouses (BigQuery, Snowflake, RedShift) is a game-changer for merchants looking to unlock the power of 1st-party data.

Much more documentation on this functionality will be coming soon, including access to open source [dbt](https://www.getdbt.com/) packages for working with our data directly within your warehouse.

Our data warehouse integration is available for Shopify and BigCommerce merchants on our Fueled Plus plan. For more information and a demonstration, please reach out to: <support@fueled.io>.


# Segment.com

Fueled's [Segment integration](https://segment.com/docs/connections/sources/catalog/cloud-apps/shopify-fueled/) is available to Shopify and BigCommerce merchants on our Fueled Plus plan. You can learn more about our integrations here:

### Shopify:

{% content-ref url="/pages/WXT3m5id9TfoMqelGqk7" %}
[Segment Connector](/apps/shopify/segment-connector)
{% endcontent-ref %}

### BigCommerce:

{% content-ref url="/pages/yth20ie9A01hhaIEcpnl" %}
[Segment Connector](/apps/bigcommerce-marketplace-app/segment-connector)
{% endcontent-ref %}

### To Learn More About Our Segment Event Specifications, Visit:

{% content-ref url="/pages/EFv9tT9VCzwtwqb70vdl" %}
[Segment Event Specifications](/integrations/destinations/segment.com/segment-event-specifications)
{% endcontent-ref %}


# Segment Event Specifications

Fueled supports the following Segment Event Specifications for its [Shopify](/apps/shopify/segment-connector) and [BigCommerce](/apps/bigcommerce-marketplace-app/segment-connector) integrations:

{% content-ref url="/pages/H9cM6WRIOJgA8WOzQGax" %}
[Page](/integrations/destinations/segment.com/segment-event-specifications/page)
{% endcontent-ref %}

{% content-ref url="/pages/9izmUgNVOF42RssBV7pE" %}
[Identify](/integrations/destinations/segment.com/segment-event-specifications/identify)
{% endcontent-ref %}

{% content-ref url="/pages/CKYMPTnHKfkwXMRVbm4Q" %}
[Account Created/Updated](/integrations/destinations/segment.com/segment-event-specifications/account-created-updated)
{% endcontent-ref %}

{% content-ref url="/pages/K2JTTaURoQBoqpRysnze" %}
[Cart Viewed](/integrations/destinations/segment.com/segment-event-specifications/cart-viewed)
{% endcontent-ref %}

{% content-ref url="/pages/3hvxoebPX8wx2SSSdNzn" %}
[Checkout Started](/integrations/destinations/segment.com/segment-event-specifications/checkout-started)
{% endcontent-ref %}

{% content-ref url="/pages/k4J5LxGR13IOxnF9GLEp" %}
[Order Completed](/integrations/destinations/segment.com/segment-event-specifications/order-completed)
{% endcontent-ref %}

{% content-ref url="/pages/ZRm7pkC58JnGttNSf6ir" %}
[Product Added/Removed](/integrations/destinations/segment.com/segment-event-specifications/product-added-removed)
{% endcontent-ref %}

{% content-ref url="/pages/v7b4rRjMCTkCpN1IW0tw" %}
[Product List Viewed](/integrations/destinations/segment.com/segment-event-specifications/product-list-viewed)
{% endcontent-ref %}

{% content-ref url="/pages/WNttIInpDNyIjwALKBFX" %}
[Product Viewed](/integrations/destinations/segment.com/segment-event-specifications/product-viewed)
{% endcontent-ref %}

{% content-ref url="/pages/QUvJLVCB9Zi3j545zcAA" %}
[Products Searched](/integrations/destinations/segment.com/segment-event-specifications/products-searched)
{% endcontent-ref %}


# Page

### Description

This client-side event fires on every Shopify page load, except for product pages, the cart, and checkout.

### Instrumentation

This event is implemented with our javascript analytics library. The tracking code is managed in the Shopify storefront theme.

### Example:

```jsx
analytics.page({
  path: '/products/sample',
  referrer: '<https://www.example.com/products/sample?variant=123456789>',
  search: '?variant=123456789',
  title: 'Example Product',
  url: '<https://www.example.com/products/sample?variant=123456789>'
});
```


# Identify

### Description <a href="#e4e4de98-6d8f-4814-a4f2-f8414cb9d423" id="e4e4de98-6d8f-4814-a4f2-f8414cb9d423"></a>

This client-side event fires whenever a customer is identified on the Shopify storefront. This primarily happens at checkout, or when a use logs in, creates an account on the Shopify store, or self-identifies with an event like the newsletter sign-up.

### Instrumentation <a href="#id-45dab9c2-110b-4c21-831a-10cb6a8e2590" id="id-45dab9c2-110b-4c21-831a-10cb6a8e2590"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

The tracking code is managed in two places:

* An Identify event fires during checkout, leveraging attribution code managed in storefront checkout settings.
* The Identify events that fire when a customer logs in or creates an account are managed in attribution code that’s included in the storefront theme.

**Event Properties**

| Property           | Type            | Description                                  |
| ------------------ | --------------- | -------------------------------------------- |
| email              | String          | The customer’s email address                 |
| name               | String          | The customer’s name                          |
| address            | Array\<Address> | The customer’s address                       |
| address.street     | String          | The customer’s street                        |
| address.city       | String          | The customer’s city                          |
| address.state      | String          | The customer’s state                         |
| address.postalCode | String          | The customer’s postal code                   |
| address.country    | String          | The customer’s country                       |
| allOrderIds        | String          | Comma-separated list of customer’s order IDs |

### Example: <a href="#id-11b25b9d-28d7-4f5a-885d-debf3a036324" id="id-11b25b9d-28d7-4f5a-885d-debf3a036324"></a>

```javascript
analytics.identify({
  userId: 'peter@example.com',
  traits {
    addresses {
      address: {
        firstName: 'Peter',
        lastName: 'Parker',
        street: '7th St',
        city: 'Queens',
        state: 'NY',
        postalCode: '12345',
        country: 'USA'
      },
    }
    createdAt: new Date('2021-01-1T18:11:37.000Z'),
    email: 'peter@example.com',
    externalCustomerId: '48908733345342',
    firstName: 'Peter',
    lastName: 'Parker',
    phone: '+15555555555',
  }
});
```


# Account Created/Updated

### Description <a href="#id-13dcf891-3270-44b5-9ce1-d53866af744d" id="id-13dcf891-3270-44b5-9ce1-d53866af744d"></a>

This event fires when someone creates or updates an account. This event is always accompanied by an Identify event.

### Instrumentation <a href="#id-78ce82ff-f4ef-4aab-9685-7c8f736ff52e" id="id-78ce82ff-f4ef-4aab-9685-7c8f736ff52e"></a>

This event can be implemented with our javascript analytics library, in which case, the tracking code is managed in the storefront theme.


# Cart Viewed

### Description <a href="#ad22bf08-4cc6-4247-8a47-87eaccac4eb0" id="ad22bf08-4cc6-4247-8a47-87eaccac4eb0"></a>

This client-side event fires whenever a customer views their shopping cart.

### Instrumentation <a href="#d60706df-1a98-453b-89ec-340f9bc8d404" id="d60706df-1a98-453b-89ec-340f9bc8d404"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the Shopify storefront theme.

**Event Properties**

| Property               | Type   | Description                            |
| ---------------------- | ------ | -------------------------------------- |
| products               | Array  | Products displayed in the product list |
| products.$.product\_id | String | Product ID displayed on the list       |
| products.$.sku         | String | Sku of the product being viewed        |
| products.$.name        | String | Name of the product being viewed       |
| products.$.brand       | String | Brand associated with the product      |
| products.$.variant     | String | Variant of the product (e.g. Black)    |
| products.$.price       | Number | Price ($) of the product being viewed  |
| products.$.quantity    | Number | Quantity of a product                  |
| products.$.position    | Number | Position in the product list (ex. 3)   |
| products.$.url         | String | URL of the product page                |
| products.$.image\_url  | String | Image url of the product               |

### Example: <a href="#de2bec87-56fe-49b9-9c54-a6d1b6e002d4" id="de2bec87-56fe-49b9-9c54-a6d1b6e002d4"></a>

```javascript
analytics.track('Cart Viewed', {
  products: [
    {
      product_id: '504l1f77bcf86cd799439022',
      sku: '95790-33',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      position: 1,
      url: 'https://www.example.com/product/path',
      image_url: 'https://www.example.com/product/path.jpg'
    },
    {
      product_id: '502bw76585ebp509fc183733',
      sku: '96493-35',
      name: 'Uno Card Game',
      price: 3,
      position: 2
    }
  ]
});
```


# Checkout Started

### Description <a href="#id-40932f46-2fdd-4488-a322-3e8835c5393d" id="id-40932f46-2fdd-4488-a322-3e8835c5393d"></a>

This client-side event fires when a customer starts the checkout process (ie, when they land on the /checkout page — not when they click the “checkout” link on the cart page).

### Instrumentation <a href="#id-31b4615e-e351-40d8-a10f-79cc23eccf0d" id="id-31b4615e-e351-40d8-a10f-79cc23eccf0d"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

💡

Note: Standard Shopify stores do not allow us to inject javascript on the checkout page. However, for Shopify stores built on Shopify Plus, we have access to the checkout page’s theme and can quickly implement this event there. Otherwise, we have to implement this event whenever someone clicks “Check out” on Shopify’s cart page.

**Event Properties**

| Property               | Type   | Description                                                                                                                                                                       |
| ---------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| checkout\_id           | String | Checkout ID                                                                                                                                                                       |
| affiliation            | String | Store or affiliation from which this transaction occurred (e.g. Google Store)                                                                                                     |
| value                  | Number | Revenue ($) with discounts and coupons added in. For better flexibility and total control over tracking, we let you decide how to calculate how coupons and discounts are applied |
| revenue                | Number | Revenue ($) associated with the transaction (excluding shipping and tax)                                                                                                          |
| currency               | String | [Currency code](https://support.google.com/analytics/answer/6205902#supported-currencies) associated with the transaction                                                         |
| products               | Array  | Products in the order                                                                                                                                                             |
| products.$.product\_id | String | Database id of the product being viewed                                                                                                                                           |
| products.$.sku         | String | Sku of the product being viewed                                                                                                                                                   |
| products.$.name        | String | Name of the product being viewed                                                                                                                                                  |
| products.$.brand       | String | Brand associated with the product                                                                                                                                                 |
| products.$.variant     | String | Variant of the product (e.g. Black)                                                                                                                                               |
| products.$.price       | Number | Price ($) of the product being viewed                                                                                                                                             |
| products.$.quantity    | Number | Quantity of a product                                                                                                                                                             |
| products.$.coupon      | String | Coupon code associated with a product (e.g MAY\_DEALS\_3)                                                                                                                         |
| products.$.position    | Number | Position in the product list (ex. 3)                                                                                                                                              |
| products.$.url         | String | URL of the product page                                                                                                                                                           |
| products.$.image\_url  | String | Image url of the product                                                                                                                                                          |

### Example: <a href="#id-55e2feee-104b-411a-96e3-fee8be2462d8" id="id-55e2feee-104b-411a-96e3-fee8be2462d8"></a>

```javascript
analytics.track('Checkout Started', {
  order_id: '20614a8e9bff000150000000',
  affiliation: 'Google Store',
  value: 30,
  revenue: 25.00,
  shipping: 3,
  tax: 2,
  discount: 2.5
  currency: 'USD',
  products: [
    {
      product_id: '503f1f77bcf86cd799439022',
      sku: '42740-32',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      quantity: 1,
      url: 'https://www.example.com/product/path',
      image_url: 'https://www.example.com/product/path.jpg'
    },
    {
      product_id: '505bd76783ebk509cf183783',
      sku: '46443-35',
      name: 'Uno Card Game',
      price: 3,
      quantity: 2
    }
  ]
});
```


# Order Completed

### Description <a href="#id-57eff11f-9986-46a5-9322-41cb7a66da4f" id="id-57eff11f-9986-46a5-9322-41cb7a66da4f"></a>

The `Order Completed` event fires when an order is successfully place. Depending upon a merchant’s needs, Fueled implements this event either client-side or server-side.

### Instrumentation <a href="#f620aac1-0878-4d8c-9f71-04869fa4c5e3" id="f620aac1-0878-4d8c-9f71-04869fa4c5e3"></a>

When implemented client-side, this event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme, and this event fires on the storefront “Thank You” Page once an order has been completed. When implemented server-side, this event fires when Shopify signals (via a webhook) that an order has been placed.

**Event Properties**

| Property               | Type   | Description                                                                                                                                                                       |
| ---------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| order\_id              | Number | Order/transaction ID                                                                                                                                                              |
| affiliation            | String | Store or affiliation from which this transaction occurred (e.g. Google Store)                                                                                                     |
| checkout\_id           | String | Checkout ID                                                                                                                                                                       |
| value                  | Number | Revenue ($) with discounts and coupons added in. For better flexibility and total control over tracking, we let you decide how to calculate how coupons and discounts are applied |
| revenue                | Number | Revenue ($) associated with the transaction (excluding shipping and tax)                                                                                                          |
| shipping               | Number | Shipping cost associated with the transaction                                                                                                                                     |
| tax                    | Number | Total tax associated with the transaction                                                                                                                                         |
| discount               | Number | Total discount associated with the transaction                                                                                                                                    |
| coupon                 | String | Transaction coupon redeemed with the transaction                                                                                                                                  |
| currency               | String | [Currency code](https://support.google.com/analytics/answer/6205902#supported-currencies) associated with the transaction                                                         |
| products               | Array  | Products in the order                                                                                                                                                             |
| products.$.product\_id | String | Database id of the product being viewed                                                                                                                                           |
| products.$.sku         | String | Sku of the product being viewed                                                                                                                                                   |
| products.$.name        | String | Name of the product being viewed                                                                                                                                                  |
| products.$.brand       | String | Brand associated with the product                                                                                                                                                 |
| products.$.variant     | String | Variant of the product (e.g. Black)                                                                                                                                               |
| products.$.price       | Number | Price ($) of the product being viewed                                                                                                                                             |
| products.$.quantity    | Number | Quantity of a product                                                                                                                                                             |
| products.$.coupon      | String | Coupon code associated with a product (e.g MAY\_DEALS\_3)                                                                                                                         |
| products.$.position    | Number | Position in the product list (ex. 3)                                                                                                                                              |
| products.$.url         | String | URL of the product page                                                                                                                                                           |
| products.$.image\_url  | String | Image url of the product                                                                                                                                                          |

### Example: <a href="#a8e741f4-7689-4cf7-98c1-edbd968e81a0" id="a8e741f4-7689-4cf7-98c1-edbd968e81a0"></a>

```javascript
analytics.track('Order Completed', {
  order_id: '10254g8e9bcf0000450035100',
  affiliation: 'Google Store',
  value: 30,
  revenue: 25.00,
  shipping: 3,
  tax: 2,
  discount: 2.5,
  coupon: 'hasbros',
  currency: 'USD',
  products: [
    {
      product_id: '509f1f77bcf86cd739734079',
      sku: '337790-12',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      quantity: 1,
      url: 'https://www.example.com/product/path',
      image_url: 'https://www.example.com/product/path.jpg'
    },
    {
      product_id: '202gr79735evb509fc183733',
      sku: '46932-52',
      name: 'Uno Card Game',
      price: 3,
      quantity: 2,
    }
  ]
});
```


# Product Added/Removed

### Description <a href="#id-0abe1e32-566b-4378-ae70-1488397b49d6" id="id-0abe1e32-566b-4378-ae70-1488397b49d6"></a>

The `Product Added` event is a client-side event that fires whenever a product is added to the customer’s shopping cart. The `Product Removed` event is a client-side event that fires whenever a product is removed from the shopping cart.

### Instrumentation <a href="#id-61f2a383-f37c-4ff9-97d1-627fe5128f2b" id="id-61f2a383-f37c-4ff9-97d1-627fe5128f2b"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

The `Product Removed` event follows the same specification as the `Product Added` Event described below.

**Event Properties**

| Property    | Type   | Description                             |
| ----------- | ------ | --------------------------------------- |
| product\_id | String | Database id of the product being viewed |
| sku         | String | Sku of the product being viewed         |
| category    | String | Product category being viewed           |
| name        | String | Name of the product being viewed        |
| brand       | String | Brand associated with the product       |
| variant     | String | Variant of the product (e.g. Black)     |
| price       | Number | Price ($) of the product being viewed   |
| quantity    | Number | Quantity of a product                   |
| position    | Number | Position in the product list (ex. 3)    |
| url         | String | URL of the product page                 |
| image\_url  | String | Image url of the product                |

### Example: <a href="#id-0883bd5c-0088-4f76-aadd-83b3e078c93f" id="id-0883bd5c-0088-4f76-aadd-83b3e078c93f"></a>

```javascript
analytics.track('Product Added', {
  product_id: '507f1f77bcf86cd799439011',
  sku: 'G-32',
  category: 'Games',
  name: 'Monopoly: 3rd Edition',
  brand: 'Hasbro',
  variant: '200 pieces',
  price: 18.99,
  quantity: 1,
  position: 3,
  url: 'https://www.example.com/product/path',
  image_url: 'https://www.example.com/product/path.jpg'
});
```


# Product List Viewed

### Description <a href="#id-0cf4074b-e96c-468c-be4d-86eb5a6b58e0" id="id-0cf4074b-e96c-468c-be4d-86eb5a6b58e0"></a>

This client-side event fires on the Shopify storefront’s category pages.

### Instrumentation <a href="#id-2c88691b-8084-4fcd-aa9c-95d089972d72" id="id-2c88691b-8084-4fcd-aa9c-95d089972d72"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

**Event Properties**

| Property               | Type            | Description                            |
| ---------------------- | --------------- | -------------------------------------- |
| list\_id               | String          | Product list being viewed              |
| category               | String          | Product category being viewed          |
| products               | Array\<Product> | Products displayed in the product list |
| products.$.product\_id | String          | Product id displayed on the list       |
| products.$.sku         | String          | Sku of the product being viewed        |
| products.$.category    | String          | Product category being viewed          |
| products.$.name        | String          | Name of the product being viewed       |
| products.$.brand       | String          | Brand associated with the product      |
| products.$.variant     | String          | Variant of the product (e.g. Black)    |
| products.$.price       | Number          | Price ($) of the product being viewed  |
| products.$.position    | Number          | Position in the product list (ex. 3)   |
| products.$.url         | String          | URL of the product page                |
| products.$.image\_url  | String          | Image url of the product               |

### Example: <a href="#c3e92d25-6b18-46ec-9044-dc60caa29d7b" id="c3e92d25-6b18-46ec-9044-dc60caa29d7b"></a>

```javascript
analytics.track('Product List Viewed', {
  list_id: 'great_deals_1',
  category: 'Deals',
  products: [
    {
      product_id: '507f1f77bcf26cd799439011',
      sku: '45791-32',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      position: 1,
      category: 'Games',
      url: 'https://www.example.com/product/path',
      image_url: 'https://www.example.com/product/path.jpg'
    },
    {
      product_id: '505bd76785ebb709fc183733',
      sku: '46492-32',
      name: 'Uno Card Game',
      price: 3,
      position: 2,
      category: 'Games'
    }
  ]
});
```


# Product Viewed

### Description <a href="#id-02ef3240-4408-41f3-bec9-eede48353245" id="id-02ef3240-4408-41f3-bec9-eede48353245"></a>

This client-side event fires on the storefront product pages (PDPs).

### Instrumentation <a href="#f566db7b-d919-4e8a-b782-f224176402d1" id="f566db7b-d919-4e8a-b782-f224176402d1"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

💡

Note: We do not fire a Page event on product pages, as this would cause duplicate event data that makes journey analytics more difficult in tools like MixPanel or Amplitude. Some CDPs do recommend that both a page event and a Product Viewed event fire on product pages. That can be accomplished, if a merchant requests it.

**Event Properties**

| Property    | Type   | Description                               |
| ----------- | ------ | ----------------------------------------- |
| product\_id | String | Database id of the product being viewed   |
| sku         | String | Sku of the product being viewed           |
| category    | String | Product category being viewed             |
| name        | String | Name of the product being viewed          |
| brand       | String | Brand associated with the product         |
| variant     | String | Variant of the product (e.g. Black)       |
| price       | Number | Price ($) of the product being viewed     |
| currency    | String | Currency of the transaction               |
| value       | Number | Total value of the product after quantity |
| url         | String | URL of the product page                   |
| image\_url  | String | Image url of the product                  |

### Example: <a href="#df4dd446-be63-48d9-808b-dbc474171e7e" id="df4dd446-be63-48d9-808b-dbc474171e7e"></a>

```javascript
analytics.track('Product Viewed', {
  product_id: '507f1f77bcf86cd799439022',
  sku: 'G-35',
  category: 'Games',
  name: 'Monopoly: 3rd Edition',
  brand: 'Hasbro',
  variant: '200 pieces',
  price: 15.99,
  quantity: 1,
  currency: 'usd',
  position: 3,
  value: 15.99,
  url: 'https://www.example.com/product/path',
  image_url: 'https://www.example.com/product/path.jpg'
});
```


# Products Searched

### Description <a href="#b9eb0bde-3bac-4ecf-870e-a7c20f8a5cdb" id="b9eb0bde-3bac-4ecf-870e-a7c20f8a5cdb"></a>

This client-side event fires when a customer uses the storefront’s search.

### Instrumentation <a href="#b3d8c9b0-8b96-4a4b-bbfc-1c74c8cade7a" id="b3d8c9b0-8b96-4a4b-bbfc-1c74c8cade7a"></a>

This event is implemented with our javascript analytics library. The tracking code is managed in the storefront theme.

**Event Properties**

| Property | Type   | Description  |
| -------- | ------ | ------------ |
| query    | String | Search query |

### Example: <a href="#f9508b50-3336-4c3d-a301-1d40bd55da2c" id="f9508b50-3336-4c3d-a301-1d40bd55da2c"></a>

```javascript
analytics.track('Products Searched', {
  query: 'blue roses'
});
```


# RudderStack

> Fueled's 1st-party event stream into RudderStack is a great way to start leveraging enterprise CDP functionality.

Our [RudderStack](https://www.rudderstack.com/) integration is available for Shopify and BigCommerce merchants on our Fueled Plus plan. For more information and a demonstration, please reach out to: <support@fueled.io>.


# MixPanel and Amplitude

> [MixPanel](https://mixpanel.com/home) and [Amplitude](https://amplitude.com/) are leading customer journey analytics platforms. Our MixPanel and Amplitude integrations are available to Shopify and BigCommerce merchants on Fueled Plus.

For more information and a demonstration, please reach out to: <support@fueled.io>.


# Recipes & Open Source


# BigCommerce, dbt & BigQuery

> BigCommerce provides an out-of-the-box, free ETL for piping BigCommerce data into BigQuery. The following [dbt Package](https://www.getdbt.com/) helps merchants better leverage this data.

{% embed url="<https://github.com/fueled-io/dbt_bigcommerce>" %}


# Working With GA4 Data In BigQuery


# Simple 'Page View to Purchase' Funnel Analysis

The following query is helpful in determining how many purchases in a session included a visit to a specific page on your website.

To get started, update the `FROM` clause to use your BigQuery Project and Dataset. Then, replace `'https://example.com/example-page'` with the page you want to test within this funnel.

```sql
-- CTE to identify all unique sessions
WITH all_sessions AS (
    SELECT DISTINCT
        event_param.value.int_value AS ga_session_id
    FROM 
        `PROJECT.DATASET.events_intraday_*`,
        UNNEST(event_params) AS event_param
    WHERE 
        event_param.key = 'ga_session_id'
),

-- CTE to identify sessions with the specified sales page view
sessions_with_sales_page AS (
    SELECT DISTINCT
        session_param.value.int_value AS ga_session_id
    FROM 
        `PROJECT.DATASET.events_intraday_*`,
        UNNEST(event_params) AS event_param,
        UNNEST(event_params) AS session_param
    WHERE 
        event_name = 'page_view'
        AND event_param.key = 'page_location'
        AND event_param.value.string_value = 'https://example.com/example-page'
        AND session_param.key = 'ga_session_id'
),

-- CTE to identify sessions with a purchase
sessions_with_purchase AS (
    SELECT DISTINCT
        session_param.value.int_value AS ga_session_id
    FROM 
        `PROJECT.DATASET.events_intraday_*`,
        UNNEST(event_params) AS event_param,
        UNNEST(event_params) AS session_param
    WHERE 
        event_name = 'purchase'
        AND session_param.key = 'ga_session_id'
)

-- Main query to compute the counts
SELECT
    (SELECT COUNT(ga_session_id) FROM all_sessions) AS total_unique_sessions,
    (SELECT COUNT(ga_session_id) FROM sessions_with_sales_page) AS sessions_with_sales_page,
    (SELECT COUNT(ga_session_id) FROM sessions_with_sales_page 
     WHERE ga_session_id IN (SELECT ga_session_id FROM sessions_with_purchase)) AS sessions_with_sales_page_and_purchase;
```


# Querying Device Information for Shoppers with Purchases

If you are sending purchase events to Google Analytics 4 via the Measurement Protocol API, you cannot directly send geolocation or user device parameters to Google for the purchase.

However, if you're sending page\_view events client-side, and are stitching together the server-side purchase event tracking before sending to the Measurement Protocol API, you can use simple session stitching to build this report.

See the SQL script below. Update the `FROM` statement with your Google BigQuery dataset ID.

```sql
WITH UsersWithPurchase AS (
    -- Identify users who have made a purchase between Sept 19 to October 19
    SELECT DISTINCT 
        user_pseudo_id
    FROM 
        `PROJECT.DATASET.events_intraday_*`
    WHERE 
        event_name = 'purchase' AND
        event_timestamp BETWEEN UNIX_MICROS(TIMESTAMP("2023-09-19 00:00:00 UTC")) AND UNIX_MICROS(TIMESTAMP("2023-10-19 23:59:59 UTC"))
)

-- Retrieve device details for page views of users who made a purchase and group by device combination
SELECT 
    IFNULL(e.device.category, 'Unknown') AS device_category,
    IFNULL(e.device.mobile_brand_name, 'Unknown') AS device_brand,
    IFNULL(e.device.mobile_model_name, 'Unknown') AS device_model,
    IFNULL(e.device.web_info.browser, 'Unknown') AS browser,
    COUNT(DISTINCT e.user_pseudo_id) AS user_count
FROM 
    `ga-bigquery-integration-367223.analytics_266861172.events_intraday_*` e
JOIN 
    UsersWithPurchase u ON e.user_pseudo_id = u.user_pseudo_id
WHERE 
    e.event_name = 'page_view' AND
    e.event_timestamp BETWEEN UNIX_MICROS(TIMESTAMP("2023-09-19 00:00:00 UTC")) AND UNIX_MICROS(TIMESTAMP("2023-10-19 23:59:59 UTC"))
GROUP BY
    device_category, device_brand, device_model, browser
ORDER BY 
    user_count DESC
```


# Debugging User IDs in GA4 Events

## Context

Be weary of Universal IDs for attribution tracking.

Some work great! But but they can easily break Google Analytics tracking and worsen Facebook signal if misconfigured.

Here's an example: GA4 is funky about setting User IDs on events. If you add User ID to an event in a website session, and then you send GA4 subsequent events in the same session without a User ID, the user will actually get double counted. Same if User IDs change in the session.

This bug can throw off your event data if the Universal ID is slow to load, or if you have multiple applications firing GA4 events.

I've literally seen many examples where the same Shopify shopper gets counted as 5 different users in the same session!!

## Snippet

If you're curious about this issue for your own site, connect GA4 to BigQuery and run this SQL statement:

```sql
WITH ExtractedParams AS (
    SELECT DISTINCT
        event_bundle_sequence_id,
        (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
        (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_number') AS ga_session_number,
        (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_location,
        (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'transaction_id') AS transaction_id,
    FROM 
        `BQ_PROJECT.BQ_DATASET.EVENT_TABLE` -- EDIT ME
)

SELECT 
    FORMAT_TIMESTAMP('%Y-%m-%d %I:%M:%S %p', TIMESTAMP_MICROS(e.event_timestamp), "America/Denver") as formatted_date_in_denver_time, -- Or whatever you want.
    e.event_name,
    ep.ga_session_id,
    ep.ga_session_number,
    e.user_pseudo_id,
    e.user_id,
    --e.event_bundle_sequence_id,
    ep.transaction_id,
    --ep.page_location,
    geo.metro,
    device.operating_system_version,
    device.web_info.browser,
    ecommerce.purchase_revenue,
    ecommerce.tax_value,
    ecommerce.shipping_value,
    --e.*
FROM 
    `BQ_PROJECT.BQ_DATASET.EVENT_TABLE` e -- EDIT ME
LEFT JOIN
    ExtractedParams ep
ON 
    e.event_bundle_sequence_id = ep.event_bundle_sequence_id
    --WHERE e.event_name like "purchase"
    --WHERE ep.ga_session_id = 123456789
ORDER BY 
    ep.ga_session_id,
    e.event_timestamp DESC
```


# Downgrading To Shopify's Free GA4 Connector

## Context

On November 20th, 2023, Fueled is sunsetting its free GA4 Connector. For merchants not interested in upgrading to "Fueled Starter" ($17/month), please follow these steps to turn off Fueled and migrate to Shopify's free GA4 integration.

## Instructions

Downgrading from Fueled to Shopify's built-in GA4 integration takes less than 5 minutes. Simply:

* Uninstall the Fueled App.
  * This will automatically remove all Fueled code in your theme, as well as our server-side integration.
  * If you've manually set up Fueled's [custom pixel integration](/apps/shopify/shopify-event-tracking/custom-pixel/custom-pixel-for-tracking-atc-events), disable it at: Settings » Customer Events.
* Enable Shopify's [Google Shopping/YouTube App](https://apps.shopify.com/google).
  * In enabling this app, you will be asked to authenticate with your Google account.
* Select your GA4 property to connect to Shopify's built-in tracker.

## Differences Between Fueled's GA4 Connector And Shopify's GA4 Integration

Shopify's built-in GA4 integration provides adequate event coverage for most Shopify merchants.&#x20;

Shopify's integration tracks the following event types:

{% embed url="<https://help.shopify.com/en/manual/reports-and-analytics/google-analytics/tracking-ecommerce-events-using-analytics>" %}

The key differences between Shopify's free integration and Fueled's **Starter Plan**, are:

* Fueled provides server-side tracking of two of the most critical GA4 events:
  * begin\_checkout
  * purchase
* Fueled tracks offline purchase events, such as point-of-sale purchases and subscription re-billing events.
* Fueled provides configuration options for selecting the `value` and `transaction_id` parameters sent to GA4
* *On Fueled's "Standard" and "Advanced" plans, merchants can also take advantage of our Google Ads remarketing and conversion event integrations.*


# Demos

Demonstration videos of Fueled's features and best practices


# Configuration In Under 5 Minutes

*Coming soon....*


# News, Articles & Podcasts

## Strong Opinions, Held Loosely

Learn more about attribution tracking and the modern data stack for eCommerce on our Medium blog:

{% embed url="<https://medium.com/fueled-io>" %}

## Podcast Appearances

{% embed url="<https://www.youtube.com/watch?v=ZnbUg9UD-PY>" %}

{% embed url="<https://open.spotify.com/episode/3jJ7MWXXqnzlcOctMPeBRO?nd=1&si=0789b4d29b614215>" %}


# Upgrading To A Paid Fueled Plan On Shopify

{% hint style="info" %}
**ANNOUNCEMENT:** On November 20th at 12 a.m UTC, we will be sunsetting our free GA4 Connector for Shopify. All merchants on our free Shopify app will need to choose a paid plan.
{% endhint %}

## Context

A year ago, we launched our free [Google Analytics connector](https://apps.shopify.com/fueled-attribution-suite) for the Shopify community. That community has grown to over 1,700 merchants in over 75 countries who use our app to track over *150 million monthly events* into Google Analytics 4.

We released this app 5 months before Shopify had its own built-in GA4 integration. We've been proud to support the community with this free tool, online tutorials, and proactive customer support.

Now that Shopify has its own basic GA4 integration, it's time for us to take our app to the next level. After 3 months of testing with a handful of top performing merchants, we are excited to announce the [self-service release of our new advanced features](https://apps.shopify.com/fueled-attribution-suite), including our Google Ads and Facebook Pixel/Conversion API Connectors.&#x20;

## What's New?!?!

Based upon the feedback and feature requests we've received from the community, [this release](https://apps.shopify.com/fueled-attribution-suite) is packed with new features:

* Google Ads Remarketing Events integration
* Google Ads Enhanced Conversion tracking
* Facebook Pixel event tracking
* Facebook Conversion API event tracking
* Shopify Web Pixel API integrations
* Segment.com integration
* Access to our unique 1st-party pixel and domain proxy
* New configuration options for our advanced GA4 integration

...and more!

Plus, every merchant who signs up for a "Fueled Standard" or "Advanced" plan will get access to a dedicated Slack Channel with our support team, so that Fueled can help merchants to get the most out of their Google Analytics, Google Ads, and Facebook Ads attribution and targeting data.

## Sunsetting Our Free Offering

While we’d love to provide this upgraded version absolutely free, our team has poured countless hours into developing, testing, and perfecting it. So after much thought, we've come up with a price that we feel is just enough to keep the lights on and our developers caffeinated:

*Starting this week, we will no longer be offering a free plan for new users.*

We are giving existing users until November 20th to upgrade to our "Fueled Starter Plan" at just $17/month (the cost of a breakfast burrito and coffee).

All merchants can sign up for a 15-day free trial of our new features — including our Google Ads and Facebook CAPI Connectors.

*This means that all merchants currently on our free app have until December 5th to fully migrate to a paid plan.*

For merchants who would prefer a free option, Shopify's built-in GA4 integration has matured a lot this year and is adequate. You can downgrade from Fueled to that integration following [these instructions](https://learn.fueled.io/learning-center/recipes-and-open-source/downgrading-to-shopifys-free-ga4-connector) in under 5 minutes.

\---

Thank you for being on this GA4 migration journey with us and for choosing our app.

Think of it this way — by moving forward with this upgrade, you're not just investing in our product, you're investing in a promise. A promise that we'll continue to evolve, innovate, and give you the best. And in return, you’re helping us to stay afloat, keep improving, and be there for you every step of the way.

Churning would mean breaking this beautiful cycle of giving and receiving. And let's be honest, we’ve kind of grown fond of each other, haven’t we? 😉

So, what do you say? Ready to be a part of this new chapter? Just think of it as grabbing lunch once a month with us (only, instead of burritos, you’re getting a powerhouse of features).

If you have additional questions about this transition, if you would like to learn more about our paid features, or you need help migrating to Shopify’s native integration, please reach out to me directly. You can email me directly at: <sean@fueled.io>. You can also schedule a conversation or demo with me at: <https://calendly.com/sean-fueled>.

With gratitude,\
Sean Larkin, \
CEO and Founder, Fueled.io


# Feature Comparisons

Learn more about how Fueled compares with other 1st-party attribution solutions for Shopify

## Overview

There are four ways to set up attribution tracking for Shopify:

* Use Shopify's built-in integrations for platforms like Google Analytics 4 and Facebook Pixel/Conversion API.
* Implement tags with javascript in your theme.
* Leverage Google Tag Manager, typically with a helper app like [Elevar](https://getelevar.com).
* Use a dedicated Marketplace app like [Fueled](https://fueled.io) or [LittleData](https://littledata.io).

### Detailed Look

<details>

<summary>Shopify's Built-In Integrations</summary>

For small businesses with limited ad spend, Shopify's built-in integrations are adequate. But for merchants really looking to optimize their ad spend and truly understand their customer journeys, Shopify's default integrations are quite limited.

</details>

<details>

<summary>Implementing Your Own Tags</summary>

There are two key benefits to implementing your own attribution tracking tags in code:

* You have full control over the implementation.
* You can version control your tags in your theme code to better manage change.

The downside to implementing your own tags is that few internal teams, or even agencies teams, truly understand all of the ins and outs of implementing these tags.

Moreover, tag-based solutions are entirely *client-side*, meaning they don't tack advantage of new server-side technologies for more accurate tracking and deeper integrations with "offline" tools like re-billing platforms (ReCharge) or point-of-sale solutions.

</details>

<details>

<summary>Solutions Based On Google Tag Manager (e.g., Elevar)</summary>

Google Tag Manager (GTM) seemingly presents many benefits. For example, non-technical users can add tags to your storefront without asking developers for support.

Apps like [Elevar](https://getelevar.com) make it much easier to build out comprehensive GTM-based solutions.

However, Google Tag Manager setups can get fragile and overly complex quickly. It's difficult to manage change and documentation with GTM. One slip up by a *marketing intern* who has access to GTM, and your entire tracking solution can be ruined.

What's worse, when bugs do appear in GTM, it's typically only after a significant period of time, and after significant data has been lost or corrupted.

</details>

<details>

<summary>Dedicated Apps Like Fueled</summary>

Obviously we're biased.

But we believe that dedicated apps that manage attribution tracking configurations in code are the most reliable approach. Many of these apps, including Fueled, will provide javascript libraries and Google Tag Manager templates to provide merchants with the flexibility to customize and extend their tracking plans. But core event tracking is managed in code to provide stability and reliability.

</details>

## Fueled vs. Shopify's Built-In Integrations

<table><thead><tr><th width="542">Feature</th><th width="105.33333333333331">Fueled</th><th>Shopify</th></tr></thead><tbody><tr><td>Google Analytics 4 integration</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Google Ads Remarketing &#x26; Enhanced Conversions</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Facebook Pixel/CAPI integration</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Extendable with Shopify's Web Pixel API</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Managed within the Shopify Admin UI</td><td>     ✅</td><td>     ✅</td></tr><tr><td>"Collection Page" event tracking</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Server-side event tracking</td><td>     ✅</td><td>     ❌</td></tr><tr><td>"Offline" purchase tracking (Point of Sale, ReCharge, etc.)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Extendable data layer and customizable javascript library</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Google Tag Manager ready (with tutorials and default templates)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Configurable purchase events</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Additional event "source" integrations (Gorgias, ReCharge, Loop Returns, Yotpo Reviews, and more)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Segment.com and RudderStack CDP integrations</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Data warehouse integrations (BigQuery, Snowflake, Redshift)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Domain name proxy add-on</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Headless Support (Pack Digital, TakeShape, Next Commerce)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Dedicated support (Email, Slack, Chat)</td><td>     ✅</td><td>     ❌</td></tr></tbody></table>

## Fueled vs. Elevar

<table><thead><tr><th width="542">Feature</th><th width="105.33333333333331">Fueled</th><th>Elevar</th></tr></thead><tbody><tr><td>Google Analytics 4 integration</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Google Ads Remarketing &#x26; Enhanced Conversions</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Facebook Pixel/CAPI integration</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Extendable with Shopify's Web Pixel API</td><td>     ✅</td><td>     ✅</td></tr><tr><td>"Collection Page" event tracking</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Server-side event tracking</td><td>     ✅</td><td>     ✅</td></tr><tr><td>"Offline" purchase tracking (Point of Sale, ReCharge, etc.)</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Google Tag Manager ready (with tutorials and default templates)</td><td>     ✅</td><td>     ✅</td></tr><tr><td>Managed within the Shopify Admin UI</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Extendable data layer and customizable javascript library</td><td>     ✅</td><td>(Limited)</td></tr><tr><td>Configurable purchase events</td><td>     ✅</td><td>(Limited)</td></tr><tr><td>Additional event "source" integrations (Gorgias, ReCharge, Loop Returns, Yotpo Reviews, and more)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Segment.com and RudderStack CDP integrations</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Data warehouse integrations (BigQuery, Snowflake, Redshift)</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Domain name proxy add-on</td><td>     ✅</td><td>     ❌</td></tr><tr><td>Headless Support (Pack Digital, TakeShape, Next Commerce)</td><td>     ✅</td><td>(Limited)</td></tr><tr><td>Dedicated support (Email, Slack, Chat)</td><td>     ✅</td><td>     ✅</td></tr></tbody></table>


# About Us

## Who We Are

Fueled was founded in the fall of 2021 by [Sean Larkin](https://www.linkedin.com/in/rseanlarkin/) and [Eddie Svirsky](https://www.linkedin.com/in/eddie-svirsky-3069622/).

As CEO, Sean brings 20 years of experience building organizations and teams, with strong focus on eCommerce and data infrastructure projects. Sean has successfully exited two previous companies.

As CTO, Eddie leads our engineering team with over 15 years of experience building scalable, enterprise solutions. Eddie has been a technical co-founder of multiple venture-backed startups.

In summer 2022, Fueled received its first round of outside venture funding from the international VC, [Antler](https://antler.com).

## Why We Built Fueled

Fueled was founded to solve acute problems that our eCommerce consulting clients faced in terms of operationalizing first-party and zero-party customer data.

For the last ten+ years, conventional CDP technologies and tactics have only been accessible to enterprise merchants. With the rise of ad blockers and 3rd-party data collection constraints, emerging and mid-market eCommerce brands struggle to without these tools to acquire and retain customers at reasonable advertising costs.

Fueled seeks to unlock eCommerce data, so that compelling brands can be successful in a tougher and and more and more competitive eCommerce landscape.

## Open Source Contributions

*As beneficiaries of open source, we seek to give back when we can.*

Check out our [Open Source DataLayer for BigCommerce on GitHub](https://github.com/fueled-io/bigcommerce-datalayer).

You can read more about this project on our blog:

{% embed url="<https://medium.com/fueled-io/announcing-the-release-of-an-open-source-datalayer-for-bigcommerce-51ab59ae3105>" %}


# Get Support

Connect with Us over Email

For customer support issues, please contact <support@fueled.io>.

To learn more about Fueled and get more information, please contact <hello@fueled.io>.

## Join Our Slack Community

To discuss all things CDP, join our Slack community using the form below. Connect with agencies, SaaS companies, and merchants who share your interest in leveraging customer data for more personalized and targeted digital experiences.

**Discussion topics** in our community include:

* How agencies can support DTC brands through customer data strategies;
* Building data tracking plans;
* Evaluating CDP and “modern data stack” technologies;
* And, of course, answering any and all questions eCommerce merchants might have about CDPs.

**Channel expectations:**

* Differing opinions are encouraged.
* Respectful discourse is required.
* Please keep product and services pitches brief and infrequent.

### Slack Channel Sign-up Form

Simply fill out the form below, and you’ll be added to our Slack channel. If you prefer to connect with a human about this, email: <support@fueled.io>.

{% @formspree/formspree %}


