@janiscommerce/app-analytics
v2.4.0
Published
Analytics methods for janis apps
Downloads
102
Maintainers
Readme
@janiscommerce/app-analytics
Library of methods to send information to firebase.
Firebase setting
Before getting started, you should have set up a new firebase project.
If you already have it set up, the next step to do would be to add the google-services.json file to the root directory of your module (/android/app).
Add the firebase sdk
For the Firebase SDKs to be able to access the google-services.json configuration values, you need the Google Services Gradle plugin.
Add the plugin as a dependency to your project-level build.gradle file: (android/build.gradle)
dependencies {
// ...
classpath 'com.google.gms:google-services:4.3.15'
}
Additionally, should add google services plugins in android/app/build.gradle and any Firebase SDKs you want to use in your app:
plugins {
// ...
// Add the Google services Gradle plugin
id("com.google.gms.google-services")
}
dependencies {
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:32.2.2')
// TODO: Add the dependencies for Firebase products you want to use
// When using the BoM, don't specify versions in Firebase dependencies
implementation 'com.google.firebase:firebase-analytics'
// Add the dependencies for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
}
Clean the project
cd android && ./gradlew clean && cd ..
PeerDependencies Installation
For the methods of this library to work, the following dependencies must be installed:
npm install @react-native-firebase/app
The @react-native-firebase/app module must be installed before using any other Firebase service.
Additionally, you need to install the dependency of the firebase service you want to use. For example this:
npm install @react-native-firebase/analytics
This dependency will allow that, when executing the methods of the package, these can be registered as events in firebase
Installation
npm install @janiscommerce/app-analytics
Usage
Modules
Classes
Functions
initialize
This method is responsible for initializing the analytics class and obtaining the user information to build the instance;
| Param | Type | Description | | --- | --- | --- | | appVersion | string | a string that represents the version number of the app |
Example
const analyticsInstance = await Analytics.initialize('1.22.0.0')
sendUserInfo
send userInfo Event to analytics console with user, app and device data.
sendAction
send an action log to analytics console
| Param | Type | Description | | --- | --- | --- | | actionName | string | is the name of the action the user completed | | screenName | string | is the name of the screen where the action was called | | params | object | An object with any additional information you would like to register for the event |
sendCustomEvent
send a new customEvent to analytics console
| Param | Type | Description | | --- | --- | --- | | eventName | string | is the name that will be received the event logged | | params | object | An object with any additional information you would like to register for the event | | requiredParams | array | array of extra strings required for a custom event |
sendScreenTracking
send a screenViewEvent to analytics console to record the screens the user visits
| Param | Type | Description | | --- | --- | --- | | screenName | string | Screen name the user is currently viewing. | | screenClass | string | Current class associated with the view the user is currently viewing. |
Analytics
Kind: global class
new Analytics(params)
This class is responsible for handling events to record user information, actions and custom events
| Param | Type | Description | | --- | --- | --- | | params | object | an object that contains all the information regarding the user that you want to add as initial information. This will then be used based on the need of each event. | | params.appVersion | string | a string that represents the version number of the app |
Example
import Analytics from '@janiscommerce/app-analytics'
const analytics = new Analytics({appVersion:'1.22.0'})
actionEvent(params) ⇒ boolean
is responsible for registering an event that reports the execution of an action by the user. Not use the camelCase format, since the function transforms the strings to lowercase. Instead write with spaces, as they will later be replaced by underscores
Kind: global function
Throws:
- an error when not pass valid params or any of the required parameters are missing
| Param | Type | Description | | --- | --- | --- | | params | object | data set to send | | params.actionName | string | name of the action that will be registered | | params.client | string | janis operating client | | params.userEmail | string | janis registered user email | | params.userId | string | registered user id | | params.language | string | language used in the application | | params.appVersion | string | app version in use | | params.screenName | string | screen where the action was called | | params.anotherKey... | string | any extra data that you want to be sent will be cataloged as dataEvent |
Example
import {actionEvent} from '@janiscommerce/app-analytics'
actionEvent({actionName:'button press',client: 'client',userEmail: '[email protected]',userId:'123456',appVersion:'1.20.0'})
customEvent(eventName, params, customRequiredParams) ⇒ boolean
allows to register a custom event, receives the name of the event to be registered and the associated data
Kind: global function
Throws:
- an error when some required params is not passed
| Param | Type | Description | | --- | --- | --- | | eventName | string | name of the event that we are going to register | | params | object | event parameters, information that we are going to send | | params.client | string | janis operating client | | params.userEmail | string | janis registered user email | | params.userId | string | registered user id | | params.appVersion | string | app version in use | | params.language | string | user app language | | params.anotherKey... | string | any extra data that you want to be sent will be cataloged as dataEvent | | customRequiredParams | Array.<string> | any extra parameters that may be required for any custom event |
Example
import {customEvent} from '@janiscommerce/app-analytics'
customEvent('event_init',{date:"2011-10-05T14:48:00.000Z"})
screenViewEvent(screenName, screenClass) ⇒ boolean
logs an event with information from the screen the user is viewing
Kind: global function
Throws:
- an error when some required params is not passed
| Param | Type | Description | | --- | --- | --- | | screenName | string | Screen name the user is currently viewing. | | screenClass | string | Current class associated with the view the user is currently viewing. | | params.client | string | janis operating client | | params.userEmail | string | janis registered user email | | params.userId | string | registered user id | | params.language | string | language used in the application | | params.appVersion | string | app version in use |
Example
import {screenViewEvent} from '@janiscommerce/app-analytics'
screenViewEvent('home','class_home')
userInfoEvent(params) ⇒ boolean
is responsible for registering an event that reports all data of user, device and app
Kind: global function
Throws:
- an error when not pass valid params
| Param | Type | Description | | --- | --- | --- | | params | object | data set to send | | params.appName | string | name of the app in use | | params.appVersion | string | app version in use | | params.device | string | device model | | params.osVersion | string | version of the model | | params.userEmail | string | janis registered user email | | params.userId | string | registered user id | | params.client | string | janis operating client | | params.language | string | language used in the application | | params.screenSize | string | screen size to user'device | | params.screenSize.screenHeight | string | user device screen height | | params.screenSize.screenWidth | string | user device screen width |
Example
import {userInfoEvent} from '@janiscommerce/app-analytics
userInfoEvent({appName:'app_name',appVersion:'1.0.0',device:'samsung a10',os:'android',osVersion:'10',userEmail:'[email protected]',userId:'012345678910', client: 'janis'})