Provides all available methods for defining and reporting Analytics from use of your app. More...
#import <Flurry.h>
Inherits NSObject.
Class Methods | |
(void) | + setDelegate: |
Set Flurry delegate for callback on session creation. More... | |
(void) | + setDelegate:withCallbackQueue: |
Set Flurry delegate for callback on session creation with a callback queue. More... | |
(BOOL) | + activeSessionExists |
Returns true if a session currently exists and is active. More... | |
(nonnull NSString *) | + getSessionID |
Returns the session ID of the current active session. More... | |
(void) | + pauseBackgroundSession |
Pauses a Flurry session left running in background. More... | |
(void) | + openPrivacyDashboard: |
Open privacy dashboard in Safari Browser async with a completion handler callback. More... | |
(void) | + setAppVersion: |
Explicitly specifies the App Version that Flurry will use to group Analytics data. More... | |
(void) | + setSessionContinueSeconds: |
Set the timeout for expiring a Flurry session. More... | |
(void) | + setCountBackgroundSessions: |
Enables opting out of background sessions being counted towards total sessions. More... | |
(BOOL) | + isInitialized |
indicates whether a Flurry session has been initialized More... | |
(FlurryEventRecordStatus) | + logStandardEvent:withParameters: |
Records a standard parameterized event specified by eventType with parameters . More... | |
Pre-Session Calls | |
Optional sdk settings that should be called before start session. | |
(nonnull NSString *) | + getFlurryAgentVersion |
Retrieves the Flurry Agent Build Version. More... | |
(void) | + setShowErrorInLogEnabled: |
Displays an exception in the debug log if thrown during a Session. More... | |
(void) | + setLogLevel: |
Generates debug logs to console. More... | |
startSession APIs' | |
API to start session by passing API key, optionally passing launchOptions and/or customizing the session settings/options Only one of the API must be called to start the session | |
(void) | + startSession: |
Start a Flurry session for the project denoted by apiKey . More... | |
(void) | + startSession:withOptions: |
Start a Flurry session for the project denoted by apiKey . Gather more information by passing in the launchOptions. More... | |
(void) | + startSession:withOptions:withSessionBuilder: |
Start a Flurry session for the project denoted by apiKey by specifying the desired session construction options. Gather more information by passing in the launchOptions. More... | |
(void) | + startSession:withSessionBuilder: |
Start a Flurry session for the project denoted by apiKey by specifying the desired session construction options. More... | |
User Info | |
Methods to set user information. | |
(void) | + setUserID: |
Assign a unique id for a user in your app. More... | |
(void) | + setAge: |
Set your user's age in years. More... | |
(void) | + setGender: |
Set your user's gender. More... | |
Location Reporting | |
Opt-out Methods for setting location information. | |
(BOOL) | + trackPreciseLocation: |
Turn on/off location information of the session (default is on). More... | |
(void) | + setIAPReportingEnabled: |
Enables implicit recording of Apple Store transactions. More... | |
(void) | + addSessionOrigin: |
Adds an session origin attached to each session specified by sessionOriginName . More... | |
(void) | + addSessionOrigin:withDeepLink: |
Adds an session origin and deep link attached to each session specified by sessionOriginName and deepLink . More... | |
(void) | + sessionProperties: |
Adds a custom parameterized session parameters parameters . More... | |
(void) | + addOrigin:withVersion: |
Adds an SDK origin specified by originName and originVersion . More... | |
(void) | + addOrigin:withVersion:withParameters: |
Adds a custom parameterized origin specified by originName with originVersion and parameters . More... | |
Event and Error Logging | |
Methods for reporting custom events and errors during the session. | |
(FlurryEventRecordStatus) | + logEvent: |
Records a custom event specified by eventName . More... | |
(FlurryEventRecordStatus) | + logEvent:withParameters: |
Records a custom parameterized event specified by eventName with parameters . More... | |
(FlurryEventRecordStatus) | + logEvent:syndicationID:parameters: |
Records a syndicated event specified by syndicationEvent . More... | |
(void) | + logPaymentTransaction:statusCallback: |
Records an Apple Store transaction. More... | |
(void) | + logPaymentTransactionWithTransactionId:productId:quantity:price:currency:productName:transactionState:userDefinedParams:statusCallback: |
Records Apple store IAP transaction params and user defined transaction params manually. More... | |
(FlurryEventRecordStatus) | + logEvent:timed: |
Records a timed event specified by eventName . More... | |
(FlurryEventRecordStatus) | + logEvent:withParameters:timed: |
Records a custom parameterized timed event specified by eventName with parameters . More... | |
(void) | + endTimedEvent:withParameters: |
Ends a timed event specified by eventName and optionally updates parameters with parameters . More... | |
(void) | + logError:message:exception: |
Records an app exception. Commonly used to catch unhandled exceptions. More... | |
(void) | + logError:message:exception:withParameters: |
Records an app exception. Commonly used to catch unhandled exceptions. More... | |
(void) | + logError:message:error: |
Records an app error for reporting to Flurry. More... | |
(void) | + logError:message:error:withParameters: |
Records an app error. More... | |
(void) | + leaveBreadcrumb: |
Leave a breadcrumb. More... | |
Provides all available methods for defining and reporting Analytics from use of your app.
Set of methods that allow developers to capture detailed, aggregate information regarding the use of their app by end users.
+ (BOOL) activeSessionExists |
Returns true if a session currently exists and is active.
+ (void) addOrigin: | (nonnull NSString *) | originName |
Adds an SDK origin specified by originName
and originVersion
.
This method allows you to specify origin within your Flurry SDK wrapper. As a general rule you should capture all the origin info related to your wrapper for Flurry SDK after every session start.
originName | Name of the origin. |
originVersion | Version string of the origin wrapper |
+ (void) addOrigin: | (nonnull NSString *) | originName | |
withVersion: | (nonnull NSString *) | originVersion | |
Adds a custom parameterized origin specified by originName
with originVersion
and parameters
.
This method overloads #addOrigin to allow you to associate parameters with an origin attribute. Parameters are valuable as they allow you to store characteristics of an origin.
originName | Name of the origin. |
originVersion | Version string of the origin wrapper |
parameters | An immutable copy of map containing Name-Value pairs of parameters. |
+ (void) addSessionOrigin: |
Adds an session origin attached to each session specified by sessionOriginName
.
This method allows you to specify session origin for each session. This is different than addOrigin:withVersion: (originAttributes) which is used for third party wrappers after every session start.
sessionOriginName | Name of the origin. |
+ (void) addSessionOrigin: | (nonnull NSString *) | sessionOriginName |
Adds an session origin and deep link attached to each session specified by sessionOriginName
and deepLink
.
This method allows you to specify session origin and deep link for each session. This is different than addOrigin:withVersion: (originAttributes) which is used for third party wrappers after every session start.
sessionOriginName | Name of the origin. |
deepLink | Url of the deep Link. |
+ (void) endTimedEvent: | (nonnull NSString *) | eventName |
Ends a timed event specified by eventName
and optionally updates parameters with parameters
.
This method ends an existing timed event. If parameters are provided, this will overwrite existing parameters with the same name or create new parameters if the name does not exist in the parameter map set by logEvent:withParameters:timed:.
eventName | Name of the event. For maximum effectiveness, we recommend using a naming scheme that can be easily understood by non-technical people in your business domain. |
parameters | An immutable copy of map containing Name-Value pairs of parameters. |
+ (nonnull NSString *) getFlurryAgentVersion |
Retrieves the Flurry Agent Build Version.
This is an optional method that retrieves the Flurry Agent Version the app is running under. It is most often used if reporting an unexpected behavior of the SDK to Flurry Support
+ (nonnull NSString*) getSessionID |
Returns the session ID of the current active session.
+ (BOOL) isInitialized |
+ (void) leaveBreadcrumb: | (nonnull NSString *) | breadcrumb |
Leave a breadcrumb.
breadcrumb | string. |
+ (void) logError: | (nonnull NSString *) | errorID | |
message: | (nullable NSString *) | message | |
Records an app error for reporting to Flurry.
errorID | Name of the error. |
message | The message to associate with the error. |
error | The error object to report. |
+ (void) logError: | (nonnull NSString *) | errorID | |
message: | (nullable NSString *) | message | |
error: | (nullable NSError *) | error | |
Records an app error.
errorID | Name of the error. |
message | The message to associate with the error. |
error | The error object to report. |
parameters | Custom parameters associated with the error |
+ (void) logError: | (nonnull NSString *) | errorID | |
message: | (nullable NSString *) | message | |
Records an app exception. Commonly used to catch unhandled exceptions.
This method captures an exception for reporting to Flurry. We recommend adding an uncaught exception listener to capture any exceptions that occur during usage that is not anticipated by your app.
errorID | Name of the error. |
message | The message to associate with the error. |
exception | The exception object to report. |
+ (void) logError: | (nonnull NSString *) | errorID | |
message: | (nullable NSString *) | message | |
exception: | (nullable NSException *) | exception | |
Records an app exception. Commonly used to catch unhandled exceptions.
This method overloads on logError:message:exception: to capture an exception with parameters for reporting to Flurry. We recommend adding an uncaught exception listener to capture any exceptions that occur during usage that is not anticipated by your app.
errorID | Name of the error. |
message | The message to associate with the error. |
exception | The exception object to report. |
parameters | Custom parameters associated with the exception |
+ (FlurryEventRecordStatus) logEvent: |
Records a custom event specified by eventName
.
This method allows you to specify custom events within your app. As a general rule you should capture events related to user navigation within your app, any action around monetization, and other events as they are applicable to tracking progress towards your business goals.
eventName | Name of the event. For maximum effectiveness, we recommend using a naming scheme that can be easily understood by non-technical people in your business domain. |
+ (FlurryEventRecordStatus) logEvent: | (FlurrySyndicationEvent) | syndicationEvent | |
syndicationID: | (nonnull NSString *) | syndicationID | |
Records a syndicated event specified by syndicationEvent
.
This method is excusively for use by the Tumblr App, calls from others app will be ignored.
syndicationEvent | syndication event. |
syndicationID | syndication ID that is associated with the event |
parameters | use this to pass in syndication parameters such as kSyndicationiOSDeepLink, kSyndicationAndroidDeepLink, kSyndicationWebLinkDeepLink |
+ (FlurryEventRecordStatus) logEvent: | (nonnull NSString *) | eventName |
Records a timed event specified by eventName
.
This method overloads #logEvent to allow you to capture the length of an event. This can be extremely valuable to understand the level of engagement with a particular action. For example, you can capture how long a user spends on a level or reading an article.
eventName | Name of the event. For maximum effectiveness, we recommend using a naming scheme that can be easily understood by non-technical people in your business domain. |
timed | Specifies the event will be timed.. |
+ (FlurryEventRecordStatus) logEvent: | (nonnull NSString *) | eventName |
Records a custom parameterized event specified by eventName
with parameters
.
This method overloads #logEvent to allow you to associate parameters with an event. Parameters are extremely valuable as they allow you to store characteristics of an action. For example, if a user purchased an item it may be helpful to know what level that user was on. By setting this parameter you will be able to view a distribution of levels for the purcahsed event on the Flurrly Dev Portal.
eventName | Name of the event. For maximum effectiveness, we recommend using a naming scheme that can be easily understood by non-technical people in your business domain. |
parameters | An immutable copy of map containing Name-Value pairs of parameters. |
+ (FlurryEventRecordStatus) logEvent: | (nonnull NSString *) | eventName | |
withParameters: | (nullable NSDictionary *) | parameters | |
Records a custom parameterized timed event specified by eventName
with parameters
.
This method overloads #logEvent to allow you to capture the length of an event with parameters. This can be extremely valuable to understand the level of engagement with a particular action and the characteristics associated with that action. For example, you can capture how long a user spends on a level or reading an article. Parameters can be used to capture, for example, the author of an article or if something was purchased while on the level.
eventName | Name of the event. For maximum effectiveness, we recommend using a naming scheme that can be easily understood by non-technical people in your business domain. |
parameters | An immutable copy of map containing Name-Value pairs of parameters. |
timed | Specifies the event will be timed.. |
+ (void) logPaymentTransaction: | (nonnull SKPaymentTransaction *) | transaction |
Records an Apple Store transaction.
This method needs to be called before a transaction is finished and finalized.
transaction | an SKPaymentTransaction. |
statusCallback | a callback gettign called when the status of ID that is associated with the event |
+ (void) logPaymentTransactionWithTransactionId: | (nonnull NSString *) | transactionId | |
productId: | (nonnull NSString *) | productId | |
quantity: | (NSUInteger) | quantity | |
price: | (double) | price | |
currency: | (nonnull NSString *) | currency | |
productName: | (nonnull NSString *) | productName | |
transactionState: | (FlurryPaymentTransactionState) | transactionState | |
userDefinedParams: | (nullable NSDictionary *) | transactionParams | |
Records Apple store IAP transaction params and user defined transaction params manually.
transactionId | a string Id for this IAP transaction |
productId | a string Id for this IAP transaction product |
quantity | an integer representation of quantity of items purchased |
price | a float representation of price of the item |
currency | a string representation of currency of the transaction |
productName | a string representation of product name |
transactionState | an enum to convert transaction state to integer: 0:Purchasing, 1:Success, 2:Failure, 3:Restored, 4:Deferred |
transactionParams | a dictionary of user defined transaction params to record |
statusCallback | a callback gettign called when the status of ID that is associated with the event |
+ (FlurryEventRecordStatus) logStandardEvent: | (FlurryEvent) | eventType |
Records a standard parameterized event specified by eventType
with parameters
.
This method allows you to log standard events associated with parameters. Parameters are extremely valuable as they allow you to store characteristics of an action. For example, if a user purchased an item (log an purchase event), it may be helpful to know item info (itemName, itemType, itemId, itemCount), and transaction info (price, totalAmount, currency, transactionId) of such events.
A maximum of 10 parameter names may be associated with any event. Sending over 10 parameter names with a single event will result in no parameters being logged for that event.
eventType | FlurryEvent enum. |
parameters | a FlurryParam object that stores key-value pairs of a standard parameterized event. |
Provided by category Flurry(Event).
+ (void) openPrivacyDashboard: | (BOOL success) | completionHandler |
Open privacy dashboard in Safari Browser async with a completion handler callback.
This method is used to open a web page of privacy dashboard in external browser for user to access and edit their data under the scope of GDPR, in the callback, you are able to check whether privacy dashboard is successfully opened, and apply fallback logics.
completionHandler | a callback getting called when SDK finishes the attempt to openURL the privacy dashboard, the success boolean provided for checks and fallbacks. |
+ (void) pauseBackgroundSession |
Pauses a Flurry session left running in background.
This method can be called when application finished all background tasks (such as playing music) to pause session.
+ (void) sessionProperties: | (nonnull NSDictionary *) | parameters |
Adds a custom parameterized session parameters parameters
.
This method allows you to associate parameters with a session. Parameters are valuable as they allow you to store characteristics of a session.
parameters | An immutable copy of map containing Name-Value pairs of parameters. |
+ (void) setAge: |
Set your user's age in years.
Use this method to capture the age of your user. Only use this method if you collect this information explictly from your user (i.e. - there is no need to set a default value).
age | Reported age of user. |
+ (void) setAppVersion: |
Explicitly specifies the App Version that Flurry will use to group Analytics data.
This is a method that overrides the App Version Flurry uses for reporting. Flurry will use the CFBundleVersion in your info.plist file when this method is not invoked.
version | The custom version name. |
+ (void) setCountBackgroundSessions: |
Enables opting out of background sessions being counted towards total sessions.
value | NO to opt out of counting background sessions towards total sessions. The default value for the session is YES |
+ (void) setDelegate: |
+ (void) setDelegate: | (nonnull id< FlurryDelegate >) | delegate |
Set Flurry delegate for callback on session creation with a callback queue.
+ (void) setGender: |
Set your user's gender.
Use this method to capture the gender of your user. Only use this method if you collect this information explictly from your user (i.e. - there is no need to set a default value). Allowable values are "m" or @c @"f"
gender | Reported gender of user. |
+ (void) setIAPReportingEnabled: |
Enables implicit recording of Apple Store transactions.
This method needs to be called before any transaction is finialized.
value | YES to enable transaction logging, NO to stop transaction logging. |
+ (void) setLogLevel: |
Generates debug logs to console.
This is an optional method that displays debug information related to the Flurry SDK. display information to the console. The default setting for this method is FlurryLogLevelCriticalOnly
.
value | Log level |
+ (void) setSessionContinueSeconds: |
Set the timeout for expiring a Flurry session.
This is a method that sets the time the app may be in the background before starting a new session upon resume. The default value for the session timeout is 10 seconds in the background.
seconds | The time in seconds to set the session timeout to. |
+ (void) setShowErrorInLogEnabled: |
Displays an exception in the debug log if thrown during a Session.
This is an optional method that augments the debug logs with exceptions that occur during the session. You must both capture exceptions to Flurry and set debug logging to enabled for this method to display information to the console. The default setting for this method is NO
.
value | YES to show errors in debug logs, NO to omit errors in debug logs. |
+ (void) setUserID: |
Assign a unique id for a user in your app.
userID | The app id for a user. |
+ (void) startSession: |
Start a Flurry session for the project denoted by apiKey
.
This method serves as the entry point to Flurry Analytics collection. It must be called in the scope of applicationDidFinishLaunching
. The session will continue for the period the app is in the foreground until your app is backgrounded for the time specified in #withSessionContinueSeconds:. If the app is resumed in that period the session will continue, otherwise a new session will begin.
Crash reporting will not be enabled. See #withCrashReporting: in FlurrySessionBuilder for more information.
apiKey | The API key for this project. |
+ (void) startSession: | (nonnull NSString *) | apiKey |
Start a Flurry session for the project denoted by apiKey
. Gather more information by passing in the launchOptions.
This method overloads on the startSession: and serves as the entry point to Flurry Analytics collection. It must be called in the scope of applicationDidFinishLaunching
passing in the launchOptions param. The session will continue for the period the app is in the foreground until your app is backgrounded for the time specified in #withSessionContinueSeconds:. If the app is resumed in that period the session will continue, otherwise a new session will begin.
Crash reporting will not be enabled. See #withCrashReporting: in FlurrySessionBuilder for more information.
apiKey | The API key for this project. |
options | passed launchOptions from the applicatin's didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
+ (void) startSession: | (nonnull NSString *) | apiKey | |
withOptions: | (nullable id) | options | |
Start a Flurry session for the project denoted by apiKey
by specifying the desired session construction options. Gather more information by passing in the launchOptions.
This method overloads on the startSession:withOptions: and serves as the entry point to Flurry Analytics collection. It must be called in the scope of applicationDidFinishLaunching
passing in the launchOptions param. The session will continue for the period the app is in the foreground until your app is backgrounded for the time specified in #withSessionContinueSeconds:. If the app is resumed in that period the session will continue, otherwise a new session will begin.
apiKey | The API key for this project. |
options | passed launchOptions from the applicatin's didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
sessionBuilder | pass in the session builder object to specify that session construction options |
+ (void) startSession: | (nonnull NSString *) | apiKey |
Start a Flurry session for the project denoted by apiKey
by specifying the desired session construction options.
This method overloads on the startSession: and serves as the entry point to Flurry Analytics collection. It must be called in the scope of applicationDidFinishLaunching
. The session will continue for the period the app is in the foreground until your app is backgrounded for the time specified in #withSessionContinueSeconds:. If the app is resumed in that period the session will continue, otherwise a new session will begin.
apiKey | The API key for this project. |
sessionBuilder | pass in the session builder object to specify that session construction options |
+ (BOOL) trackPreciseLocation: | (BOOL) | state |
Turn on/off location information of the session (default is on).
Use CLLocationManager to start the location tracking of the session. Flurry does not prompt users for location permission, we fetch the available location in device daemon.
It is on by default. After starting the location manager, you can turn off opt-out location tracking by calling this method.
state | The boolean to switch on/off for location tracking |