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
In this example configuration Google Analytics (GA) will be used to collect and store analytics data and Google Tag Manager (GTM) to integrate GA with your branded website. Complete the steps below to configure GA account and GTM container.
- 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.
-
Under each of these Google Analytics accounts, create a 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.
-
Obtain your unique Measurement ID to use for integration with your GTM:
-
In your Google Analytics portal, go to Admin > Data collection and modification > Data streams and click on your stream in the table.
-
Your measurement ID will be in the upper right area.
-
-
Set data retention period to maximum for both user and event data. Currently, the maximum allowed value is 14 months.
-
Go to Custom definitions, and select Custom dimensions.
-
Archive all custom dimensions that are not used by your organization. To do this, open the three-dot menu and click Archive.
-
Create all the dimensions listed below that do not exist. To create a dimension, click Create custom dimension. A form, similar to the following will open:
The table below lists the dimensions that you need to create and the scope that you need to specify.
Dimension name Scope actor_acc_level User action_option Event action_step Event actor_userId User cb_panel Event dimension1 Event dimension2 Event dimension3 Event dimension4 Event dimension5 Event dimension6 Event dimension7 Event dimension8 Event dimension9 Event dimension10 Event dimension11 Event dimension12 Event dimension13 Event dimension14 Event dimension15 Event dimension16 Event dimension17 Event dimension18 Event dimension19 Event dimension20 Event eventAction Event eventCategory Event eventLabel Event eventValue Event persona_acc_level User - Create a Google Tag Manager account. Follow details, refer to the Google Tag Manager documentation.
- Create a separate GTM container for each of your brands.
- In the GTM panel, open Admin > Import Container. This will import a CloudBlue GTM container.
-
Use this settings file for the import.
Choose Merge to merge the data you have in your container, or Overwrite to create a container from scratch.
-
Go to Variables, locate the
ga_measurement_id
and change its value to the measurement ID obtained in step 3 of this instructions. -
At this stage, the following tags, triggers and user-defined variables must be configured:
Tags
-
CloudBlue Events Tag
-
Google Tag
Triggers
-
CloudBlue cb- Previxed Events Trigger
-
CloudBlue None cb- Previxed Events Trigger
-
ECommerce GA4 Events Trigger
User-defined variables
-
action_option
-
action_step
-
actor_acc_level
-
actor_userId
-
cb_panel
-
CloudBlue Default Event Parameters Set
-
CloudBlue Google Tag Default Parameters Set
-
dimension1
-
dimension2
-
dimension3
-
dimension4
-
dimension5
-
dimension6
-
dimension7
-
dimension8
-
dimension9
-
dimension10
-
dimension11
-
dimension12
-
dimension13
-
dimension14
-
dimension15
-
dimension16
-
dimension17
-
dimension18
-
dimension19
-
dimension20
-
eventAction
-
eventCategory
-
eventLabel
-
eventValue
-
ga_measurement_id
-
persona_acc_level
-
userId
Note: If there are other tags, triggers, or user-defined variables that are not used by your organization, you can delete them.
-
-
In the Tag Manager panel, click Submit to publish your GTM container.
-
To configure integration with Google Tag Manager for your brand, obtain your GTM code and add it to CloudBlue as described in this section. Only use the <head> code snippet similar to the one in the picture below.
Note: Google Analytics has a limitation that it can take up to days to display the data after the first data from the website is received. During that period, use real-time reports or a debug view to verify that the data is being collected.
Using Multiple Google Analytics Integrations
There are two options of integrating multiple Google Analytics with your portal:
-
Configure multiple Google Analytics tags in the Google Tag Manager.
-
Use multiple Google Tag Managers. Currently, you can register up to two Google Tag Managers using the same JavaScript code provided by Google, as shown in the picture below.
The Data Sent by UX1 Panels
The Main Account
Custom Definitions
Custom dimensions and metrics are set under Admin > Data Display > Custom Definitions in your Analytics account. For more information, refer to the Google Analytics documentation: About custom dimensions and metrics.
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 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:
|
|
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.) |
|
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 Behaviour > Events 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 cb_panel: UX1 Panel gtm.uniqueEventId: 72
|
Clicking the Reset button. |
|
event: adjust_prices eventCategory: reset_discount eventAction: Reset eventLabel: review-order cb_panel: 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 cb_panel: 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