@widergy/web-utils
Version:
Utility GO! Web utils
98 lines (73 loc) • 2.32 kB
Markdown
# web-utils
Utility GO! Web Utils
## Analytics
Se utiliza desde Frontend Web, mediante Google Analytics 4, para recoger datos de los sitios web y comprender mejor el recorrido del cliente.
### Funciones
#### - `initializeGA(analyticsTrackingId, options)`
Se encarga de inicializar analytics.
- `analyticsTrackingId`: Google Analytics Tracking ID.
- `options`: Objeto de configuración custom para Analytics.
- En caso de querer un tracker, se debe indicar acá:
```js
{ gaOptions: { name: ANALYTICS_TRACKER }, alwaysSendToDefaultTracker: false }
```
- En caso de no recibir ``options``, se usará como default
```js
{ titleCase: false }
```
#### - `sendGAEvent(category, action, label, value)`
Se utiliza para enviar eventos.
- `category`: Categoría del evento.
- `action`: Acción del evento.
- `label`: Label del evento.
- `value`: Valor del evento.
Por ejemplo, si se quiere enviar un evento sobre una recarga prepaga exitosa:
```js
sendGAEvent('Cobranzas', 'Generación de carga prepago', 'WDRG | Valor agregado | -OK- |', '1850')
```
#### - `sendGAPageView(pathname)`
Se utiliza para trackear cambios de página.
- `pathname`: URL de la página a trackear.
Ejemplo:
```js
sendGAPageView(ROUTES.BALANCE_TO_PAY);
```
#### - `setGAUserId(userId)`
Se utiliza para setear el id de usuario.
- `userId`: ID del usuario
Ejemplo:
```js
setGAUserId(getState().user.currentUser.id);
```
#### - `createMiddleware(eventDataDefinition)`
Se utiliza para crear un middleware que intercepte acciones de redux y envíe eventos de analytics.
- ``eventDataDefinition`` debe ser un diccionario de tipo de acción - función.
```js
const eventDataDefinition = {
actionType: function
}
```
Por ejemplo:
```js
const eventDataDefinition = {
[paymentActions.PREPAID_PAYMENT_REQUEST_FAILURE]: prepaidPaymentRequestFailure
}
```
Cada uno de estas funciones, al ejecutarse, debe devolver los valores a usar en el trackeo de eventos.
```js
const function = action => ({
category,
action,
label,
value
});
```
Por ejemplo:
```js
const prepaidPaymentRequestFailure = action => ({
category: categories.COBRANZAS,
action: actions.GENERACION_DE_CARGA_PREPAGO_ERRONEA,
label: `${labels.GENERACION_DE_PAGO_ERROR} ${action.payload}`,
value: Math.round(action.totalAmount)
});
```