MoEngageSDKAnalytics
@objc
public class MoEngageSDKAnalytics : NSObject, @unchecked Sendable
Class to track data on the MoEngage Platform.
-
Singleton class instance
Declaration
Swift
@objc public static var sharedInstance: MoEngageSDKAnalytics { get } -
Track an event.
Declaration
Swift
@discardableResult public func trackEvent( _ name: String, withProperties properties: MoEngageProperties? = nil, forAppID appID: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackEventTaskParameters
nameevent name
propertiesattributes associated with the event
appIDMoEngage account identifier;
nilfor the default instanceReturn Value
MoEngageTrackEventTask.onSuccessfires once the event is accepted into the local batch; the result carriesacceptedProperties+droppedPropertyKeys.onFailurereasons:.featureDisabled(analytics off / opted out),.invalidParameters(event name blacklisted by remote config — the feature is enabled, this specific name isn’t accepted),.sdkNotInitialized, or.unknownErrorfor an unspecified internal failure. -
Sync the tracked events instantaneously for Secondary instance
Declaration
Swift
@available(*, deprecated, message: "Use the typed-task variant returning MoEngageFlushTask — observe via onSuccess / onFailure / result(﹚.") @_disfavoredOverload public func flush( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column, withCompletionBlock completionBlock: (@MainActor(unsafe) (Bool) -> Void)? = nil )Parameters
appIDMoEngage Account Identifier.
completionBlockcompletion block to be called after events are flushed out
-
Sync the tracked events instantaneously.
Declaration
Swift
@discardableResult public func flush( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageFlushTaskParameters
appIDMoEngage Account Identifier.
Return Value
A
MoEngageFlushTask.onSuccessfires when the batch sync has been server-acknowledged.onFailurefires with.networkErrorwhen the sync attempt failed (network / server / auth), or.sdkNotInitializedwhen no SDK instance is registered forappID. Marked@discardableResultso existing fire-and-forget callers compile unchanged. -
Update source based on query params of the URL.
Declaration
Swift
@discardableResult public func processURL( _ url: URL?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageProcessURLTaskParameters
urlURL that contains source information in query params.
Return Value
MoEngageProcessURLTaskcarryingMoEngageProcessURLResultwhosewasHandledfield indicates whether the SDK actually processed the URL (true) or deferred to auto-tracking / a swizzled callback / nil-URL short-circuit (false). Customers usingonFailurewill receive.invalidParameterswhenurlis nil. -
Set an alias to update the existing Unique Id.
Declaration
Swift
@discardableResult public func setAlias( _ alias: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
aliasidentifier
appIDMoEngage account identifier;
nilfor the default instanceReturn Value
MoEngageSetUserAttributeTask.onSuccessfires after dispatch (including the dedup case).onFailurefires with.invalidParameterswhen the alias is rejected, or.sdkNotInitialized. -
Set a custom user attribute at the given level. Leaf method for the
setUserAttribute*family — most convenience wrappers delegate here.Declaration
Swift
@discardableResult public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, variant: MoEngageUserAttributeVariant = .standard, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
valueattribute value
attributeNameattribute name
levelproject- or portfolio-level scope
appIDMoEngage account identifier;
nilfor the default instanceReturn Value
MoEngageSetUserAttributeTask.onSuccessfires when the attribute is persisted or already matched the cache (dedup).onFailurefires with.invalidParameterson rejection, or.sdkNotInitialized. -
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
@available(*, deprecated, message: "Use the typed-task variant returning MoEngageResetUserTask — observe via onSuccess / onFailure / result(﹚.") @_disfavoredOverload public func resetUser( forAppID appID: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column, withCompletionBlock completionBlock: (@MainActor(unsafe) (Bool) -> Void)? = nil )Parameters
appIDoptional account identifier.
completionBlockReturns true if reset is successful else false
-
Invalidate existing sessions and user attributes; subsequent actions are tracked as a new user.
Declaration
Swift
@discardableResult public func resetUser( forAppID appID: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageResetUserTaskParameters
appIDoptional account identifier.
Return Value
MoEngageResetUserTask.onSuccessfires after dispatch (including benign no-op cases like extension context or data-tracking opted out);onFailurefires with.sdkNotInitialized. -
Set the Analytics delegate to get the callback for various Analytics events
Declaration
Swift
public func setDelegate( delegate: MoEngageAnalyticsCallBack, forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column )Parameters
delegateInstance that confirms to
MoEngageAnalyticsCallBackappIDOptional 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) @discardableResult public func setDeviceAttribute( _ value: any Sendable, withName attributeName: String, forWorkspaceId workspaceId: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetDeviceAttributeTaskParameters
valueattribute value
attributeNameattribute name
workspaceIdMoEngage Workspace identifier
-
This method tells the SDK whether it is a fresh install or an existing application was updated.
Declaration
Swift
@discardableResult public func appStatus( _ appStatus: MoEngageAppStatus, forAppID appID: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetAppStatusTaskParameters
appStatusEnum of type
MoEngageAppStatusappIDMoEngage Account Identifier.
-
API to enable data tracking.
Declaration
Swift
@discardableResult public func enableDataTracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
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
@discardableResult public func disableDataTracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Enable IDFA tracking
Declaration
Swift
@discardableResult public func enableIDFATracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Disable IDFA tracking
Declaration
Swift
@discardableResult public func disableIDFATracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Enable IDFV tracking
Declaration
Swift
@discardableResult public func enableIDFVTracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Disable IDFV tracking
Declaration
Swift
@discardableResult public func disableIDFVTracking( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Tracks device locale.
Declaration
Swift
@discardableResult public func trackLocale( forAppID appID: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageTrackDeviceLocaleTaskParameters
appIDMoEngage Account identifier
-
Track Event for Default MoEngage Instance.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func trackEvent( _ name: String, withProperties properties: MoEngageProperties? = nil ) -> MoEngageTrackEventTaskParameters
namename of the event
propertiesinstance of type
MoEngagePropertiesthat contains attributes related to event -
Track Event for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func trackEvent( _ name: String, withProperties properties: MoEngageProperties? = nil, forAppID appID: String? = nil ) -> MoEngageTrackEventTaskParameters
nameevent name
propertiesinstance of type
MoEngagePropertiesthat contains attributes related to eventappIDMoEngage Account Identifier.
-
This method tells the SDK whether it is a fresh install or an existing application was updated.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func appStatus( _ appStatus: MoEngageAppStatus, forAppID appID: String? = nil ) -> MoEngageSetAppStatusTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func appStatus(_ appStatus: MoEngageAppStatus) -> MoEngageSetAppStatusTaskParameters
appStatusEnum of type
MoEngageAppStatus
-
Invalidates the existing sessions and user attributes (deprecated — completion-block variant).
Declaration
Swift
@available(*, deprecated, message: "Use resetUser(forAppID:﹚ returning MoEngageResetUserTask — observe success/failure via .onSuccess / .onFailure / .result(﹚.") @_disfavoredOverload @objc public func resetUser( forAppID appID: String? = nil, withCompletionBlock completionBlock: (@MainActor(unsafe) (Bool) -> Void)? = nil )Parameters
appIDoptional account identifier.
completionBlockReturns true if reset is successful else false
-
Invalidates the existing sessions and user attributes for the default instance.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func resetUser() -> MoEngageResetUserTaskReturn Value
MoEngageResetUserTaskcarrying aMoEngageResetUserResulton success. -
Invalidates the existing sessions and user attributes for the default instance (deprecated — completion-block variant).
Declaration
Swift
@available(*, deprecated, message: "Use resetUser(﹚ returning MoEngageResetUserTask — observe success/failure via .onSuccess / .onFailure / .result(﹚.") @_disfavoredOverload @objc public func resetUser( withCompletionBlock completionBlock: (@MainActor(unsafe) (Bool) -> Void)? = nil )Parameters
completionBlockReturns true if reset is successful else false
-
Invalidates the existing sessions and user attributes.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func resetUser(forAppID appID: String? = nil) -> MoEngageResetUserTaskParameters
appIDMoEngage Account identifier
Return Value
MoEngageResetUserTaskcarrying aMoEngageResetUserResulton success.
-
API to enable data tracking.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableDataTracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
API to enable data tracking.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableDataTracking() -> MoEngageTrackingToggleTask -
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
@discardableResult @_disfavoredOverload @objc public func disableDataTracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func disableDataTracking() -> MoEngageTrackingToggleTask -
Enable IDFA tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableIDFATracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Enable IDFA tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableIDFATracking() -> MoEngageTrackingToggleTask -
Disable IDFA tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func disableIDFATracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Disable IDFA tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func disableIDFATracking() -> MoEngageTrackingToggleTask -
Enable IDFV tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableIDFVTracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Enable IDFV tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func enableIDFVTracking() -> MoEngageTrackingToggleTask -
Disable IDFV tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func disableIDFVTracking(forAppID appID: String? = nil) -> MoEngageTrackingToggleTaskParameters
appIDMoEngage Account identifier
-
Disable IDFV tracking
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func disableIDFVTracking() -> MoEngageTrackingToggleTask
-
Tracks device locale.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func trackLocale() -> MoEngageTrackDeviceLocaleTask -
Tracks device locale.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func trackLocale(forAppID appID: String? = nil) -> MoEngageTrackDeviceLocaleTaskParameters
appIDMoEngage Account identifier
-
Set the Analytics delegate to get the callback for various Analytics events
Declaration
Swift
@_disfavoredOverload @objc public func setDelegate(delegate: MoEngageAnalyticsCallBack, forAppID appID: String? = nil)Parameters
delegateInstance that confirms to
MoEngageAnalyticsCallBackappIDOptional Account Identifier
-
Sync the tracked events instantaneously for Secondary instance.
Declaration
Swift
@available(*, deprecated, message: "Use flush(forAppID:﹚ returning MoEngageFlushTask — observe success/failure via .onSuccess / .onFailure / .result(﹚.") @_disfavoredOverload @objc public func flush( forAppID appID: String? = nil, withCompletionBlock completionBlock: (@MainActor(unsafe) (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
@discardableResult @_disfavoredOverload @objc public func flush() -> MoEngageFlushTaskReturn Value
MoEngageFlushTaskcarrying aMoEngageFlushResulton server-acknowledged sync. -
Sync the tracked events instantaneously for Secondary instance.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func flush(forAppID appID: String? = nil) -> MoEngageFlushTaskParameters
appIDMoEngage Account identifier
Return Value
MoEngageFlushTaskcarrying aMoEngageFlushResulton server-acknowledged sync. -
Sync the tracked events instantaneously for Default instance (deprecated — completion-block variant).
Declaration
Swift
@available(*, deprecated, message: "Use flush(﹚ returning MoEngageFlushTask — observe success/failure via .onSuccess / .onFailure / .result(﹚.") @_disfavoredOverload @objc public func flush( withCompletionBlock completionBlock: (@MainActor(unsafe) (Bool) -> Void)? = nil )Parameters
completionBlockcompletion block to be called after events are flushed out
-
Update source based on query params of the URL.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func processURL(_ url: URL?) -> MoEngageProcessURLTaskParameters
urlURL that contains source information in query params
Return Value
MoEngageProcessURLTask— see the Swift overload onMoEngageSDKAnalyticsfor resolution semantics.
-
Set epoch time for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
appIDMoEngage account identifier
-
Set epoch time for Secondary instance
Declaration
Swift
@discardableResult public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
appIDMoEngage account identifier
-
Set epoch time for Default instance
Declaration
Swift
@discardableResult @objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String ) -> MoEngageSetUserAttributeTaskParameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
-
Set User attribute date for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateattribute value as Date
attributeNameattribute name
appIDMoEngage account identifier
-
Set User attribute date for Secondary instance
Declaration
Swift
@discardableResult public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
dateattribute value as Date
attributeNameattribute name
appIDMoEngage account identifier
-
Set User attribute date for Default instance
Declaration
Swift
@discardableResult @objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateStringISO date of type string
attributeNameattribute name
appIDMoEngage account identifier
-
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
@discardableResult public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
dateStringISO 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
@discardableResult @objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String ) -> MoEngageSetUserAttributeTaskParameters
dateStringISO date of type string
attributeNameattribute name
-
Set User Date of Birth for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setDateOfBirth(_ dob: Date, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
dobDate of Birth passed by user
appIDMoEngage Account identifier
-
Set User Date of Birth for Secondary instance
Declaration
Swift
@discardableResult public func setDateOfBirth( _ dob: Date, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
dobDate of Birth passed by user
appIDMoEngage Account identifier
-
Set User Date of Birth
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setDateOfBirth(_ dob: Date) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setDateOfBirthInISO( _ dateString: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateStringattribute value accepted in ISO format
appIDMoEngage Account identifier
-
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
@discardableResult public func setDateOfBirthInISO( _ dateString: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setDateOfBirthInISO(_ dateString: String) -> MoEngageSetUserAttributeTaskParameters
dateStringattribute value accepted in ISO format
-
Set custom user location for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
appIDMoEngage Account Identifier
-
Set custom user location for Secondary instance
Declaration
Swift
@discardableResult public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
appIDMoEngage Account Identifier
-
Set custom user location
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattributeName name
-
Set user location for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLocation( _ location: MoEngageGeoLocation, forAppID appID: String? = nil ) -> MoEngageSetUserAttributeTaskParameters
locationLocation passed by user
appIDMoEngage Account identifier
-
Set user location for Secondary instance
Declaration
Swift
@discardableResult public func setLocation( _ location: MoEngageGeoLocation, forAppID appID: String? = nil, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
locationLocation passed by user
appIDMoEngage Account identifier
-
Set user location
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLocation(_ location: MoEngageGeoLocation) -> MoEngageSetUserAttributeTaskParameters
locationLocation passed by user
-
Set custom user attribute for Secondary instance with level
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default ) -> MoEngageSetUserAttributeTaskParameters
valueattribute value
attributeNameattribute name
levellevel at which attribute should be set
-
Set epoch time for Secondary instance with level
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateEpochEpoch date of type double
attributeNameattribute name of type String
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set epoch time for Secondary instance with level
Declaration
Swift
@discardableResult public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeEpochTime( _ dateEpoch: Double, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateattribute value as Date
attributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage account identifier
-
Set User attribute date for Secondary instance with level
Declaration
Swift
@discardableResult public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeDate( _ date: Date, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
dateStringISO date of type string
attributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage account identifier
-
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
@discardableResult public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
dateStringISO 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
@discardableResult @_disfavoredOverload @objc public func setUserAttributeISODate( _ dateString: String, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default ) -> MoEngageSetUserAttributeTaskParameters
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
@discardableResult @_disfavoredOverload @objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage Account Identifier
-
Set custom user location for Secondary instance with level
Declaration
Swift
@discardableResult public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
levellevel at which attribute should be set
appIDMoEngage Account Identifier
-
Set custom user location for Default instance with level
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLocation( _ location: MoEngageGeoLocation, withAttributeName attributeName: String, level: MoEngageUserAttributeLevel = .default ) -> MoEngageSetUserAttributeTaskParameters
locationMoEngageGeoLocationinstanceattributeNameattribute name
levellevel at which attribute should be set
-
Set custom user attribute for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
valueattribute value
attributeNameattribute name
appIDMoEngage account identifier
-
Set custom user attribute for Secondary instance
Declaration
Swift
@discardableResult public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
valueattribute value
attributeNameattribute name
appIDMoEngage account identifier
-
Set custom user attribute for Default instance
Declaration
Swift
@discardableResult @objc public func setUserAttribute( _ value: (any Sendable)?, withAttributeName attributeName: String ) -> MoEngageSetUserAttributeTaskParameters
valueattribute value
attributeNameattribute name
-
Set an Alias to update the existing Unique Id for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setAlias(_ alias: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
aliasidentifier
appIDMoEngage Account Identifier
-
Set an Alias to update the existing Unique Id for Default instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setAlias(_ alias: String) -> MoEngageSetUserAttributeTaskParameters
aliasidentifier
-
Set unique ID for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUniqueID(_ uniqueID: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
uniqueIDUnique ID
appIDMoEngage Account identifier
-
Set unique ID for Secondary instance
Declaration
Swift
@discardableResult public func setUniqueID( _ uniqueID: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
uniqueIDUnique ID
appIDMoEngage Account identifier
-
Set unique ID for Default instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setUniqueID(_ uniqueID: String) -> MoEngageSetUserAttributeTaskParameters
uniqueIDUnique ID
-
Set Email ID for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setEmailID(_ emailID: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
emailIDemailID value.
appIDMoEngage Account identifier
-
Set Email ID for Secondary instance
Declaration
Swift
@discardableResult public func setEmailID( _ emailID: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
emailIDemailID value.
appIDMoEngage Account identifier
-
Set Email ID
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setEmailID(_ emailID: String) -> MoEngageSetUserAttributeTaskParameters
emailIDemailID value.
-
Set user name for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setName(_ userName: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
userNameUser Name value passed by user
appIDMoEngage Account identifier
-
Set user name for Secondary instance
Declaration
Swift
@discardableResult public func setName( _ userName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
userNameUser Name value passed by user
appIDMoEngage Account identifier
-
Set user name
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setName(_ userName: String) -> MoEngageSetUserAttributeTaskParameters
userNameUser Name value passed by user
-
Set User first name for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setFirstName(_ firstName: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
firstNameFirst Name value passed by user
appIDMoEngage Account identifier
-
Set User first name for Secondary instance
Declaration
Swift
@discardableResult public func setFirstName( _ firstName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
firstNameFirst Name value passed by user
appIDMoEngage Account identifier
-
Set User first name
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setFirstName(_ firstName: String) -> MoEngageSetUserAttributeTaskParameters
firstNameFirst Name value passed by user
-
Set User last name for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLastName(_ lastName: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
lastNameLast Name value passed by user
appIDMoEngage Account identifier
-
Set User last name for Secondary instance
Declaration
Swift
@discardableResult public func setLastName( _ lastName: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
lastNameLast Name value passed by user
appIDMoEngage Account identifier
-
Set User last name
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setLastName(_ lastName: String) -> MoEngageSetUserAttributeTaskParameters
lastNameLast Name value passed by user
-
Set mobile number for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setMobileNumber(_ mobileNum: String, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
mobileNumMobile Number value passed by user
appIDMoEngage Account identifier
-
Set mobile number for Secondary instance
Declaration
Swift
@discardableResult public func setMobileNumber( _ mobileNum: String, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
mobileNumMobile Number value passed by user
appIDMoEngage Account identifier
-
Set mobile number
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setMobileNumber(_ mobileNum: String) -> MoEngageSetUserAttributeTaskParameters
mobileNumMobile Number value passed by user
-
Set User gender for Secondary instance
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setGender(_ gender: MoEngageUserGender, forAppID appID: String?) -> MoEngageSetUserAttributeTaskParameters
genderGender value passed by user
appIDMoEngage Account identifier
-
Set User gender for Secondary instance
Declaration
Swift
@discardableResult public func setGender( _ gender: MoEngageUserGender, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
genderGender value passed by user
appIDMoEngage Account identifier
-
Set User gender
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func setGender(_ gender: MoEngageUserGender) -> MoEngageSetUserAttributeTaskParameters
genderGender value passed by user
-
Track user attribute push preference
Declaration
Swift
@discardableResult @_disfavoredOverload @objc public func trackUserPushPreference( _ isPushEnabled: Bool, forAppID appID: String? ) -> MoEngageSetUserAttributeTaskParameters
isPushEnabledtrue if Push is enabled else false.
appIDMoEngage Account identifier
-
Track user attribute push preference
Declaration
Swift
@discardableResult public func trackUserPushPreference( _ isPushEnabled: Bool, forAppID appID: String?, isolation `actor`: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageSetUserAttributeTaskParameters
isPushEnabledtrue if Push is enabled else false.
appIDMoEngage 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) @discardableResult func setDeviceAttribute( _ value: any Sendable, withName attributeName: String, forWorkspaceId workspaceId: String? = nil ) -> MoEngageSetDeviceAttributeTaskParameters
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) @discardableResult func setDeviceAttribute( _ value: any Sendable, withName attributeName: String ) -> MoEngageSetDeviceAttributeTaskParameters
valueattribute value
attributeNameattribute name
-
Add unique identities to current user.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc func identifyUser(identities: [String : String], workspaceId: String? = nil) -> MoEngageIdentifyUserTaskParameters
identitiesThe identities uniquely identifying current user.
workspaceIdMoEngage Workspace Identifier.
-
Add unique identifier
uidto current user.Declaration
Swift
@discardableResult @_disfavoredOverload @objc func identifyUser(identity: String, workspaceId: String? = nil) -> MoEngageIdentifyUserTaskParameters
identityThe identifier uniquely identifying current user.
workspaceIdMoEngage Workspace Identifier.
-
Get all the identities set for current user (deprecated — completion-block variant).
Declaration
Swift
@available(*, deprecated, message: "Use getUserIdentities(workspaceId:﹚ returning MoEngageGetUserIdentitiesTask — observe identities via .onSuccess / .result(﹚.") @_disfavoredOverload @objc func getUserIdentities( workspaceId: String? = nil, completion: @escaping @MainActor(unsafe) ([String: String]) -> Void )Parameters
workspaceIdMoEngage Workspace Identifier.
completionThe block where identities will be provided on main thread.
-
Get all the identities set for current user.
Declaration
Swift
@discardableResult @_disfavoredOverload @objc func getUserIdentities(workspaceId: String? = nil) -> MoEngageGetUserIdentitiesTaskParameters
workspaceIdMoEngage Workspace Identifier.
Return Value
MoEngageGetUserIdentitiesTaskcarrying aMoEngageGetUserIdentitiesResultwith the current identity map on success. -
Add unique identities to the current user.
Declaration
Swift
@discardableResult public func identifyUser( identities: [String: String], workspaceId: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageIdentifyUserTaskParameters
identitiesThe identities uniquely identifying the current user.
workspaceIdMoEngage workspace identifier.
Return Value
MoEngageIdentifyUserTask.onSuccessfires after dispatch (including benign no-op cases like extension context or unchanged identities).onFailurefires with.sdkNotInitialized, or.featureDisabledwhen data tracking is disabled or the user is opted out. -
Add unique identifier
uidto current user.Declaration
Swift
@discardableResult public func identifyUser( identity: String, workspaceId: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageIdentifyUserTaskParameters
identityThe identifier uniquely identifying current user.
workspaceIdMoEngage Workspace Identifier.
-
Get all the identities set for current user.
Declaration
Swift
@discardableResult public func getUserIdentities( workspaceId: String? = nil, isolation: isolated (any Actor)? = #isolation, file: StaticString = #fileID, line: UInt = #line, column: UInt = #column ) -> MoEngageGetUserIdentitiesTaskParameters
workspaceIdMoEngage Workspace Identifier.
Return Value
A
MoEngageGetUserIdentitiesTask.onSuccessfires with the current identity map.onFailurefires with.sdkNotInitializedwhen no SDK instance is registered forworkspaceId.