Using UltraCart Analytics

This tutorial will help you to make the most out of the UltraCart Analytics platform. 

Analytics Engine started collecting data in 2018

PLEASE NOTE: The analytics engine that drives the 'Statistics' dashboard, started collecting data in 2018. 
(Because it's an event based system, it can't go further back in time.)


Background

The UltraCart Analytics platform strives to provide near real-time insight into the performance of your business with a level of insight that most reporting platforms do not achieve.  We've helped merchants with the struggle of gaining insight into their business from end-to-end for a long time.  In the end we've always come down to three problems with external reporting tools:

  • They have no built in way for you to track profit (most focus only on revenue by default)
  • They are focused on their view of the universe
  • They don't track the customer close enough to capture the entire lifecycle

UltraCart Analytics seeks to provide true answers to the questions most merchants have:

  • Was that particular campaign profitable?
  • How profitable was a particular time period?
  • What expenses are reducing my profit?

UltraCart Analytics also wants to make it easier on merchants:

  • Quickly see key performance indicators and compare them over time.
  • Quickly setup required data flows that need to be captured

Metrics

The UltraCart Analytics system provides reporting on the following metrics across three categories (basic, RTGs, and affiliates)

  • Basic
    • Key Performance Indicators
    • Total Sales
    • Upsells
    • Profit
    • Expense
    • Total online store visitors
    • Repeat customer rate
    • Online store conversion rate
    • Average order value
    • Top products by units sold
    • Online store visits by location
    • Total sales attributed to marketing campaigns
    • Total profit attributed to marketing campaigns
    • Online store visits by traffic source
    • Top landing pages by visit
    • Online store visits from social sources
    • Sales by traffic source
    • Online store visits by device type
    • Sales by social sources
    • API calls (metered)
  • RTG (Rotating Transaction Gateways)
    • One per gateway
  • Affiliates
    • Affiliate Order Count
    • Affiliate Networks

Understanding the Math

Profit = Revenue - Expense

Glad we got that basic business equation out of the way!  The goal of business is to make a profit and we believe that any analytics system that doesn't focus on actual profit is completely flawed.

Revenue

This is simple for UltraCart to capture since we're handling all the orders.  Other tracking system have more trouble with this because you have to fire pixels on your receipt, etc. to report the revenue.  

Expense

UltraCart Analytics tracks the following types of expenses.

Shipping

Shipping is often a non-trivial component in the expense structure of an e-commerce business.  Capturing the cost of shipping can be a challenging.

UltraShip

If you're processing your orders with UltraShip then we are automatically capturing the shipping costs reported by the different carriers for each shipment.

Fulfillment Integrations

Some fulfillment integrations automatically provide the cost of shipping each order back at the same time as the tracking numbers.  The following integrations currently support this:

  • DCL Corp
  • Specialty Fulfillment

If you believe that your fulfillment company can provide this information, but the integration currently doesn't support it, please contact UltraCart Support

Collecting at Time of Shipment

When you mark an order as shipped in the Shipping Department you can specify the postage cost as shown in the screenshot below:

Specifying Averages for a Distribution Center

Under the Distribution Center → Analytics you can configure the average shipment fee.  This is OK if you have a fairly predictable shipment cost per order.

Fulfillment

Similar to shipment costs, fulfillment costs can be specified.  At this time there are no integrations that provide the fulfillment pick fees in an automated fashion.  The best solution is to configure this under each distribution center as shown below.

Affiliate

There are two types of affiliate scenarios that UltraCart Analtyics can track:

Integrated Affiliate System

The integrated affiliate system will automatically track without any additional configuration.  

Affiliate Networks

If you're working with external affiliate networks such as ClickBooth, AboveAllOffers, etc. then you should be using the Affiliate Network Pixel.  When you configure your Affiliate Network Pixel, you will have the ability to specify the commission amount.  UltraCart will automatically detect when this networks pixel has fired and count that commission as an expense.


Cost of Goods Sold

The cost of the products you are selling is easy to configure on a per item basis. In the item editor click on the "COGS/MAP/MSRP..." link as shown below.

Next specify the cost of goods sold in the COGS field.

You can also specify the cost in an item import or the price update tool.


Marketing

At this point in time, UltraCart Analytics can download marketing data from Google Adwords (via Google Analytics) and FaceBook via API connection.  

Google Adwords

First make sure that you have linked your Google Adwords account to your Google Analytics account (this is recommended by Google).  Next click on StoreFronts → Conversion and Tracking → Google.  Scroll down to the Google Analytics Experiments section and populate the Account Id, Property Id and Profile ID then click Connect.  More detail on finding these values and connecting the API is found under the Performing an Experiment.  In the future this section will be renamed "Google Analytics API" as the connection does more than use the Google Analytics experiment engine.

Google Adwords campaign spend data will download daily into UltraCart once the report is considered "golden" by Google (will not change further).  So your campaign spend date for Google will typically download by noon the next day.  UltraCart is checking hourly for this data to become available.

FaceBook

UltraCart Analytics communicates with FaceBook using their Graph API.  In order to connect your FaceBook account click on StoreFronts → Conversion and Tracking → Other → Facebook Analytics.  You'll need to specify your FaceBook account ID (since any accounts can be controlled by a single FaceBook user) and then click on connect.  This FaceBook article will provide help on finding your Facebook account id.

UltraCart will download FaceBook campaign spend data hourly from FaceBook.  UltraCart will also feed Facebook your customers as a "custom audience" to assist you in retargeting customers that are similar.

Payment Processing & Reserve

UltraCart automatically knows the fee structure associated with PayPal and Amazon payments.  By default UltraCart will assume that your credit card processing rate is 2.9% and $0.30/transaction.  If you're paying more than that considered checking out UltraCart Payments!  If you need to configure different rates than the default, configure a merchant account profile and specify the rates. After configuring the merchant account profile, navigate to the payments configuration and then into the transaction gateways configuration page, then scroll down to the configured gateway and to the right of the card types checkbox fields, select the configure merchant account profile form the drop-down list, then click the save button to save the changes.

Some high risk merchant accounts also place a reserve on the funds processed.  You can also configure that under the merchant acocunt profile.


Marketplace

UltraCart automatically captures the fees associated with the eBay marketplace.  These fees include listing fees and final value fees on orders.  The fees associated with PayPal payment processing for eBay orders are also captured and reported under the Payment Processing expense automatically.


Tracking on External Websites

UltraCart Analytics tracks everything to a channel.  Each StoreFront or legacy screen branding theme is considered a channel.  So if you are using an external website connected to an UltraCart StoreFront in checkout only mode or the legacy checkout then you can place a tracking script on your external.  For example if our merchant id is SAMPL, our StoreFront is sampl.ultracartstore.com and our website is www.mysamplesite.com, then we connect the two by placing the following tracking script out on the pages of the www.mysamplesite.com website:

External Tracking Script Example
<script async defer src="https://d9i5ve8f04qxt.cloudfront.net/UC/62/uca/0.1.0/js/collect-g.js" data-mid="SAMPL" data-channel="sampl.ultracartstore.com"></script>

Just change the data-mid and data-channel to match your UltraCart account.

You can place this script anywhere within the web pages source.  The script is both asynchronous and deferred so it will have no impact on the performance of your site.  We load this script off the Amazon Cloudfront CDN is it will load extremely fast.  

This script will record:

  • URL visited (including parameters to capture UTM)
  • Referring website
  • Time on page

This script will set a tracking cookie in order to keep track of the customer through multiple engagements with your website.

Tracking on External Websites (with Google Tag Manager)

The way Google Analytics loads scripts, it will not replicate the data tags.  To solve this problem we'll use a URL syntax instead of data attributes.  For example if our merchant id is SAMPL, our StoreFront is sampl.ultracartstore.com and our website is www.mysamplesite.com, then we connect the two by placing the following tracking script into the Google Tag Manager container for the www.mysamplesite.com website:

<script async defer src="https://d9i5ve8f04qxt.cloudfront.net/UC/62/uca/0.1.0/js/collect-g.js?mid=SAMPL&channel=sampl.ultracartstore.com"></script>

Just change the mid and channel to match your UltraCart account.

Tracking on External Websites with Different Domains

The UltraCart Analytics engine will make a best effort to track users between the landing page domain and the checkout domain when they are different.  There are no additional changes that are required when deploying the tracking script to your external site other than properly configuring the mid and channel parameters.

Firing Events on External Websites

If you have implemented a custom checkout using our REST APIs you may want to fire events when the customer adds items to their cart and initiates the checkout process to help drive the funnel information on the analytics dashboard.  Below are example of firing events when UC Analytics is loaded on the page.

Add Items

Add Items Event
window.ucaEvent(
  {
    "event": "add items",
    "items": [
      {
        "itemId": "SKU_1",
        "quantity": 1
      },
      {
        "itemId": "SKU_2",
        "quantity": 1
      }
    ]
  }
);


Initiate Checkout

Initiate Checkout
window.ucaEvent(
  {
    "event": "initiate checkout",
    "items": [
      {
        "itemId": "SKU_1",
        "quantity": 1
      },
      {
        "itemId": "SKU_2",
        "quantity": 1
      }
    ]
  }
);



Dashboard Widgets


There are currently three different types of widgets related to UltraCart Analytics that you can place on your dashboard. 

  • Basic
  • RTG (rotating transaction gateways)
  • Affiliate (internal and networks)

Click on the Arrange Widgets link as shown below.

Then you can drag the following widgets and arrange them in the desired order on the dashboard.

After you place the widget on your dashboard you can further customize each section by clicking on the settings icon.

Customize the dashboard to meet your own needs.

You can adjust time period for each report by clicking on the button shown below.

Tracking Campaigns

UltraCart Analytics tracks sales back to campaigns using UTM parameters.  It's important that all inbound marketing traffic to your site have the following two UTM parameters specified:

  • utm_source
  • utm_campaign

You may need to edit your Adwords campaigns or FaceBook campaigns to add these values.  You can also track more than Adwords and FaceBook campaigns though.  Any type of traffic tagged with these parameters will be tracked.

Tracking Facebook


FAQ

  I've had my UltraCart account for a long time but statistics data only goes back to 2018?

The analytics engine that drivers that dashboard started collecting data in 2018.  Because it's an event based system, it can't go further back in time before that.

 My profit is much higher than in reality.  What should I change?

Make sure that you configure all of your expenses as shown in the document above.  Once you configure an expense it will effect go forward data collection, but nothing historical that has already been collected.

 I am seeing auto order rebills that contain UTM parameters, why is that?

UTM campaign hits across all sessions since customer first visited or their last order.

 Why do orders show UTM parameters appearing after the order placed date?

Analytics sessions process asynchronously several minutes after the order is placed.

 My marketing campaigns are not tracking profit.  What is wrong?

Make sure that you instrument your marketing campaigns with UTM parameters so that the source and campaign name can properly match up.  If the campaigns are targeted at an external website, please see the section above about tracking on an external website for the proper script to deploy.

 What does this reporting cost?

It is part of your UltraCart account.

 Can you add XYZ statistic to the system?

Maybe.  There are a million things that can be reported on, but we are trying to keep the system very usable with minimal one time configuration requirements and produce statistics that all users can understand.

 Why is there a difference between the legacy sales graph and the dashboard for today?

The newer dashboard system works off an event processing system which process approximately 45 minutes behind real-time.  The data will eventually be consistant with the legacy sales graph.

 I'm trying to build some deeper reporting for our orders coming through ultracart. I've exported the orders using all columns into a CSV format and the numbers I see from those orders don't match the "Total Sales" number in the Statistics (Basic) section. I was wondering if you could enlighten me as to how that number and the "Total orders" is calculated. I have all the orders in one table with line items in the order broken out into another table and I can't seem to match the numbers up.

The analytics engine that drives that dashboard widgets uses a delayed event stream (see previous Q/A above), therefore it may differ slightly from the official order database. 
If you're doing accounting type reporting and reconciliation, it's recommended that you use either the
Reports menu or order exports for conducting a deeper analysis of your sales activity.

 What is the definition of a 'Repeat customer?

A repeat customer is a customer that has two or more orders in the order history.

Please note that the order retention settings can affect this metric. So, if you have your Order Retention configuration set less than "Infinite", then repeat customers may no longer be reflected as such, due to their previous order(s) being purged from the order database.

 What does "Referrals" refer to in the "Online visits by traffic source" section of the Statistics widget?

A "Referral" references traffic coming from a domain other than a search engine or social network or your own storefront.

For Example: If I had a site named: mywebsite.com and I linked to your website, then all the traffic from my site to yours would be considered referral traffic.