@telefonica/google-analytics
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@telefonica/google-analytics

Google Analytics 4 library for Telefonica web projects

Usage

import {initAnalytics, logEvent, setScreenName} from '@telefonica/google-analytics';

initAnalytics('G-XXXXXXXXXX');
setScreenName('my_screen_name');
logEvent({name: 'my_event_name', foo: 'bar'});

Things to know

  • initAnalytics must be called before any other function. This function will inject the gtag script in the document.

  • initAnalytics function is idempotent. Subsequent calls to initAnalytics will not have any effect.

  • logEvent and setScreenName calls won't send any data to Google Analytics until initAnalytics is called. If you call logEvent or setScreenName before initAnalytics, the calls will be queued and sent to Google Analytics once initAnalytics is done.

  • Events are normalized before being sent to Google Analytics:

    • Event params name are truncated to 40 characters.
    • Event params value are truncated to 100 characters.
    • Not allowed characters are removed from event params value.
    • Multiple white spaces are removed and spaces are replaced by underscores in event params value.
    • The same normalization is applied to screen names.
  • If setScreenName is called multiple times with the same screen name, only the first call will be sent to Google Analytics.

  • setScreenName and logEvent return a promise that resolves when the event has been sent to Google Analytics.

  • All the events are automatically filled with a screenName param containing the last screen name set with setScreenName.

Use custom Api

Events are sent to Google servers by default (using gtagApi), but you can use a custom api to change this behavior. For example, Novum app uses the webview bridge to send the events to the native app, and then the native app sends the events to Firebase.

Another use case of custom api is to log events in the browser console in development mode:

import {initAnalytics, consoleApi, gtagApi} from '@telefonica/google-analytics';

initAnalytics('G-XXXXXXXXXX', {
  api: process.env.NODE_ENV === 'production' ? gtagApi : consoleApi,
});

CSP

If you are using a CSP, you must add the following directives for Google Analytics to work:

script-src https://*.googletagmanager.com; connect-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; img-src https://*.google-analytics.com https://*.googletagmanager.com;

Check Google docs for CSP in Google Analytics 4

Readme

Keywords

none

Package Sidebar

Install

npm i @telefonica/google-analytics

Weekly Downloads

8

Version

1.0.0

License

UNLICENSED

Unpacked Size

56.6 kB

Total Files

17

Last publish

Collaborators

  • tdaf
  • aura
  • living-apps
  • lifecyle-novum