Automatically track sessions
Analytics Auto Tracking helps you to automatically track user behaviors like sessions start/stop, page view change and web events like clicking or mouseover.
Session Tracking
You can track the session both in a web app or a React Native app by using Analytics. A web session can be defined in different ways. To keep it simple we define a web session as being active when the page is not hidden and inactive when the page is hidden. A session in a React Native app is active when the app is in the foreground and inactive when the app is in the background.
For example:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ // REQUIRED, turn on/off the auto tracking enable: true, // REQUIRED, the event type, it's one of 'event', 'pageView' or 'session' type: 'session', // OPTIONAL, additional options for the tracked event. options: { // OPTIONAL, the attributes of the event attributes: { customizableField: 'attr' } }});
By default, when the page/app transitions to the foreground, the Analytics module will send an event to the Amazon Pinpoint Service.
{ "eventType": "_session_start", "attributes": { "customizableField": "attr" }}
This behavior can be disabled by calling configureAutoTrack
:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ enable: false, type: 'session'});
Page View Tracking
Use this feature to track the most frequently viewed page/url in your webapp. It automatically sends events containing url information when a page is visited.
This behavior can be enabled by calling configureAutoTrack
:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ // REQUIRED, turn on/off the auto tracking enable: true, // REQUIRED, the event type, it's one of 'event', 'pageView' or 'session' type: 'pageView', // OPTIONAL, additional options for the tracked event. options: { // OPTIONAL, the attributes of the event attributes: { customizableField: 'attr' },
// OPTIONAL, the event name. By default, this is 'pageView' eventName: 'pageView',
// OPTIONAL, the type of app under tracking. By default, this is 'multiPageApp'. // You will need to change it to 'singlePage' if your app is a single-page app like React appType: 'multiPageApp',
// OPTIONAL, provide the URL for the event. urlProvider: () => { // the default function return window.location.origin + window.location.pathname; } }});
This behavior can be disabled by calling configureAutoTrack
:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ enable: false, type: 'pageView'});
Page Event Tracking
Use this type of tracking to track user interactions with specific elements on a page. Just attach the specified selectors to your DOM element and turn on the auto tracking.
This behavior can be enabled by calling configureAutoTrack
:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ // REQUIRED, turn on/off the auto tracking enable: true, // REQUIRED, the event type, it's one of 'event', 'pageView' or 'session' type: 'event', // OPTIONAL, additional options for the tracked event. options: { // OPTIONAL, the attributes of the event attributes: { customizableField: 'attr' }, // OPTIONAL, events you want to track. By default, this is 'click' events: ['click'],
// OPTIONAL, the prefix of the selectors. By default, this is 'data-amplify-analytics-' // Per https://www.w3schools.com/tags/att_global_data.asp, always start // the prefix with 'data' to avoid collisions with the user agent selectorPrefix: 'data-amplify-analytics-' }});
For example:
<!-- you want to track this button and send an event when it is clicked --><button data-amplify-analytics-on="click" data-amplify-analytics-name="click" data-amplify-analytics-attrs="attr1:attr1_value,attr2:attr2_value"/>
When the button above is clicked, an event will be sent automatically. This is equivalent to doing:
<script> import { record } from 'aws-amplify/analytics'; var sendEvent = function() { record({ name: 'click', attributes: { attr: 'attr', // the default ones attr1: attr1_value, // defined in the button component attr2: attr2_value // defined in the button component } }); };</script><button onclick="sendEvent()" />
This behavior can be disabled by calling configureAutoTrack
:
import { configureAutoTrack } from 'aws-amplify/analytics';
configureAutoTrack({ enable: false, type: 'event'});