chemerisuk / cordova-plugin-firebase-analytics

Cordova plugin for Firebase Analytics
MIT License
157 stars 308 forks source link

Cordova plugin for Firebase Analytics

NPM version NPM downloads NPM total downloads PayPal donate Twitter

Donate Your help is appreciated. Create a PR, submit a bug or just grab me :beer:

Index

Supported platforms

Installation

$ cordova plugin add cordova-plugin-firebase-analytics

If you get an error about CocoaPods being unable to find compatible versions, run

$ pod repo update

Use variables ANDROID_FIREBASE_BOM_VERSION or IOS_FIREBASE_POD_VERSION to override dependency versions for Firebase SDKs:

$ cordova plugin add cordova-plugin-firebase-analytics \
    --variable IOS_FIREBASE_POD_VERSION="9.3.0" \
    --variable ANDROID_FIREBASE_BOM_VERSION="30.3.1"

NOTE: on iOS in order to collect demographic, age, gender data etc. you should additionally include AdSupport.framework into your project.

Disabling analytics data collection

In some cases, you may wish to temporarily or permanently disable collection of Analytics data. You can set the value of variable ANALYTICS_COLLECTION_ENABLED to false to prevent collecting any user data:

$ cordova plugin add cordova-plugin-firebase-analytics \
    --variable ANALYTICS_COLLECTION_ENABLED=false

Later you can re-enable analytics data collection (for instance after getting end-user consent) using method setEnabled.

Disabling automatic screen collection

In order to disable automatic collection of screen view events set the value of variable AUTOMATIC_SCREEN_REPORTING_ENABLED to false:

$ cordova plugin add cordova-plugin-firebase-analytics \
    --variable AUTOMATIC_SCREEN_REPORTING_ENABLED=false

Adding required configuration files

Cordova supports resource-file tag for easy copying resources files. Firebase SDK requires google-services.json on Android and GoogleService-Info.plist on iOS platforms.

  1. Put google-services.json and/or GoogleService-Info.plist into the root directory of your Cordova project
  2. Add new tag for Android platform
<platform name="android">
    ...
    <resource-file src="https://github.com/chemerisuk/cordova-plugin-firebase-analytics/raw/master/google-services.json" target="app/google-services.json" />
</platform>
...
<platform name="ios">
    ...
    <resource-file src="https://github.com/chemerisuk/cordova-plugin-firebase-analytics/raw/master/GoogleService-Info.plist" />
</platform>

This way config files will be copied on cordova prepare step.

Functions

logEvent

logEvent(name, params): Promise<void>

Logs an app event.

Example

cordova.plugins.firebase.analytics.logEvent("my_event", {param1: "value1"});

Parameters

Name Type Description
name string Enent name
params Record<string, string | number | object[]> Event parameters

Returns

Promise<void>

Callback when operation is completed


resetAnalyticsData

resetAnalyticsData(): Promise<void>

Clears all analytics data for this instance from the device and resets the app instance ID.

Example

cordova.plugins.firebase.analytics.resetAnalyticsData();

Returns

Promise<void>

Callback when operation is completed


setCurrentScreen

setCurrentScreen(screenName): Promise<void>

Sets the current screen name, which specifies the current visual context in your app. This helps identify the areas in your app where users spend their time and how they interact with your app.

Example

cordova.plugins.firebase.analytics.setCurrentScreen("User dashboard");

Parameters

Name Type Description
screenName string Current screen name

Returns

Promise<void>

Callback when operation is completed


setDefaultEventParameters

setDefaultEventParameters(defaults): Promise<void>

Adds parameters that will be set on every event logged from the SDK, including automatic ones.

Example

cordova.plugins.firebase.analytics.setDefaultEventParameters({foo: "bar"});

Parameters

Name Type Description
defaults Record<string, string | number | object[]> Key-value default parameters map

Returns

Promise<void>

Callback when operation is completed


setEnabled

setEnabled(enabled): Promise<void>

Sets whether analytics collection is enabled for this app on this device.

Example

cordova.plugins.firebase.analytics.setEnabled(false);

Parameters

Name Type Description
enabled boolean Flag that specifies new state

Returns

Promise<void>

Callback when operation is completed


setUserId

setUserId(userId): Promise<void>

Sets the user ID property. This feature must be used in accordance with Google's Privacy Policy.

See

https://www.google.com/policies/privacy

Example

cordova.plugins.firebase.analytics.setUserId("12345");

Parameters

Name Type Description
userId string User's indentifier string

Returns

Promise<void>

Callback when operation is completed


setUserProperty

setUserProperty(name, value): Promise<void>

Sets a user property to a given value. Be aware of automatically collected user properties.

See

https://support.google.com/firebase/answer/6317486?hl=en&ref_topic=6317484

Example

cordova.plugins.firebase.analytics.setUserProperty("name1", "value1");

Parameters

Name Type Description
name string Property name
value string Property value

Returns

Promise<void>

Callback when operation is completed