FIRAnalytics

@interface FIRAnalytics : NSObject

The top level Firebase Analytics singleton that provides methods for logging events and setting user properties. See the developer guides for general information on using Firebase Analytics in your apps.

  • Logs an app event. The event can have up to 25 parameters. Events with the same name must have the same parameters. Up to 500 event names are supported. Using predefined events and/or parameters is recommended for optimal reporting.

    The following event names are reserved and cannot be used:

    • app_clear_data
    • app_remove
    • app_update
    • error
    • first_open
    • in_app_purchase
    • notification_dismiss
    • notification_foreground
    • notification_open
    • notification_receive
    • os_update
    • session_start
    • user_engagement

    Declaration

    Swift

    class func logEvent(withName name: String, parameters: [String : NSObject]?)

    Objective-C

    + (void)logEventWithName:(nonnull NSString *)name
                  parameters:
                      (nullable NSDictionary<NSString *, NSObject *> *)parameters;

    Parameters

    name

    The name of the event. Should contain 1 to 40 alphanumeric characters or underscores. The name must start with an alphabetic character. Some event names are reserved. See FIREventNames.h for the list of reserved event names. The firebase_ prefix is reserved and should not be used. Note that event names are case-sensitive and that logging two events whose names differ only in case will result in two distinct events.

    parameters

    The dictionary of event parameters. Passing nil indicates that the event has no parameters. Parameter names can be up to 40 characters long and must start with an alphabetic character and contain only alphanumeric characters and underscores. Only NSString and NSNumber (signed 64-bit integer and 64-bit floating-point number) parameter types are supported. NSString parameter values can be up to 100 characters long. The firebase_ prefix is reserved and should not be used for parameter names.

  • Sets a user property to a given value. Up to 25 user property names are supported. Once set, user property values persist throughout the app lifecycle and across sessions.

    The following user property names are reserved and cannot be used:

    • first_open_time
    • last_deep_link_referrer
    • user_id

    Declaration

    Swift

    class func setUserPropertyString(_ value: String?, forName name: String)

    Objective-C

    + (void)setUserPropertyString:(nullable NSString *)value
                          forName:(nonnull NSString *)name;

    Parameters

    value

    The value of the user property. Values can be up to 36 characters long. Setting the value to nil removes the user property.

    name

    The name of the user property to set. Should contain 1 to 24 alphanumeric characters or underscores and must start with an alphabetic character. The firebase_ prefix is reserved and should not be used for user property names.

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

    Declaration

    Swift

    class func setUserID(_ userID: String?)

    Objective-C

    + (void)setUserID:(nullable NSString *)userID;

    Parameters

    userID

    The user ID to ascribe to the user of this app on this device, which must be non-empty and no more than 36 characters long. Setting userID to nil removes the user ID.

  • 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.

    Note that screen reporting is enabled automatically and records the class name of the current UIViewController for you without requiring you to call this method. If you implement viewDidAppear in your UIViewController but do not call [super viewDidAppear:], that screen class will not be automatically tracked. The class name can optionally be overridden by calling this method in the viewDidAppear callback of your UIViewController and specifying the screenClassOverride parameter.

    If your app does not use a distinct UIViewController for each screen, you should call this method and specify a distinct screenName each time a new screen is presented to the user.

    The screen name and screen class remain in effect until the current UIViewController changes or a new call to setScreenName:screenClass: is made.

    Declaration

    Swift

    class func setScreenName(_ screenName: String?, screenClass screenClassOverride: String?)

    Objective-C

    + (void)setScreenName:(nullable NSString *)screenName
              screenClass:(nullable NSString *)screenClassOverride;

    Parameters

    screenName

    The name of the current screen. Should contain 1 to 100 characters. Set to nil to clear the current screen name.

    screenClassOverride

    The name of the screen class. Should contain 1 to 100 characters. By default this is the class name of the current UIViewController. Set to nil to revert to the default class name.

  • Handles events related to a URL session that are waiting to be processed.

    For optimal use of Firebase Analytics, call this method from the [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler] method of the app delegate in your app.

    Declaration

    Swift

    class func handleEvents(forBackgroundURLSession identifier: String!, completionHandler: (() -> Void)!)

    Objective-C

    + (void)handleEventsForBackgroundURLSession:(NSString *)identifier
                              completionHandler:(void (^)(void))completionHandler;

    Parameters

    identifier

    The identifier of the URL session requiring attention.

    completionHandler

    The completion handler to call when you finish processing the events. Calling this completion handler lets the system know that your app’s user interface is updated and a new snapshot can be taken.

  • Handles the event when the app is launched by a URL.

    Call this method from UIApplicationDelegate application:openURL:options:, or UIApplicationDelegate application:openURL:sourceApplication:annotation: in your app.

    Declaration

    Swift

    class func handleOpen(_ url: URL!)

    Objective-C

    + (void)handleOpenURL:(NSURL *)url;

    Parameters

    url

    The URL resource to open. This resource can be a network resource or a file.

  • Handles the event when the app receives data associated with user activity that includes a Universal Link (on iOS 9.0 and above).

    Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app delegate (on iOS 9.0 and above).

    Declaration

    Swift

    class func handleUserActivity(_ userActivity: Any!)

    Objective-C

    + (void)handleUserActivity:(id)userActivity;

    Parameters

    userActivity

    The activity object containing the data associated with the task the user was performing.