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
- 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 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.
-
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.
-
- Create an account in Google Tag Manager. Learn more here.
- Create Google Tag Manager containers for each brand.
-
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 -
Add integration with Google Analytics in brand settings, as described at How to configure integration with Google Analytics.
-
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.
-
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 Settings > Filters and create the following filter.
-
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.
-
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 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 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