Caution
@shopify/react-google-analytics
is deprecated.
Shopifolk, see Shopify/quilt-internal for information on the latest packages available for use internally.
Allows React apps to easily embed Google Analytics scripts.
yarn add @shopify/react-google-analytics
This library exports a <Universal />
& a <GaJS />
component, which allows React apps to easily embed Google Analytics scripts.
import {Universal} from '@shopify/react-google-analytics';
const UNIVERSAL_GA_ACCOUNT_ID = 'UA-xxxx-xx';
<Universal
account={UNIVERSAL_GA_ACCOUNT_ID}
domain={shopDomain}
disableTracking
debug
// NOTE: This prop will load and set the debug mode for Google Analytics
// https://developers.google.com/analytics/devguides/collection/analyticsjs/debugging
/>;
import {Universal} from '@shopify/react-google-analytics';
const UNIVERSAL_GA_ACCOUNT_ID = 'UA-xxxx-xx';
<Universal
account={UNIVERSAL_GA_ACCOUNT_ID}
domain={shopDomain}
set={{
foo: 'bar', // This translates to ga('set', 'foo', 'bar');
}}
/>;
import {Universal} from '@shopify/react-google-analytics';
const UNIVERSAL_GA_ACCOUNT_ID = 'UA-xxxx-xx';
<Universal
account={UNIVERSAL_GA_ACCOUNT_ID}
domain={shopDomain}
onLoad={(ga) => {
this.ga = ga;
}}
/>;
<button
onClick={() => {
this.ga('send', 'event', 'Videos', 'play', 'Cool Video');
}}
>
Play Video
</button>;
As browsers become more strict and tracking scripts blocked more frequently by users, there is a good chance this component will not be able to embed the Google Analytics script as intended. For these cases, you can pass an onError
callback as follows:
import {Universal} from '@shopify/react-google-analytics';
const UNIVERSAL_GA_ACCOUNT_ID = 'UA-xxxx-xx';
<Universal
account={UNIVERSAL_GA_ACCOUNT_ID}
domain={shopDomain}
onError={(error) => {
// do something with error
}}
/>;
For more info on using analytics.js see the documentation
WARNING: ga.js is a legacy library. If you are starting a new implementation, we recommend you use the latest version of this library, analytics.js.
import {GaJS} from '@shopify/react-google-analytics';
const GA_JS_ACCOUNT_ID = 'UA-xxxx-xx';
<GaJS
account={GA_JS_ACCOUNT_ID}
domain={shopDomain}
disableTracking
// NOTE: Disables the tracking snippet from sending data to Google Analytics.
// https://developers.google.com/analytics/devguides/collection/gajs/#disable
/>;
import {GaJS} from '@shopify/react-google-analytics';
const GA_JS_ACCOUNT_ID = 'UA-xxxx-xx';
<GaJS
account={GA_JS_ACCOUNT_ID}
domain={shopDomain}
set={{
foo: 'bar', // This translates to _gaq.push(['foo', 'bar']);
}}
/>;
import {GaJS} from '@shopify/react-google-analytics';
const GA_JS_ACCOUNT_ID = 'UA-xxxx-xx';
<GaJS
account={GA_JS_ACCOUNT_ID}
domain={shopDomain}
onLoad={(_gaq) => {
this._gaq = _gaq;
}}
/>;
<button
onClick={() => {
this._gaq.push(['_trackEvent', 'button3', 'clicked']);
}}
>
Play Video
</button>;
For more info on using ga.js see the documentation