MoEngageSDKAnalytics
@objc
public class MoEngageSDKAnalytics : NSObject
Class to track data on the MoEngage Platform.
-
Singleton class instance
Declaration
Swift
@objc public static let sharedInstance: MoEngageSDKAnalytics
-
This method tells the SDK whether it is a fresh install or an existing application was updated.
Declaration
Swift
@objc public func appStatus(_ appStatus: MoEngageAppStatus, forAppID appID: String? = nil)Parameters
appStatusEnum of type
MoEngageAppStatusappIDMoEngage Account Identifier.
-
This method tells the default SDK instance whether it is a fresh install or an existing application was updated.
Declaration
Swift
@objc public func appStatus(_ appStatus: MoEngageAppStatus)Parameters
appStatusEnum of type
MoEngageAppStatus
-
Track Event for Default MoEngage Instance.
Declaration
Swift
@objc public func trackEvent(_ name: String, withProperties properties: MoEngageProperties? = nil)Parameters
namename of the event
propertiesinstance of type
MoEngagePropertiesthat contains attributes related to event -
Track Event for Secondary instance
Declaration
Swift
@objc public func trackEvent(_ name: String, withProperties properties: MoEngageProperties? = nil, forAppID appID: String? = nil)Parameters
nameevent name
propertiesinstance of type
MoEngagePropertiesthat contains attributes related to eventappIDMoEngage Account Identifier.
-
Sync the tracked events instantaneously for Secondary instance
Declaration
Swift
@objc public func flush(forAppID appID: String? = nil, withCompletionBlock completionBlock: ((Bool) -> Void)? = nil)Parameters
appIDMoEngage Account Identifier.
completionBlockcompletion block to be called after events are flushed out
-
Sync the tracked events instantaneously for Default instance
Declaration
Swift
@objc public func flush() -
Sync the tracked events instantaneously for Secondary instance
Declaration
Swift
@objc public func flush(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Sync the tracked events instantaneously for Default instance
Declaration
Swift
@objc public func flush(withCompletionBlock completionBlock: ((Bool) -> Void)? = nil)Parameters
completionBlockcompletion block to be called after events are flushed out
-
Tracks device locale.
Declaration
Swift
@objc public func trackLocale() -
Tracks device locale.
Declaration
Swift
@objc public func trackLocale(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Invalidates the existing sessions and user attributes and treats all actions performed by the user as a new user after this method is called
Declaration
Swift
@objc public func resetUser(forAppID appID: String? = nil, withCompletionBlock completionBlock: ((Bool) -> Void)? = nil)Parameters
appIDoptional account identifier.
completionBlockReturns true if reset is successful else false
-
Invalidates the existing sessions and user attributes and treats all actions performed by the user as a new user after this method is called
Declaration
Swift
@objc public func resetUser() -
Invalidates the existing sessions and user attributes and treats all actions performed by the user as a new user after this method is called
Declaration
Swift
@objc public func resetUser(withCompletionBlock completionBlock: ((Bool) -> Void)? = nil)Parameters
completionBlockReturns true if reset is successful else false
-
Invalidates the existing sessions and user attributes and treats all actions performed by the user as a new user after this method is called
Declaration
Swift
@objc public func resetUser(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
API to enable data tracking.
Declaration
Swift
@objc public func enableDataTracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
API to enable data tracking.
Declaration
Swift
@objc public func enableDataTracking() -
Optionally opt-out of data tracking. When data tracking is opted out no custom event or user attribute is tracked on MoEngage Platform.
Declaration
Swift
@objc public func disableDataTracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Optionally opt-out of data tracking. When data tracking is opted out no custom event or user attribute is tracked on MoEngage Platform.
Declaration
Swift
@objc public func disableDataTracking() -
Enable IDFA tracking
Declaration
Swift
@objc public func enableIDFATracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Enable IDFA tracking
Declaration
Swift
@objc public func enableIDFATracking() -
Disable IDFA tracking
Declaration
Swift
@objc public func disableIDFATracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Disable IDFA tracking
Declaration
Swift
@objc public func disableIDFATracking() -
Enable IDFV tracking
Declaration
Swift
@objc public func enableIDFVTracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Enable IDFV tracking
Declaration
Swift
@objc public func enableIDFVTracking() -
Disable IDFV tracking
Declaration
Swift
@objc public func disableIDFVTracking(forAppID appID: String? = nil)Parameters
appIDMoEngage Account identifier
-
Disable IDFV tracking
Declaration
Swift
@objc public func disableIDFVTracking()
-
Update source based on query params of the URL
Declaration
Swift
@objc public func processURL(_ url: URL?)Parameters
urlURL that contains source information in query params
-
Set the Analytics delegate to get the callback for various Analytics events
Declaration
Swift
@objc public func setDelegate(delegate: MoEngageAnalyticsCallBack, forAppID appID: String? = nil)Parameters
delegateInstance that confirms to
MoEngageAnalyticsProtocolappIDOptional Account Identifier
-
Set custom device attribute for workspace.
Supported value data types are:
- Number (Int, Double, Float)
- String
- Boolean
Date
Date (ISO 8601 String)
Declaration
Swift
@available(iOSApplicationExtension, unavailable) func setDeviceAttribute( _ value: Any, withName attributeName: String, forWorkspaceId workspaceId: String? = nil )Parameters
valueattribute value
attributeNameattribute name
workspaceIdMoEngage Workspace identifier
-
Set custom device attribute for Default instance.
Supported value data types are:
- Number (Int, Double, Float)
- String
- Boolean
Date
Date (ISO 8601 String)
Declaration
Swift
@available(iOSApplicationExtension, unavailable) func setDeviceAttribute( _ value: Any, withName attributeName: String )Parameters
valueattribute value
attributeNameattribute name
-
Add unique identities to current user.
Declaration
Swift
func identifyUser(identities: [String : String], workspaceId: String? = nil)Parameters
identitiesThe identities uniquely identifying current user.
workspaceIdMoEngage Workspace Identifier.
-
Add unique identifier
uidto current user.Declaration
Swift
func identifyUser(identity: String, workspaceId: String? = nil)Parameters
identityThe identifier uniquely identifying current user.
workspaceIdMoEngage Workspace Identifier.
-
Get all the identities set for current user.
Declaration
Swift
func getUserIdentities( workspaceId: String? = nil, completion: @escaping ([String: String]) -> Void )Parameters
workspaceIdMoEngage Workspace Identifier.
completionThe block where identties will be provided on main thread.
-
Set custom user attribute for Secondary instance with level
Declaration
Swift
@objc public func setUserAttribute( _ value: Any?, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel, forAppID appID: String? )Parameters
valueattribute value
attributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set custom user attribute for Default instance with level
Declaration
Swift
@objc public func setUserAttribute( _ value: Any?, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel )Parameters
valueattribute value
attributeNameattribute name
levellevel at which attribute should be set
-
Set epoch time for Secondary instance with level
Declaration
Swift
@objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel, forAppID appID: String? )Parameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set epoch time for Default instance with level
Declaration
Swift
@objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel )Parameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
levellevel at which attribute should be set
-
Set User attribute date for Secondary instance with level
Declaration
Swift
@objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel, forAppID appID: String? )Parameters
dateattribute value as Date
attributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set User attribute date for Default instance with level
Declaration
Swift
@objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel )Parameters
dateattribute value as Date
attributeNameattribute name
levellevel at which attribute should be set
-
Set User attribute ISO date for Secondary instance with level
Note
ISO accepted formats are yyyy-MM-dd’T'HH:mm:ss'Z’/yyyy-MM-dd’T'HH:mm:ss.SSS'Z’Declaration
Swift
@objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel, forAppID appID: String? )Parameters
dateStrISO date of type string
attributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set User attribute ISO date for Default instance with level
Note
ISO accepted formats are yyyy-MM-dd’T'HH:mm:ss'Z’/yyyy-MM-dd’T'HH:mm:ss.SSS'Z’Declaration
Swift
@objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel )Parameters
dateStringISO date of type string
attributeNameattribute name
levellevel at which attribute should be set
-
Set custom user location for Secondary instance with level
Declaration
Swift
@objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel, forAppID appID: String? )Parameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage Account Identifier
-
Set custom user location for Default instance with level
Declaration
Swift
@objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel )Parameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
levellevel at which attribute should be set
-
Set custom user attribute for Secondary instance
Declaration
Swift
@objc public func setUserAttribute( _ value: Any?, withAttributeName attributeName: String, forAppID appID: String? )Parameters
valueattribute value
attributeNameattribute name
appIDMoEngage account identifier
-
Set custom user attribute for Default instance
Declaration
Swift
@objc public func setUserAttribute( _ value: Any?, withAttributeName attributeName: String )Parameters
valueattribute value
attributeNameattribute name
-
Set epoch time for Secondary instance
Declaration
Swift
@objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, forAppID appID: String? )Parameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
appIDMoEngage account identifier
-
Set epoch time for Default instance
Declaration
Swift
@objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String )Parameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
-
Set User attribute date for Secondary instance
Declaration
Swift
@objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, forAppID appID: String? )Parameters
dateattribute value as Date
attributeNameattribute name
appIDMoEngage account identifier
-
Set User attribute date for Default instance
Declaration
Swift
@objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String )Parameters
dateattribute value as Date
attributeNameattribute name
-
Set User attribute ISO date for Secondary instance
Note
ISO accepted formats are yyyy-MM-dd’T'HH:mm:ss'Z’/yyyy-MM-dd’T'HH:mm:ss.SSS'Z’Declaration
Swift
@objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, forAppID appID: String? )Parameters
dateStrISO date of type string
attributeNameattribute name
appIDMoEngage account identifier
-
Set User attribute ISO date
Note
ISO accepted formats are yyyy-MM-dd’T'HH:mm:ss'Z’/yyyy-MM-dd’T'HH:mm:ss.SSS'Z’Declaration
Swift
@objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String )Parameters
dateStringISO date of type string
attributeNameattribute name
-
Set custom user location for Secondary instance
Declaration
Swift
@objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, forAppID appID: String? )Parameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
appIDMoEngage Account Identifier
-
Set custom user location
Declaration
Swift
@objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String )Parameters
locationMoEngageGeoLocationinstanceattributeNameattributeName name
-
Set an Alias to update the existing Unique Id for Secondary instance
Declaration
Swift
@objc public func setAlias(_ alias: String, forAppID appID: String?)Parameters
aliasidentifier
appIDMoEngage Account Identifier
-
Set an Alias to update the existing Unique Id for Default instance
Declaration
Swift
@objc public func setAlias(_ alias: String)Parameters
aliasidentifier
-
Set unique ID for Secondary instance
Declaration
Swift
@objc public func setUniqueID(_ uniqueID: String, forAppID appID: String?)Parameters
uniqueIDUnique ID
appIDMoEngage Account identifier
-
Set unique ID for Default instance
Declaration
Swift
@objc public func setUniqueID(_ uniqueID: String)Parameters
uniqueIDUnique ID
-
Set Email ID for Secondary instance
Declaration
Swift
@objc public func setEmailID(_ emailID: String, forAppID appID: String?)Parameters
emailIDemailID value.
appIDMoEngage Account identifier
-
Set Email ID
Declaration
Swift
@objc public func setEmailID(_ emailID: String)Parameters
emailIDemailID value.
-
Set user name for Secondary instance
Declaration
Swift
@objc public func setName(_ userName: String, forAppID appID: String?)Parameters
userNameUser Name value passed by user
appIDMoEngage Account identifier
-
Set user name
Declaration
Swift
@objc public func setName(_ userName: String)Parameters
userNameUser Name value passed by user
-
Set User first name for Secondary instance
Declaration
Swift
@objc public func setFirstName(_ firstName: String, forAppID appID: String?)Parameters
firstNameFirst Name value passed by user
appIDMoEngage Account identifier
-
Set User first name
Declaration
Swift
@objc public func setFirstName(_ firstName: String)Parameters
firstNameFirst Name value passed by user
-
Set User last name for Secondary instance
Declaration
Swift
@objc public func setLastName(_ lastName: String, forAppID appID: String?)Parameters
lastNameLast Name value passed by user
appIDMoEngage Account identifier
-
Set User last name
Declaration
Swift
@objc public func setLastName(_ lastName: String)Parameters
lastNameLast Name value passed by user
-
Set mobile number for Secondary instance
Declaration
Swift
@objc public func setMobileNumber(_ mobileNum: String, forAppID appID: String?)Parameters
mobileNumMobile Number value passed by user
appIDMoEngage Account identifier
-
Set mobile number
Declaration
Swift
@objc public func setMobileNumber(_ mobileNum: String)Parameters
mobileNumMobile Number value passed by user
-
Set User gender for Secondary instance
Declaration
Swift
@objc public func setGender(_ gender: MoEngageUserGender, forAppID appID: String?)Parameters
genderGender value passed by user
appIDMoEngage Account identifier
-
Set User gender
Declaration
Swift
@objc public func setGender(_ gender: MoEngageUserGender)Parameters
genderGender value passed by user
-
Set User Date of Birth for Secondary instance
Declaration
Swift
@objc public func setDateOfBirth(_ dob: Date, forAppID appID: String?)Parameters
dobDate of Birth passed by user
appIDMoEngage Account identifier
-
Set User Date of Birth
Declaration
Swift
@objc public func setDateOfBirth(_ dob: Date)Parameters
dobDate of Birth passed by user
-
Set user Date of Birth ISO format for Secondary instance
Note
ISO format accepted yyyy-MM-dd’T'HH:mm:ss.SSS'Z’ / yyyy-MM-dd’T'HH:mm:ss'Z’Declaration
Swift
@objc public func setDateOfBirthInISO(_ dateString: String, forAppID appID: String?)Parameters
dateStringattribute value accepted in ISO format
appIDMoEngage Account identifier
-
Method to set user date of birth ISO format
Note
ISO format accepted yyyy-MM-dd’T'HH:mm:ss.SSS'Z’ / yyyy-MM-dd’T'HH:mm:ss'Z’Declaration
Swift
@objc public func setDateOfBirthInISO(_ dateString: String)Parameters
dateStringattribute value accepted in ISO format
-
Set user location for Secondary instance
Declaration
Swift
@objc public func setLocation(_ location: MoEngageGeoLocation, forAppID appID: String? = nil)Parameters
locationLocation passed by user
appIDMoEngage Account identifier
-
Set user location
Declaration
Swift
@objc public func setLocation(_ location: MoEngageGeoLocation)Parameters
locationLocation passed by user
-
Track user attribute push preference
Declaration
Swift
@objc public func trackUserPushPreference(_ isPushEnabled: Bool, forAppID appID: String?)Parameters
isPushEnabledtrue if Push is enabled else false.
appIDMoEngage Account identifier