Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Learn what Umbraco Engage tracks before any additional configuration is added.
If you install Umbraco Engage we will automatically collect a lot of data for you.
Serverside the following data is tracked:
The URL of the visited page (/foobar/
)
The query string of the visited page (?filtering=on¶meter1=2
)
The variant of the page that we serve. This could be a personalized version of the page or one of the A/B-test variants.
The time that the page was visited (31 august 2021, 16:04:22
)
Where the visitor came from before this visit (the so-called referrer). This could be an internal webpage (/my-contentpage/
) or an external URL (www.umbraco.com/the-umbraco-engage-rocks/
)
The browser being used (Firefox), the Operating System used (Windows), and the type of device being used (Desktop). These data points are based on the user-agent string that any browser is sending.
The IP address (213.62.44.123
) or anonymized IP address (213.62.44.0
), depending on your configuration.
Only GET requests which return a 2XX HTTP OK will be tracked in Umbraco Engage.
With the data collected, the Analytics reports in Umbraco Engage can be visualized. It also allows us to calculate other metrics, such as conversion rates, bounce rates, and landing & exit pages.
If you include the clientside collection script as well, you can also capture behavioural data of your visitors.
Learn how to implement an IP to location provider.
The localization information is displayed under the Location tab in the Analytics section of Umbraco Engage dashboard.
Umbraco Engage Analytics natively supports storing and reporting localization information for incoming traffic. Localization refers to identifying the (physical) origin of an incoming request. Web requests from a visitor's browser do not contain location information, so you must provide an implementation for this.
Most localization services, such as Maxmind, use IP addresses to perform a (rough) lookup. The information is compiled into a database where lookups can be performed. However IP addresses do not contain any information regarding their (physical) origin, rather they only identify a device on the internet. Localization information for any given IP address is tracked manually and can change overtime. We recommend either using an external service or acquiring a copy of a GeoIP database for localization lookup purposes.
Once you have a service that can provide localization information, integrating it into Umbraco Engage is straightforward.
For this purpose, implement the interface Umbraco.Engage.Business.Analytics.Processing.Extractors.IRawPageviewLocationExtractor. This interface allows the localization information for a pageview, defined as a single visitor's visit to a specific point in time. The pageview contains the property IpAddress which can be used for Geo IP lookup.
First, define a class that implements ILocation, to hold the localization information that will be returned through the interface in our implementation:
Next, implement the location extractor to read and validate the incoming IP address and filter out local IP addresses with the native IsLoopback method. Then, call your Geo IP localization implementation:
Lastly, let the IoC container know to use your implementation for the IRawPageviewLocationExtractor. Umbraco Engage has a default implementation of this service, which only returns null. This default service is registered using Umbraco's RegisterUnique method. To override this service, call RegisterUnique after the Umbraco Engage dependencies have been initialized, which is after the UmbracoEngageApplicationComposer:
After implementing this, Umbraco Engage will begin collecting and displaying localization information for pageviews. This can be viewed in the Analytics section of the Umbraco Engage dashboard.
If the custom implementation returns null, ILocation will display as "Unknown".
The LocationExtractor only processes new pageviews and will not apply retroactively to historical data.
If the pageviews contain location information, the table with countries is displayed:
From the country, you can drill down to the city. This will then filter the displayed graph and table data to only display session and pageview information for the selected country. Even though Umbraco Engage does support the storage for county and province, the UI only supports displaying data by country and city.
This article describes what data is tracked from videos on your website.
Umbraco Engage gathers video statistics for the following types of videos:
HTML5 videos (videos provided via the <video>
element)
Embedded YouTube videos
Make sure the embed URL contains ?enablejsapi=1
as part of the full URL to enable tracking. The src
property of the iframe should be something like: https://www.youtube.com/embed/<CODE>?enablejsapi=1
.
The https://www.youtube.com/iframe_api is loaded for this purpose.
Embedded Vimeo videos
The https://player.vimeo.com/api/player.js is loaded for this purpose.
Make sure you have installed the Umbraco Engage analytics JavaScript file.
Learn about what scripts can be used to connect with other data-gathering tools.
Umbraco Engage helps you with some additional scripts and views.
They are all stored in the /Assets/Umbraco.Engage/Scripts/
and the /Views/Partials/Umbraco.Engage/
folders.
Find more information about the scripts:
You can also learn how to create your custom events.
Learn more about how Umbraco Engage distinguishes between bots and real visitors.
Engage only tracks 'real' visitors and discard any visit we determine to be from a bot. The data for bots is not stored in Umbraco Engage and cannot be viewed in the Analytics section.
From an Search Engine Optimization (SEO) perspective, bots, search engine crawlers, spiders, and the like, will always see the default content. This means that they will not participate in personalization or A/B tests.
The tracking of a visitor is done via the following steps:
DeviceDetector.NET will assess if the visitor is a bot or a 'real' visitor` using the device ID of the browser.
If it is a 'real' visitor the page will send a POST request to umbraco/engage/pagedata/ping
record a visit.
The page will not add a POST request if the visitor is deemed a bot.
Learn how to bridge Google Analytics with the data in Umbraco Engage.
We have included a bridging JavaScript file to "catch" all Google Analytics event calls and send them to Umbraco Engage. If you have a website with Google Analytics events defined you do not have to change the code to send them to Umbraco Engage. The only thing you need to do is include our JavaScript bridge.
Add a reference to umbracoEngage.analytics.ga4-bridge.min.js
:
The following built-in GA4 events are excluded by the GA4 bridge:
click
file\download
form\start
form\submit
page\view
scroll
video\complete
video\progress
video\start
view\search\results
This means if any of your custom events use one of the above event names they will also be ignored.
This is based on official Google Analytics documentation - all events tagged (web)
.
If there are specific events you want to exclude from being sent to Umbraco Engage you can customize the behavior.
Say you want to exclude all events that have category "X" and action "Y". To do that, add the following JavaScript to your website. Make sure umbracoEngage.analytics.js
has been loaded when the code executes.
It is also possible to change the category/action/label/value properties of evt.fields
to modify the values we send to Umbraco Engage.
Learn how to create and add custom events to Umbraco Engage.
You can send custom client-side events to Umbraco Engage. An example could be if somebody pushes a button.
This is done by executing JavaScript using the following format:
The following example sends an event that tracks the category "Tracking", the action "Blocked" and the label "Google Analytics":
You can track all these events in the Events report of the Analytics section.
Discover how to enhance the accuracy of your Umbraco Engage Analytics by replacing specific extractors to collect additional or more accurate data.
Data collection is essential to the Umbraco Engage Analytics feature. When a visitor requests a page on your website, the web request is analyzed for relevant information, which is then stored in the database.
However, there may be times when the data collected is not entirely accurate, or you might have additional data to complement the Umbraco Engage dataset. In the following articles, we will explain how to replace specific extractors that obtain particular pieces of information from a request.
Learn how to enhance your website's analytics by adding the Umbraco Engage JavaScript file.
You can add the Umbraco Engage Analytics JavaScript file to your website by placing this code before the closing </body>
tag of your website.
When this file is included, Umbraco Engage sends the following data to the server before the visitor navigates to another page:
Scroll Depth: Tracks the maximum scroll depth in both pixels and percentage of the page. For example, a user might scroll to 93% of the page height, which could equal 967 pixels.
Total Time on Page: The total time on page is measured in milliseconds. It is defined as the time difference between the page load and the moment the user leaves the page.
Engaged Time on Page: This measures the time the user is active on the page and in our opinion is more accurate than the total time on page. This script measures only the time when you are scrolling or clicking on the page in the active tab. It excludes idle time, such as when you are getting coffee or working in another tab. A 5-second grace period is used to define engagement. For more information, see this blogpost.
Clicks Tracked: All clicks to the following URLs are measured:
External domains
.pdf, .doc, or .docx document
An internal onpage link which is defined by an anchor link (#intro)
mailto:
and tel:
links
If the filename remains unchanged, this file will be overwritten each time you update the Umbraco Engage to a newer version.
Learn how to extract client IP addresses in Umbraco Engage by implementing a custom IP address extractor for specific server environments.
By default, Umbraco Engage extracts the IP address from the request by inspecting the UserHostAddress and the X-Forwarded-For header. The latter is commonly used if your website operates behind a load balancer. In most scenarios, this will correctly resolve the client's IP address.
If IP addresses are not being resolved accurately, your website may be behind a load balancing server or another protected environment. It might not forward the original client IP in the default X-Forwarded-For header or could exclude it entirely.
In this case, you may need to provide a custom implementation of the IHttpContextIpAddressExtractor to handle your specific requirements.
The default extractor looks like this:
To override this behavior, implement your own IHttpContextIpAddressExtractor and instruct Umbraco to use your extractor instead of the default extractor:
It is important that your UserComposer adjusts the service registration after Umbraco Engage has initialized.
This can be enforced using the ComposeAfterAttribute. Failing to add this attribute may result in Umbraco running your IUserComposer before the Umbraco Engage composer, causing your changes to be overwritten.
Additionally, ensure you use RegisterUnique<...>()
instead of Register<...>()
. While you can use Register when multiple implementations of a single service exist, in this case, you want your own extractor to be resolved exclusively. Therefore, RegisterUnique will overwrite the Umbraco Engage extractor.
After implementing both classes and running your project, your extractor should be called to resolve IP addresses. You can verify the output of your extractor by inspecting the umbracoEngageAnalyticsIpAddress database table. The last portion of the IP address may be anonymized (set to 0) if this option is enabled in the Umbraco Engage configuration file.
Learn how to bridge data between Google Tag Manager and Umbraco Engage.
When using Google Tag Manager you can collect all events in Umbraco Engage. This is set up in the same way as classic Google Analytics.
To include the file add the following code before the closing body
tag in your HTML:
Discover how to push A/B testing and personalization variables from Umbraco Engage to the Google Tag Manager (GTM) data layer in Razor templates.
Umbraco Engage provides a partial view that pushes variables related to A/B testing and personalization to the Google Tag Manager (GTM) data layer.
The following variables are pushed:
inabtest: true
- if the visitor participates in an active A/B test on the page; otherwise false.
This will also be true if the visitor is assigned to the "A" variant which is the original page.
abtestname
- The name of the A/B test the visitor is participating in. If there is no active A/B test, the value will be null
abtestvariant
- The name of the A/B test variant assigned to the visitor. If there is no active A/B test, the value will be null
personalized: true
- If personalization is applied to the page for the visitor; otherwise false.
personalizationname
- The name of the active personalization. If there is no active personalization, the value will be null.
To render the partial view in your Razor template, use the following line:
This partial will render the following output:
Learn how data from Umbraco Forms is tracked with Umbraco Engage.
To track Umbraco Forms submissions, you need to install Umbraco Forms with a valid license from Umbraco HQ. You also need to install the Umbraco Engage Forms Addon package from Nuget.
Umbraco Engage measures interactions with Umbraco Forms on your website automatically if you include the Umbraco Engage analytics JavaScript file. No additional configuration is needed. The data is visualized in the backoffice in Engage > Analytics > Forms.
The following is measured:
The time a visitor started filling in the form.
The time a visitor finished filling in the form (like when it was submitted).
If the visitor has seen the form, and whether it was in their viewport.
If the form was submitted successfully.
This is based on client-side validation only. If client-side validation passes it is seen as a successful submit.
If the form raised any client-side errors, and how many was raised.
Focus/unfocus events of each field and whether the field was empty or contained data at that time.
It is possible to track a specific visitor to your website and see if they have made any form submissions. To do so, follow these steps:
Edit the Umbraco Form you wish to track visitors for and go to the Design view.
Add a new field to your form called 'Analytics - VisitorId`.
Give the new form field a name such as Visitor ID.
Specify a URL in the settings of the field type called Template:
The URL above is a link to your website, including a visitor ID. By using a URL like this you can click directly through to view the visitor profile from Forms workflows. This includes emails, Slack messages as well as exported Excel data.
By adding the engage-no-tracking
attribute you can disable Umbraco Forms tracking on the form or field level. The attribute needs to be added to either the form tag or to a field tag (like input, select, or textarea).
Analyzing the data Umbraco Engage collects from your website is a part of learning about your website visitors and improving your content.
The Analytics feature in Umbraco Engage provides an overview of all data collected from your Umbraco website. Depending on your configuration, you can view analytics data for who visits your website, how well your videos and forms are doing, and much more.
In this section, you can learn more about the different aspects of the Analytics feature and how to extend it.
Umbraco Engage tracks different kinds of data by default. Additionally, it can be configured to track even more to help you know where to improve your content.
Umbraco Engage provides a set of scripts to bridge data collected from other analytics tools.
Umbraco Engage is built on Umbraco CMS giving you many options for extending different parts of the product.
Learn how you can use the Scroll Heatmap in Umbraco Engage to gather data on the behavior of your visitors.
The heatmap only collects data if the client-side script is installed on your website.
Learn how Umbraco Engage handles visitors who use blocker detection.
When a visitor runs an Adblocker or cookieblocker the visitor is likely not tracked in Google Analytics. With Umbraco Engage you can still track this visitor.
This is made possible by a JavaScript file that you can include before the closing body
-tag in your HTML:
If you include the script one of the following events is sent:
If Google Analytics is blocked in the browser of the visitor: umbEngage("send", "event", "Tracking", "Blocked", "Google Analytics");
Otherwise, the following event is sent: umbEngage("send", "event", "Tracking", "Allowed", "Google Analytics");
To see the statistics of this event go to the Analytics section of Umbraco Engage and open the 'Events' report. Look for the category with the name 'Tracking'.
Bot detection
Capture Location Data
Extending Forms
Video Tracking
Scroll Heatmap