Analyzing Customers' Behavior with Google Analytics

This article explains how to gather various important statistics on your customers' behavior in the UX1 Panel and the UX1 Marketplace. You can use this data to adjust your marketing campaigns and discover the pain points your customers and prospects encounter in your Marketplace.

Note: This article is a work in progress. It does not cover all the available events yet. We will let our customers know whenever we update this article with new and useful information.

Configuring a Google Tag Manager Container and a Google Analytics Account

  1. Create a Google Analytics account for the UX1 Panel. If you use a professional services automation tool (PSA) in conjunction with CloudBlue Commerce, create a separate Google Analytics account for it. Learn how to create Google Analytics accounts here.
  2. Under each of these Google Analytics accounts, create a Universal Analytic property for each brand that you want to track. In the scope of CloudBlue Commerce, a brand is a custom domain name associated with a subscription. Learn how to create properties here.

    • UA ID is the ID of the main GA account. For example, UA-115574165-9.
    • PSA UA ID is the ID of the PSA account. For example, UA-115574165-10.
  3. Create custom definitions in each property.

    • The main account: custom definitions. Please refer to the Google Analytics documentation: Custom dimensions & metrics. Include non-standard data in your reports. Custom dimensions and metrics are set at the property level in an Analytics account.

    • The main account: dimensions.

      Name # Scope Description
      userId 1 User GA documentation regarding user-id. UserID tracking requires settings on the Google Analytics account side: https://support.google.com/analytics/answer/3123666?hl=en.
      PageURL 2 Session Additional information about the full address of the page displayed in a browser tab. You can use it for deeper analysis.
      Custom userId 3 Session The same value as userId, but thanks to a different scope, you can use it as a secondary dimension in reports.
      Panel 4 Session The level of the user account on behalf of which an action is performed.
      Actor 5 Session The type of user who actually performed an action in the Panel. For example, if an L0 provider or a reseller operates as a customer, the L0 value will be displayed here.
      Actor_userId 6 Session The user ID of the actor.
      origPrice without a discount 7 Product The price without a discount for eCommerce events.
      PromoCode 8 Hit A promo code used for payment.
      PaymentMethod 9 Hit A payment method used by the customer when placing an order. For example, "External Payment Collection".
      TextAttr 10 Hit A text field for error reporting.
    • The main account: metrics.

      Name # Scope Data type Description
      originalCost 1 Product Currency (Decimal) The initial cost of a service plan or a service plan option.
      pDiscount 2 Product Integer Percentage of a discount displayed for a service plan or a service plan option.
    • The PSA account: custom definitions and dimensions.

      Name # Scope Description
      userId 1 User GA documentation regarding user-id. UserID tracking requires settings on the Google Analytics account side: https://support.google.com/analytics/answer/3123666?hl=en.
      PageURL 2 Session Additional information about the full address of the page displayed in a browser tab. You can use it for deeper analysis.
      Custom userId 3 Session The same value as userId, but thanks to a different scope, you can use it as a secondary dimension in reports.
  4. Create an account in Google Tag Manager. Learn more here.
  5. Create Google Tag Manager containers for each brand.
  6. Import this JSON file to your container, replacing the data below with yours.

    Data Values that you must replace
    UA ID UA-115574165-9
    PSA UA ID UA-115574165-10
    GTM Account ID 2703367898
    GTM_Container_ID 39899608
    GTM_Public_Container_ID GTM-KD4BFQG
  7. Add integration with Google Analytics in brand settings, as described at How to configure integration with Google Analytics.

  8. Using the custom dimension4 (Panel), you can create filtered views to separate activities from UX1 for Resellers and UX1 for Customers. This will simplify further data export and analysis.

    1. Create a new Google Analytics view in your account. Name it "Reseller Panel User ID" or something similar. This view must also have USER ID tracking switched on. Go to View SettingsFilters and create the following filter.

    2. Create another view. Name it "Customer Panel User ID" or something similar. This view must also have the USER ID tracking switched on. Go to View Settings > Filters and create the following filter.

    3. Enable eCommerce data collection for both views.

The Data Sent by UX1 Panels

The Main Account

Custom Definitions

Please refer to the Google Analytics documentation: Custom dimensions & metrics. Include non-standard data in your reports. Custom dimensions and metrics are set at the property level in an Analytics account.

Dimensions
Name # Scope Comment
userId 1 User GA documentation regarding user-id. UserID tracking requires settings on the Google Analytics account side: https://support.google.com/analytics/answer/3123666?hl=en
PageURL 2 Session
Custom userId 3 Session The same value as userId. You can use it as a secondary dimension in reports.
Panel 4 Session The user account on behalf of which an action is performed.
Actor 5 Session The type of user who actually performed actions in the Panel. For example, if an L0 provider or a reseller operates as a customer, the L0 value will be displayed here.
Actor_userId 6 Session The user ID of the actor.
origPrice without a discount 7 Product The price without a discount for eCommerce events.
PromoCode 8 Hit The promo code used for payment.
PaymentMethod 9 Hit
TextAttr 10 Hit A text field for error reporting.
Metrics
Name # Scope Data type
originalCost 1 Product Currency (Decimal)
pDiscount 2 Product Integer

UX1 Marketplace Events for Building a Sales Funnel

Use Enhanced eCommerce & Custom Events capabilities for tracking sales (new orders placed in the Marketplace) and subscription management scenarios. It is important to filter out products list values to obtain clear data for analysis.

Products lists containing Subscriptions are related to subscription and order management. Other products lists are related to sales.

The following eCommerce data are sent by the UX1 Panels.

Dimension in GA Meaning
Category

The category to which the product belongs. For example, Apparel. Use / as a delimiter to specify up to five levels of hierarchy. For example, Apparel/Men/T-Shirts.

For a Sales Category shown as a Product: empty value.

For a Sales Category level 2 shown as a Product: Sales Category level 1

For a Service Plan: Sales Category level 1/Sales Category level 2

For a Resource: Sales Category level 1/Sales Category level 2/Service Plan

list Marketplace, Search service, Promo
position The position on the screen. The first in the list is 1, the second is 2, and so on.
Price Price per unit. The price that is calculated for the Order total, with all discounts applied. The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side.
Product (name) The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
Product ID A SKU, if it is specified. If a SKU is not specified, then the following parameters are concatenated and returned as a SKU: Service Plan APS GUID & Period ID & Resource ID
Quantity A quantity added to a cart, at checkout, or purchased.
Variant A period. 1 month, 1 year, and so on.
Product Impressions

A product impression is an event that is sent every time a product is displayed in the Marketplace.

It is important to know where the product was located when it was shown to a reseller or a customer: which section (promo, search results, the main products catalog, and so on) is sent as a products list.

Event tracking data:

  • event: Impressions
  • eventCategory: eCommerce
  • eventAction: Impressions saved
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Category
  • List
  • Position (in a list)


Items displayed Data sent


Product Detail Views

A product detail view is an event that is sent every time a reseller or a customer views service plan details, service plan options, included resources, different subscription periods, and prices.

It is important to know where the product was located when it was shown to a reseller or a customer: which section (promo, search results, the main product catalog) is sent as a products list.

Event tracking data:

  • event: detail
  • eventCategory: eCommerce
  • eventAction: Product detail views
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension7 - The initial price without discounts.
  • List

A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.


Items displayed Data sent

If a user switches to a tiled view, the product detail view event is sent once again.


When a user adds something to the shopping cart and then goes to the shopping cart for viewing its contents, a complete list of service plan options and additional resources is displayed. In this case, the product detail view event is sent including all information about all products in the cart, their additional resources, and service plan options.

The same will happen if the user enters a previously abandoned cart with saved quantities.



Product Clicks

This is an event that is sent every time a reseller or customer clicks any product in the Marketplace.

It is important to know where the product was located when it was shown to a reseller or a customer: which section (promo, search results, or the main products catalog) is sent as a products list.

Event tracking data:

  • event: productClick
  • eventCategory: eCommerce
  • eventAction: Product Click
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Category
  • List
  • Position (in a list)



The following is an example of what the Panel sent as a product click event when a user clicked a sales category:


Addition to the Cart

This event occurs when a reseller or a customer clicks Add to Cart or changes the quantity in the shopping cart and then goes to the next checkout step.

It is important to know where the product was located at the very beginning: which section (promo, search results, the main product catalog) is sent as a products list.

Event tracking data:

  • event: addToCart
  • eventCategory: eCommerce
  • eventAction: Addition to Cart
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension 7 - The initial price without discounts.
  • List


A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.


Items displayed

Data sent

The event is sent directly after clicking ADD TO CART.

The user is in the shopping cart.

The user removed a product from the shopping cart and then added it back.

The event is sent directly after clicking ADD IT BACK.

The user is in the shopping cart.

The user changed the quantity of additional resources or service plan options, or did not change them but only clicked NEXT.


The event with quantities is sent directly after clicking NEXT.

Removing Products from the Cart

An event is sent every time a reseller or customer clicks REMOVE while in the shopping cart.

It is important to know where the product was located at the very beginning: which section (promo, search results, the main product catalog) is sent as a products list.

Event tracking data:

  • event: removeFromCart
  • eventCategory: eCommerce
  • eventAction: removeFromCart
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension 7 - The initial price without discounts.
  • List


A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.


Items displayed

Data sent

Case 1: A reseller changed the quantity (increased it) and then went to the next screen. On the next screen, they clicked BACK and returned to the shopping cart.

They reduced the quantity and then clicked NEXT again.

Information about the reduction in quantity from the cart is not sent. Instead, the addToCart event with the actual quantity is sent at checkout.



Checkout step 1

This event is sent every time a reseller or customer enters their shopping cart and they are on the Place an Order screen where they can see a full list of added products (service plans), change the quantity, and remove products.

While the user is in the shopping cart, the following events are sent:

  • The checkout - step 1 event for the service plans that the user previously added to the cart in the Products Catalog.
  • The detail event for the products that the user sees for the first time.

When a reseller clicks NEXT in the shopping cart, the addToCart event is sent for the included and additional services, and the checkout step 1 event is sent immediately after the addition to the shopping cart.

Step of the sales wizard Action Events sent
Shopping Cart (Place an Order screen)

The user opens the shopping cart:

  • after clicking PROCEED TO CHECKOUT
  • after clicking BACK in the sales wizard
  1. The checkout step 1 event for the main products (service plans) in the shopping cart.
  2. The detail event for all included and additional services and resources.
Shopping Cart (Place an Order screen)

The user clicks NEXT to go to the next screen of the sales wizard.

(The data is sent directly after the click.)

  1. The addToCart event for included and additional services and resources.
  2. The checkout step 1 for included and additional services and resources.

It is important to know where the product was located at the very beginning: which section (promo, search results, or the main products catalog) is sent as the products list.

Event tracking data:

  • event: Checkout
  • eventCategory: eCommerce
  • eventAction: Checkout
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension 7 - The initial price without discounts.
  • List

A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.

Examples:

Items displayed Data sent

Checkout step 2

This event is sent every time a reseller or customer is on the user account selection screen.

It is important to know where the product was located at the very beginning: which section (promo, search results, or the main products catalog) is sent as the products list.

Event tracking data:

  • event: Checkout
  • eventCategory: eCommerce
  • eventAction: Checkout
  • eventLabel

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension 7 - This is optional for this event. It implies the initial price without discounts.
  • List


A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.


Items displayed Data sent




Checkout option

This event is sent every time a reseller or a customer selects the type of user account for whom to purchase (Existing or New) and clicks NEXT to go to the Review Order screen.

Event tracking data:

  • event: checkoutOption
  • eventCategory: eCommerce
  • eventAction: checkoutOption
  • eventLabel

eCommerce data is not applicable to this event.

Items displayed Data sent

If New Customer is selected.
Checkout step 3

This event is sent every time a reseller or a customer is on the Review Order screen.

It is important to know where the product was located at the very beginning: which section (promo, search results, or the main products catalog) is sent as the products list.

Event tracking data:

  • event: Checkout
  • eventCategory: eCommerce
  • eventAction: Checkout
  • eventLabel:

eCommerce data:

  • Product Name - The sales category, service plan, or resource name in English, even if it is displayed on the screen in another language.
  • Product ID
  • Price (per 1 unit) - The UX1 Panel sends prices in the local currency and reflects their USD values in reports. The conversion of currency from local to USD is made on the Google side. More details
  • Category
  • Variant
  • Quantity
  • Dimension 7 - This is optional for this event. It implies the initial price without discounts.
  • List

A variant is an important attribute. Data for each service and resource is sent in two parts (the included amount and additional amount) for every charge type: setup and recurring.


Items displayed Data sent


Two events are sent for different lists.


With eCommerce information that is sent to Google Analytics, you can create your own sales funnels, analyze the number of drop offs and determine bottlenecks, calculate the conversion rate and cart abandonment rate. Please use the GA Query Explorer and the GA API to export the tables if the standard Google Analytics interface does not work for you.

To build something similar to the following examples, you need to export a table with the following dimensions and metrics:

  • ga:date
  • ga:shoppingStage
  • ga:sessions

 

Be sure to use filtering by Product List Name (ga:productListName) to retrieve only new sales activity on the Marketplace without the Subscriptions & Orders Management data.

A Product List Name must not contain "Subscriptions" or "Orders".

The conversion rate can be calculated as the number of all visits with orders placed (the shopping stage is TRANSACTION), divided by the number of all visits (the shopping stage is ALL_VISITS).

The cart abandonment rate can be calculated as the number of all visits with orders placed (the shopping stage is TRANSACTION), divided by the number of all visits with checkout started (the shopping stage is CHECKOUT) minus 1.

You can build separate funnels for the Reseller Panel and the Customer Panel. The following is an example of the report on Marketplace activities inside the UX1 Panel for Customers. In this example, we used the custom dimension5 (Actor) to show the number of orders that were placed by customers (not resellers acting on behalf of customers).

Additionally, you can obtain even more details on the performance of your products. For this purpose, explore the data available in the eCommerce section of the Google Analytics reports interface.

Be sure to use filters by Product List Name to separate new sales activities from Subscriptions and Orders Management data.

Here are a few tips for Subscription and Order Management analysis. Here you can also build funnels to analyze this flow.

Be sure to use filtering by Product List Name (ga:productListName) to retrieve only Subscriptions and Orders Management data and exclude new sales activities on the Marketplace. A Product List Name must contain "Subscriptions" or "Orders".

Here is an example of the report that you can build using exported eCommerce data and Custom Events data (can be found in the BehaviourEvents section of Google Analytics reports) that we described in detail for the tracking of Subscription and Order Management functionality.

You can also determine how popular certain functionality is among your resellers. You can export the total number of visitors to UX1 for Resellers (ga:users) and additionally create a custom segment for the users who viewed Subscription and Order management screens using ga:page as a filter for that custom segment. The following is an example of a report that describes the use of a functionality.

Adjusting Prices

This section explains which data can be gathered when the provider or a reseller adjusts prices while purchasing on behalf of a customer.

Action Items displayed Data sent
Clicking the Adjust Prices button.

event: adjust_prices

eventCategory: adjust_prices

eventAction: Adjust Prices

eventLabel: review-order

dimension13: UX1 Panel

gtm.uniqueEventId: 72

 

Clicking the Reset button.

event: adjust_prices

eventCategory: reset_discount

eventAction: Reset

eventLabel: review-order

dimension13: UX1 Panel

gtm.uniqueEventId: 72

Editing customer prices. This event is sent only if the original customer prices are changed, after users click Buy.

event: adjust_prices

eventCategory: customer_prices_edit

eventAction: Customer prices edit

eventLabel: review-order

Selecting the Keep adjusted prices after subscription renewal checkbox. This event is sent when users select the checkbox.

event: adjust_prices

eventCategory: keep_checkbox

eventAction: <ON or OFF>

eventLabel: review-order

Clicking the Reset Prices button.

event: adjust_prices

eventCategory: reset_prices

eventAction: Reset Prices

eventLabel: review-order

dimension13: UX1 Panel

gtm.uniqueEventId: 78

 

Creating Quotes

This section explains which data can be gathered when the provider or a reseller prepares a quote for a customer.

Action Items displayed Data sent
Clicking the Purchase or the Quote tile. This event is sent when users click a radio button.

event: order_checkbox

eventCategory: order_checkbox

eventAction: <Purchase or Quote>

Checkout: the Review an offer step.

eventCategory: eCommerce

event: Checkout

eventAction: Checkout

eventLabel: CreateQuote

Checkout: the Provide a customer step.

eventCategory: eCommerce

event: Checkout

eventAction: Checkout

eventLabel: CreateQuote

Checkout: the Provide a customer step.

eventCategory: eCommerce

event: checkoutOption

eventAction: checkoutOption

eventLabel: CreateQuote

Checkout: the Review quote step

eventCategory: eCommerce

event: Checkout

eventAction: Checkout

eventLabel: CreateQuote

Clicking Preview PDF. This event is sent when users click the Preview PDF button.

event: quote_preview

eventCategory: quote_preview

eventAction: <quote name>

eventLabel: <quote description>

Setting quote attributes.

event: quote_attributes

eventCategory: Quote Attributes

eventAction: Set the quote validity period

eventLabel: <ON or OFF>

Changing quote contents. This event is sent when users click the Create a quote button.

event: quote_contents

eventCategory: Quote Contents

eventAction: <true or false> (shows if there is a quote #)

eventLabel: <true or false> (shows if there is a link to an image)

Checkout: the Create a quote step.

eventCategory: eCommerce

event: Checkout

eventAction: Checkout

eventLabel: CreateQuote

Clicking the View Quotes button.

event: ShareQuote

eventCategory: ShareQuote

eventAction: View_all_quotes

Subscription and order management

Be sure to filter out eCommerce events by the contents of the products list variable. The value of the variable must contain the word Subscriptions.

Approve or Cancel an Order

event: subs_manage

eventCategory: Subscription Management

eventLabel: <order id>; <order number>

eventAction: Approve order or Cancel order


Track an Order

event: subs_manage

eventCategory: Subscription Management

eventLabel: <order id>; <order number>

eventAction: Track order


Cancel a Subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <order id>; <reason>

eventAction: Cancel subscription


Change a Subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: Change_subscription


Check a subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <order id>; <order number>

eventAction: Check subscription


Switching back to the previous plan

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: Back_current_plan_subscription


Continue shopping

event: subs_manage

eventCategory: Subscription Management

eventLabel: <user id>; <order number>

eventAction: Continue Shopping


Renew a subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: Renew_subscription


Disable / Enable auto-renewal of a subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: <Disable_AutoRenew_subscription or Enable_AutoRenew_subscription>


Disable / Enable Full Screen view of a subscription

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: <Disable_FullScreen_subscription or Enable_FullScreen_subscription>


Enable the adjustment of subscription prices

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: Enable_AdjustPrices_subscription


Switch a subscription's plan

event: subs_manage

eventCategory: Subscription Management

eventLabel: <subscription parameters>

eventAction: Switch_plan_subscription