Skip to main content

Analytics

Track page events and user clicks.

Version

Installation​

NPM​

npm install @availity/analytics

Yarn​

yarn add @availity/analytics

Usage​

The <Analytics /> component wraps your app to enable tracking of user interactions and page views. For a helpful overview of how to setup these tools, read our Setting Up Logging guide.

This package works alongside @availity/analytics-core. Starting with the Setting Up Logging guide will give you a better understanding of how they work together.

Auto Tracking​

Auto tracking logs user interactions based on data-analytics-... attributes on DOM elements, eliminating the need for custom event handlers.

import React from 'react';
import Analytics from '@availity/analytics';
import { avLogMessagesApiV2 } from '@availity/api-axios';
import { AvSplunkAnalytics } from '@availity/analytics-core';

const splunkPlugin = new AvSplunkAnalytics(avLogMessagesApiV2, true);

const App = () => (
<Analytics plugins={[splunkPlugin]}>
<button
type="button"
data-analytics-action="click"
data-analytics-my-value="123"
>
Button with analytics
</button>
</Analytics>
);

Read more about auto tracking and its limitations.

Manual Tracking​

Use the useAnalytics hook to access the analytics instance and call trackEvent() directly.

import React from 'react';
import Analytics, { useAnalytics } from '@availity/analytics';
import { avLogMessagesApiV2 } from '@availity/api-axios';
import { AvSplunkAnalytics } from '@availity/analytics-core';

const splunkPlugin = new AvSplunkAnalytics(avLogMessagesApiV2, true);

const MyComponent = () => {
const analytics = useAnalytics();

const handleClick = () => {
analytics.trackEvent({
level: 'info',
action: 'click',
label: 'my-button',
});
};

return <button onClick={handleClick}>Track me</button>;
};

const App = () => (
<Analytics plugins={[splunkPlugin]}>
<MyComponent />
</Analytics>
);

Props​

children: ReactNode​

Required. The child components to render inside the analytics provider.

plugins?: AnalyticsPlugin[]​

Array of plugins to pass to the underlying AvAnalytics class instance. Read more about analytics plugins.

pageTracking?: boolean​

Enable or disable page tracking on initialization. Default: true.

autoTrack?: boolean​

Enable or disable auto tracking on initialization. Default: true.

recursive?: boolean​

Enable or disable recursive functionality on initialization. Default: true.

attributePrefix?: string​

Customize the prefix used for data analytics attributes. Default: 'data-analytics'.

eventModifiers?: string[]​

Array of event modifiers for action type matching. Default: ['action'].

useAnalytics​

Hook giving access to the AvAnalytics instance for manual event tracking.

import { useAnalytics } from '@availity/analytics';

const Example = () => {
const analytics = useAnalytics();

return (
<button onClick={() => analytics.trackEvent({ action: 'click', label: 'example' })}>
Click Me
</button>
);
};

Additional Exports​

The package also exports the following for advanced use cases:

  • AnalyticsContext — The React context used by the provider, useful for testing or custom wrappers.
  • Types: AnalyticsProps, AnalyticsPlugin, AnalyticsEvent, AnalyticsContextValue, TrackEventOptions