@react-native-firebase/analytics
Version:
React Native Firebase - The analytics module provides out of the box support with Google Analytics for Firebase. Integration with the Android & iOS allows for in-depth analytical insight reporting, such as device information, location, user actions and mo
476 lines • 25.3 kB
TypeScript
import type { Analytics } from './types/analytics';
import type { ReactNativeFirebase } from '@react-native-firebase/app';
import type { AnalyticsSettings, AnalyticsCallOptions, ConsentSettings, AddPaymentInfoEventParameters, ScreenViewParameters, AddShippingInfoParameters, AddToCartEventParameters, AddToWishlistEventParameters, BeginCheckoutEventParameters, CampaignDetailsEventParameters, EarnVirtualCurrencyEventParameters, GenerateLeadEventParameters, JoinGroupEventParameters, LevelEndEventParameters, LevelStartEventParameters, LevelUpEventParameters, LoginEventParameters, PostScoreEventParameters, SelectContentEventParameters, PurchaseEventParameters, RefundEventParameters, RemoveFromCartEventParameters, SearchEventParameters, SelectItemEventParameters, SetCheckoutOptionEventParameters, SelectPromotionEventParameters, ShareEventParameters, SignUpEventParameters, SpendVirtualCurrencyEventParameters, UnlockAchievementEventParameters, ViewCartEventParameters, ViewItemEventParameters, ViewItemListEventParameters, ViewPromotionEventParameters, ViewSearchResultsParameters, SettingsOptions, EventParams, CustomEventName } from './types/analytics';
/**
* Returns an Analytics instance for the given app.
*/
export declare function getAnalytics(app?: ReactNativeFirebase.FirebaseApp): Analytics;
/**
* Returns an Analytics instance for the given app.
*/
export declare function initializeAnalytics(app: ReactNativeFirebase.FirebaseApp, _options?: AnalyticsSettings): Analytics;
/**
* Retrieves a unique Google Analytics identifier for the web client.
*/
export declare function getGoogleAnalyticsClientId(analytics: Analytics): Promise<string>;
/**
* Log a custom event with optional params.
*/
export declare function logEvent(analytics: Analytics, name: 'add_payment_info', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
coupon?: EventParams['coupon'];
payment_type?: EventParams['payment_type'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'add_shipping_info', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
coupon?: EventParams['coupon'];
shipping_tier?: EventParams['shipping_tier'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'add_to_cart', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'add_to_wishlist', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'begin_checkout', params?: {
currency?: EventParams['currency'];
value?: EventParams['value'];
coupon?: EventParams['coupon'];
items?: EventParams['items'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'checkout_progress', params?: {
checkout_step?: EventParams['checkout_step'];
checkout_option?: EventParams['checkout_option'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'exception', params?: {
description?: EventParams['description'];
fatal?: EventParams['fatal'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'generate_lead', params?: {
currency?: EventParams['currency'];
value?: EventParams['value'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'login', params: {
method: EventParams['method'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'page_view', params?: {
page_title?: EventParams['page_title'];
page_location?: EventParams['page_location'];
page_path?: EventParams['page_path'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'purchase', params?: {
affiliation?: EventParams['affiliation'];
coupon?: EventParams['coupon'];
currency?: EventParams['currency'];
items?: EventParams['items'];
shipping?: EventParams['shipping'];
tax?: EventParams['tax'];
value?: EventParams['value'];
transaction_id?: EventParams['transaction_id'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'refund', params?: {
affiliation?: EventParams['affiliation'];
coupon?: EventParams['coupon'];
currency?: EventParams['currency'];
items?: EventParams['items'];
shipping?: EventParams['shipping'];
tax?: EventParams['tax'];
value?: EventParams['value'];
transaction_id?: EventParams['transaction_id'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'remove_from_cart', params?: {
items?: EventParams['items'];
value?: EventParams['value'];
currency?: EventParams['currency'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'screen_view', params?: {
screen_name?: EventParams['screen_name'];
screen_class?: EventParams['screen_class'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'search', params: {
search_term: EventParams['search_term'];
number_of_nights?: number;
number_of_rooms?: number;
number_of_passengers?: number;
origin?: string;
destination?: string;
start_date?: string;
end_date?: string;
travel_class?: string;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'select_content', params: {
content_type: EventParams['content_type'];
item_id: EventParams['item_id'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'select_item', params: {
items?: EventParams['items'];
content_type: EventParams['content_type'];
item_list_id: EventParams['item_list_id'];
item_list_name: EventParams['item_list_name'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'select_promotion', params: {
creative_name: string;
creative_slot: string;
items?: EventParams['items'];
location_id: string;
promotion_id: EventParams['promotion_id'];
promotion_name: EventParams['promotion_name'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'set_checkout_option', params?: {
checkout_step?: EventParams['checkout_step'];
checkout_option?: EventParams['checkout_option'];
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'share', params: {
content_type: EventParams['content_type'];
item_id: EventParams['item_id'];
method: EventParams['method'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'sign_up', params: {
method: EventParams['method'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'timing_complete', params?: {
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'view_cart', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'view_item', params?: {
items?: EventParams['items'];
currency?: EventParams['currency'];
value?: EventParams['value'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'view_item_list', params?: {
items?: EventParams['items'];
item_list_id?: EventParams['item_list_id'];
item_list_name?: EventParams['item_list_name'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'view_promotion', params?: {
items?: EventParams['items'];
location_id?: string;
creative_name?: string;
creative_slot?: string;
promotion_id?: EventParams['promotion_id'];
promotion_name?: EventParams['promotion_name'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent(analytics: Analytics, name: 'view_search_results', params: {
search_term: EventParams['search_term'];
}, options?: AnalyticsCallOptions): Promise<void>;
export declare function logEvent<T extends string>(analytics: Analytics, name: CustomEventName<T>, params?: {
[key: string]: any;
}, options?: AnalyticsCallOptions): Promise<void>;
/**
* If true, allows the device to collect analytical data and send it to Firebase. Useful for GDPR.
*/
export declare function setAnalyticsCollectionEnabled(analytics: Analytics, enabled: boolean): Promise<void>;
/**
* Sets the duration of inactivity that terminates the current session.
*/
export declare function setSessionTimeoutDuration(analytics: Analytics, milliseconds?: number): Promise<void>;
/**
* Retrieve the app instance id of the application.
*/
export declare function getAppInstanceId(analytics: Analytics): Promise<string | null>;
/**
* Retrieves the session id from the client.
* On iOS, Firebase SDK may return an error that is handled internally and may take many minutes to return a valid value. Check native debug logs for more details.
*/
export declare function getSessionId(analytics: Analytics): Promise<number | null>;
/**
* Gives a user a unique identification.
*/
export declare function setUserId(analytics: Analytics, id: string | null): Promise<void>;
/**
* Sets a key/value pair of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
*/
export declare function setUserProperty(analytics: Analytics, name: string, value: string | null): Promise<void>;
/**
* Sets multiple key/value pairs of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
*/
export declare function setUserProperties(analytics: Analytics, properties: {
[key: string]: string | null;
}, options?: AnalyticsCallOptions): Promise<void>;
/**
* Clears all analytics data for this instance from the device and resets the app instance ID.
*/
export declare function resetAnalyticsData(analytics: Analytics): Promise<void>;
/**
* E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user. Note: This is different from the in-app purchase event, which is reported automatically for Google Play-based apps.
*/
export declare function logAddPaymentInfo(analytics: Analytics, params: AddPaymentInfoEventParameters): Promise<void>;
/**
* Sets or clears the screen name and class the user is currently viewing.
*/
export declare function logScreenView(analytics: Analytics, params: ScreenViewParameters): Promise<void>;
/**
* Add Payment Info event. This event signifies that a user has submitted their payment information to your app.
*/
export declare function logAddShippingInfo(analytics: Analytics, params: AddShippingInfoParameters): Promise<void>;
/**
* E-Commerce Add To Cart event.
*/
export declare function logAddToCart(analytics: Analytics, params: AddToCartEventParameters): Promise<void>;
/**
* E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist.
*/
export declare function logAddToWishlist(analytics: Analytics, params: AddToWishlistEventParameters): Promise<void>;
/**
* App Open event. By logging this event when an App is moved to the foreground, developers can understand how often users leave and return during the course of a Session.
*/
export declare function logAppOpen(analytics: Analytics): Promise<void>;
/**
* E-Commerce Begin Checkout event. This event signifies that a user has begun the process of checking out.
*/
export declare function logBeginCheckout(analytics: Analytics, params: BeginCheckoutEventParameters): Promise<void>;
/**
* Log this event to supply the referral details of a re-engagement campaign.
*/
export declare function logCampaignDetails(analytics: Analytics, params: CampaignDetailsEventParameters): Promise<void>;
/**
* Earn Virtual Currency event. This event tracks the awarding of virtual currency in your app.
*/
export declare function logEarnVirtualCurrency(analytics: Analytics, params: EarnVirtualCurrencyEventParameters): Promise<void>;
/**
* Generate Lead event. Log this event when a lead has been generated in the app.
*/
export declare function logGenerateLead(analytics: Analytics, params: GenerateLeadEventParameters): Promise<void>;
/**
* Join Group event. Log this event when a user joins a group such as a guild, team or family.
*/
export declare function logJoinGroup(analytics: Analytics, params: JoinGroupEventParameters): Promise<void>;
/**
* Level End event.
*/
export declare function logLevelEnd(analytics: Analytics, params: LevelEndEventParameters): Promise<void>;
/**
* Level Start event.
*/
export declare function logLevelStart(analytics: Analytics, params: LevelStartEventParameters): Promise<void>;
/**
* Level Up event. This event signifies that a player has leveled up in your gaming app.
*/
export declare function logLevelUp(analytics: Analytics, params: LevelUpEventParameters): Promise<void>;
/**
* Login event. Apps with a login feature can report this event to signify that a user has logged in.
*/
export declare function logLogin(analytics: Analytics, params: LoginEventParameters): Promise<void>;
/**
* Post Score event. Log this event when the user posts a score in your gaming app.
*/
export declare function logPostScore(analytics: Analytics, params: PostScoreEventParameters): Promise<void>;
/**
* Select Content event. This general purpose event signifies that a user has selected some content of a certain type in an app.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SelectContentEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSelectContent(analytics: Analytics, params: SelectContentEventParameters): Promise<void>;
/**
* E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {PurchaseEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logPurchase(analytics: Analytics, params: PurchaseEventParameters): Promise<void>;
/**
* E-Commerce Refund event. This event signifies that a refund was issued.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {RefundEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logRefund(analytics: Analytics, params: RefundEventParameters): Promise<void>;
/**
* Remove from cart event.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {RemoveFromCartEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logRemoveFromCart(analytics: Analytics, params: RemoveFromCartEventParameters): Promise<void>;
/**
* Search event. Apps that support search features can use this event to contextualize search operations by supplying the appropriate, corresponding parameters.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SearchEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSearch(analytics: Analytics, params: SearchEventParameters): Promise<void>;
/**
* Select Item event. This event signifies that an item was selected by a user from a list.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SelectItemEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSelectItem(analytics: Analytics, params: SelectItemEventParameters): Promise<void>;
/**
* Set checkout option event.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SetCheckoutOptionEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSetCheckoutOption(analytics: Analytics, params: SetCheckoutOptionEventParameters): Promise<void>;
/**
* Select promotion event. This event signifies that a user has selected a promotion offer.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SelectPromotionEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSelectPromotion(analytics: Analytics, params: SelectPromotionEventParameters): Promise<void>;
/**
* Share event. Apps with social features can log the Share event to identify the most viral content.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ShareEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logShare(analytics: Analytics, params: ShareEventParameters): Promise<void>;
/**
* Sign Up event. This event indicates that a user has signed up for an account in your app.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SignUpEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSignUp(analytics: Analytics, params: SignUpEventParameters): Promise<void>;
/**
* Spend Virtual Currency event. This event tracks the sale of virtual goods in your app.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {SpendVirtualCurrencyEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logSpendVirtualCurrency(analytics: Analytics, params: SpendVirtualCurrencyEventParameters): Promise<void>;
/**
* Tutorial Begin event. This event signifies the start of the on-boarding process in your app.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @returns {Promise<void>}
*/
export declare function logTutorialBegin(analytics: Analytics): Promise<void>;
/**
* Tutorial End event. Use this event to signify the user's completion of your app's on-boarding process.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @returns {Promise<void>}
*/
export declare function logTutorialComplete(analytics: Analytics): Promise<void>;
/**
* Unlock Achievement event. Log this event when the user has unlocked an achievement in your game.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {UnlockAchievementEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logUnlockAchievement(analytics: Analytics, params: UnlockAchievementEventParameters): Promise<void>;
/**
* E-commerce View Cart event. This event signifies that a user has viewed their cart.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ViewCartEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logViewCart(analytics: Analytics, params: ViewCartEventParameters): Promise<void>;
/**
* View Item event. This event signifies that some content was shown to the user.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ViewItemEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logViewItem(analytics: Analytics, params: ViewItemEventParameters): Promise<void>;
/**
* View Item List event. Log this event when the user has been presented with a list of items of a certain category.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ViewItemListEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logViewItemList(analytics: Analytics, params: ViewItemListEventParameters): Promise<void>;
/**
* View Promotion event. This event signifies that a promotion was shown to a user.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ViewPromotionEventParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logViewPromotion(analytics: Analytics, params: ViewPromotionEventParameters): Promise<void>;
/**
* View Search Results event. Log this event when the user has been presented with the results of a search.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ViewSearchResultsParameters} params - Event parameters.
* @returns {Promise<void>}
*/
export declare function logViewSearchResults(analytics: Analytics, params: ViewSearchResultsParameters): Promise<void>;
/**
* Adds parameters that will be set on every event logged from the SDK, including automatic ones.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {object} [params={}] - Parameters to be added to the map of parameters added to every event.
* @returns {Promise<void>}
*/
export declare function setDefaultEventParameters(analytics: Analytics, params?: {
[key: string]: any;
}): Promise<void>;
/**
* start privacy-sensitive on-device conversion management.
* This is iOS-only.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {string} emailAddress - Email address, properly formatted complete with domain name e.g, 'user@example.com'.
* @returns {Promise<void>}
*/
export declare function initiateOnDeviceConversionMeasurementWithEmailAddress(analytics: Analytics, emailAddress: string): Promise<void>;
/**
* start privacy-sensitive on-device conversion management.
* This is iOS-only.
* This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
*
* @param analytics Analytics instance.
* @param hashedEmailAddress sha256-hashed of normalized email address, properly formatted complete with domain name e.g, 'user@example.com'
* @link https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
*/
export declare function initiateOnDeviceConversionMeasurementWithHashedEmailAddress(analytics: Analytics, hashedEmailAddress: string): Promise<void>;
/**
* start privacy-sensitive on-device conversion management.
* This is iOS-only.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {string} phoneNumber - Phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
* @returns {Promise<void>}
*/
export declare function initiateOnDeviceConversionMeasurementWithPhoneNumber(analytics: Analytics, phoneNumber: string): Promise<void>;
/**
* start privacy-sensitive on-device conversion management.
* This is iOS-only.
* This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
*
* @param analytics Analytics instance.
* @param hashedPhoneNumber sha256-hashed of normalized phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
* @link https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
*/
export declare function initiateOnDeviceConversionMeasurementWithHashedPhoneNumber(analytics: Analytics, hashedPhoneNumber: string): Promise<void>;
/**
* Checks four different things.
* 1. Checks if it's not a browser extension environment.
* 2. Checks if cookies are enabled in current browser.
* 3. Checks if IndexedDB is supported by the browser environment.
* 4. Checks if the current browser context is valid for using IndexedDB.open().
* @returns {Promise<boolean>}
*/
export declare function isSupported(): Promise<boolean>;
/**
* Sets the applicable end user consent state for this app.
* @param {FirebaseAnalytics} analytics - Analytics instance.
* @param {ConsentSettings} consentSettings - See ConsentSettings.
* @returns {Promise<void>}
*/
export declare function setConsent(analytics: Analytics, consentSettings: ConsentSettings): Promise<void>;
/**
* Configures Firebase Analytics to use custom gtag or dataLayer names.
* Intended to be used if gtag.js script has been installed on this page independently of Firebase Analytics, and is using non-default names for either the gtag function or for dataLayer. Must be called before calling `getAnalytics()` or it won't have any effect. Web only.
* @param {SettingsOptions} options - See SettingsOptions.
* @returns {void}
*/
export declare function settings(_options: SettingsOptions): void;
//# sourceMappingURL=modular.d.ts.map