Other Classes
The following classes are available globally.
-
Success payload for
MoEngageInitializeSDKTask.Echoes which configuration source produced the initialised SDK —
See more.codewhen the caller passed aMoEngageSDKConfigprogrammatically,.filewhen the SDK loaded the configuration fromInfo.plist(theinitializeDefaultInstance(...)overloads).Declaration
Swift
@objc(MoEngageInitResult) public final class MoEngageInitResult : NSObject, @unchecked Sendable -
Typed task returned by
MoEngageinit overloads (e.g.MoEngage.initializeDefaultLiveInstance(_:)).onSuccessfires once the SDK instance is created and all public APIs are safe to call.onFailurefires when the suppliedMoEngageSDKConfig(or theInfo.plistfallback) fails to parse. The reason is aMoEngageCoreRequestFailureReasoncarryingmoduleCode == .invalidInitialisationConfiguration; downcast to read it:(failure.reason as? MoEngageCoreRequestFailureReason)?.moduleCode.Fire-and-forget call sites keep working unchanged via
See more@discardableResult.Declaration
Swift
@objc(MoEngageInitializeSDKTask) public final class MoEngageInitializeSDKTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable
-
Success payload for
See moreMoEngageSDKAnalytics.trackEvent(...).onSuccessfires when the event has been validated and accepted into the local batch storage;acceptedProperties/droppedPropertyKeyssurface the per-key validation outcome.Declaration
Swift
@objc public final class MoEngageTrackEventResult : NSObject, @unchecked Sendable
-
Success payload for the
setUserAttribute*family (includingsetAlias,setUniqueID,setEmailID,setName,setLocation, etc. — all of which internally normalise to asetUserAttributecall).Echoes the validated attribute accepted into local batch storage.
See moreDeclaration
Swift
@objc public final class MoEngageUserAttributeResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageSDKAnalytics.identifyUser(...).Echoes the identities recorded locally.
See moreDeclaration
Swift
@objc public final class MoEngageIdentifyUserResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageSDKAnalytics.setDeviceAttribute(...).Declaration
Swift
@objc public final class MoEngageSetDeviceAttributeResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageSDKAnalytics.appStatus(...).Declaration
Swift
@objc public final class MoEngageAppStatusResult : NSObject, @unchecked Sendable
-
Success payload for the six enable/disable compliance toggles (
See moreenableDataTracking,disableDataTracking,enableIDFATracking,disableIDFATracking,enableIDFVTracking,disableIDFVTracking). All six shareMoEngageTrackingToggleTask;kind+enabledtogether identify which toggle fired and which direction.Declaration
Swift
@objc public final class MoEngageTrackingToggleResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageSDKAnalytics.trackLocale(...).trackLocaleresolvesonSuccesswhen at least one sub-attribute was accepted. If every attempted sub-attribute was skipped (e.g. data tracking is disabled, user is opted out, call from extension context), the task rejects withMoEngageCoreRequestFailureReason(moduleCode: .trackLocaleSubAttributeFailed)instead — per-attribute reasons appear in the failure message.Shape mirrors Android’s
See moreUserAttributeResult.Bulkfor cross-platform parity.Declaration
Swift
@objc public final class MoEngageTrackDeviceLocaleResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageSDKAnalytics.processURL(...).Declaration
Swift
@objc public final class MoEngageProcessURLResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageSDKAnalytics.flush(...). Empty marker —onSuccessfiring on aMoEngageFlushTaskindicates the batch sync was server-acknowledged. No further metadata is surfaced today; future revisions may add e.g. batch count / batch ID.Declaration
Swift
@objc public final class MoEngageFlushResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageSDKAnalytics.resetUser(...). Empty marker —onSuccessfiring on aMoEngageResetUserTaskindicates the user state has been reset (session + attributes invalidated, new UID issued).Declaration
Swift
@objc public final class MoEngageResetUserResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageSDKAnalytics.getUserIdentities(...). Carries the current identity map for the requested workspace.Declaration
Swift
@objc public final class MoEngageGetUserIdentitiesResult : NSObject, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.trackEvent(...). Carries theMoEngageTrackEventResultpayload on success.Declaration
Swift
@objc(MoEngageTrackEventTask) public final class MoEngageTrackEventTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by every
See moresetUserAttribute*family method — basesetUserAttribute, epoch/date/ISO variants,setAlias,setUniqueID,setEmailID,setName,setFirstName,setLastName,setMobileNumber,setGender,setDateOfBirth*,trackUserPushPreference,setLocation. Carries theMoEngageUserAttributeResultpayload on success.Declaration
Swift
@objc(MoEngageSetUserAttributeTask) public final class MoEngageSetUserAttributeTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.identifyUser(...)(both overloads). Carries theMoEngageIdentifyUserResultpayload on success.Declaration
Swift
@objc(MoEngageIdentifyUserTask) public final class MoEngageIdentifyUserTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.setDeviceAttribute(...). Carries theMoEngageSetDeviceAttributeResultpayload on success.Declaration
Swift
@objc(MoEngageSetDeviceAttributeTask) public final class MoEngageSetDeviceAttributeTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.appStatus(...). Carries theMoEngageAppStatusResultpayload on success.Declaration
Swift
@objc(MoEngageSetAppStatusTask) public final class MoEngageSetAppStatusTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by all six enable/disable compliance toggles (
See moreenableDataTracking/disableDataTracking/enableIDFATracking/disableIDFATracking/enableIDFVTracking/disableIDFVTracking). The shared task type carries aMoEngageTrackingToggleResultwhosekind+enabledfields identify which toggle fired.Declaration
Swift
@objc(MoEngageTrackingToggleTask) public final class MoEngageTrackingToggleTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.trackLocale(...). Carries theMoEngageTrackDeviceLocaleResultpayload on success.Declaration
Swift
@objc(MoEngageTrackDeviceLocaleTask) public final class MoEngageTrackDeviceLocaleTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.processURL(...). Carries theMoEngageProcessURLResultpayload on success.Declaration
Swift
@objc(MoEngageProcessURLTask) public final class MoEngageProcessURLTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable
-
Typed task returned by
See moreMoEngageSDKAnalytics.flush(...)(the typed-task sibling of the deprecated completion-block variant). Carries aMoEngageFlushResulton success once the batch sync has been server-acknowledged.Declaration
Swift
@objc(MoEngageFlushTask) public final class MoEngageFlushTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.resetUser(...)(the typed-task sibling of the deprecated completion-block variant). Carries aMoEngageResetUserResulton success once the user state has been reset.Declaration
Swift
@objc(MoEngageResetUserTask) public final class MoEngageResetUserTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageSDKAnalytics.getUserIdentities(...)(the typed-task sibling of the deprecated completion-block variant). Carries aMoEngageGetUserIdentitiesResultwith the current identity map on success.Declaration
Swift
@objc(MoEngageGetUserIdentitiesTask) public final class MoEngageGetUserIdentitiesTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Model class to enable console logging and logLevel
See moreDeclaration
Swift
@objc public class MoEngageConsoleLogConfig : NSObject -
/ Model class to support environmet configuration
See more -
MoEngage SDK Project specific Configuration
See moreDeclaration
Swift
@objcMembers public class MoEngageProjectConfig : NSObject
-
Success payload for
See moreMoEngageCoreIntegrator.enableSDKForPartner(...). Echoes the partner integration type that was enabled.Declaration
Swift
@objc public final class MoEngagePartnerEnablementResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageCoreIntegrator.addIntergrationInfo(...). Echoes the integration info that was recorded in the workspace’s core cache.Declaration
Swift
@objc public final class MoEngageIntegrationInfoResult : NSObject, @unchecked Sendable -
Typed task returned by
See moreMoEngageCoreIntegrator.enableSDKForPartner(...). Carries aMoEngagePartnerEnablementResulton success.Declaration
Swift
@objc(MoEngageEnableSDKForPartnerTask) public final class MoEngageEnableSDKForPartnerTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Typed task returned by
See moreMoEngageCoreIntegrator.addIntergrationInfo(...). Carries anMoEngageIntegrationInfoResulton success.Declaration
Swift
@objc(MoEngageAddIntegrationInfoTask) public final class MoEngageAddIntegrationInfoTask : MoEngageBaseTask, MoEngageTaskProtocol, @unchecked Sendable -
Declaration
Swift
public final class MoEngageCampaignsCoreManager : @unchecked Sendable -
Declaration
Swift
public final class MoEngageLiveActivityManager : NSObject, @unchecked Sendable -
Declaration
Swift
@objc public class MoEngageRequestBodyBuildResult : NSObject -
MoEngageSDKAppPersonalization provides APIs to track personalization experience events such as impressions and clicks.
See moreImportant
This class is deprecated. UseMoEngageSDKPersonalize.sharedInstancefrom theMoEngagePersonalizationmodule instead. Fetch experience campaigns viaMoEngageSDKPersonalize.sharedInstance.fetchExperience(experienceKey:...)and use the returnedMoEngageExperienceCampaignto call the corresponding track methods.Declaration
Swift
@available(*, deprecated, message: "Use MoEngageSDKPersonalize.sharedInstance from the MoEngagePersonalization module. Fetch campaigns via fetchExperience(experienceKey:...﹚ and track using trackExperienceShown/trackExperienceClicked/trackOfferingShown/trackOfferingClicked.") @objc public class MoEngageSDKAppPersonalization : NSObject, @unchecked Sendable
-
Base class for SDK-autonomous events. Customers dispatch via
if let sync = event as? MoEngageSDKEventSyncSuccess { ... }; unknown future subtypes are forward-compatible. The originating workspace is carried byaccountMetaon the observer callback, not duplicated on the event.Declaration
Swift
@objc(MoEngageSDKEvent) public class MoEngageSDKEvent : NSObject, @unchecked Sendable
-
A background batch sync completed successfully (server-acknowledged). Confirms that locally-batched events reached MoEngage; per-call
See moreonSuccessonly confirms local-batch acceptance.Declaration
Swift
@objc(MoEngageSDKEventSyncSuccess) public class MoEngageSDKEventSyncSuccess : MoEngageSDKEvent, @unchecked Sendable
-
A background batch sync failed. Carries the failure and whether the SDK plans to retry; permanently-dropped batches arrive with
See morewillRetry == false.Declaration
Swift
@objc(MoEngageSDKEventSyncFailure) public class MoEngageSDKEventSyncFailure : MoEngageSDKEvent, @unchecked Sendable -
JWT authentication details containing token and user identifier
This class encapsulates JWT authentication information required for MoEngage SDK authentication. It contains the JWT token and associated user identifier.
Usage Example
let jwtDetails = MoEngageJwtAuthenticationDetails( token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", identifier: "user123" ) MoEngageSDKCore.sharedInstance.passAuthenticationDetails(jwtDetails)JWT Token Requirements
- The token should be a valid JWT (JSON Web Token)
- It should be signed with a supported algorithm
- The token should contain the required claims for MoEngage authentication
- The token should not be expired
Thread Safety
This class is immutable after initialization and is thread-safe.
Objective-C Compatibility
This class is fully compatible with Objective-C through the
See more@objcannotation.Declaration
Swift
@objc public final class MoEngageJwtAuthenticationDetails : MoEngageAuthenticationDetails, @unchecked Sendable -
JWT Authentication Error class that inherits from the base authentication error.
This class represents JWT-specific authentication errors that occur during network requests in the MoEngage SDK. It provides JWT-specific error codes and payload information.
Usage Example
See moreclass MyJwtListener: MoEngageAuthenticationError.Listener { func onError(_ error: MoEngageAuthenticationError) { if let jwtError = error as? MoEngageJwtAuthenticationError { // Handle JWT-specific error switch jwtError.details.code { case .timeConstraintFailure: // Handle token expiration - refresh token refreshJwtToken() case .invalidSignature: // Handle signature validation failure - re-authenticate reAuthenticate() case .tokenNotAvailable: // Handle missing token - provide new token provideJwtToken() default: // Handle other errors logError(jwtError) } } } }Declaration
Swift
@objc public final class MoEngageJwtAuthenticationError : MoEngageAuthenticationError, @unchecked Sendable -
Base class for authentication details used in MoEngage SDK
This abstract base class provides a common interface for all authentication detail types in the MoEngage SDK. Concrete implementations should override the
asInternalDetails()method to provide the appropriate internal representation.Usage
Do not instantiate this class directly. Instead, use concrete implementations like
MoEngageJwtAuthenticationDetailsfor specific authentication methods.Declaration
Swift
@objc public class MoEngageAuthenticationDetails : NSObject, @unchecked Sendable -
Base Authentication Error class that encapsulates detailed error information.
This class represents authentication errors that occur during network requests in the MoEngage SDK. It provides comprehensive error details including specific error codes, human-readable messages, and account metadata for debugging and error handling purposes.
Error Handling
Authentication errors can occur due to various reasons such as token expiration, invalid signatures, malformed tokens, or network issues. This class provides structured error information to help developers handle these scenarios appropriately.
See moreDeclaration
Swift
@objc public class MoEngageAuthenticationError : NSObject, @unchecked Sendable -
Failure reason for
See moreMoEngageCoreinit / bootstrap failures.moduleCodeis non-nil for module-specific failures; nil when a shared base-classCodeis used.Declaration
Swift
@objc(MoEngageCoreRequestFailureReason) public class MoEngageCoreRequestFailureReason : MoEngageRequestFailureReason -
Failure delivered to
MoEngageTaskProtocol.onFailureand thrown fromMoEngageTaskProtocol.result(). Wraps aMoEngageRequestFailureReason, a human-readablemessage, and an optional underlyingcause.NSErrorsubclass for ObjC bridging.Supports
See moreNSSecureCoding. On decode, the reason is reconstructed as the baseMoEngageRequestFailureReasoncarrying the sharedcode— module-specific subclass metadata is dropped. When decoding chained failures, include bothNSError.selfandMoEngageRequestFailure.selfin the unarchiver’s allow-list.Declaration
Swift
@objc(MoEngageRequestFailure) public class MoEngageRequestFailure : NSError, @unchecked Sendable -
Reason describing why a public API call failed.
The base class carries the shared SDK-wide failure code (network, parse, auth, etc.) that any module can emit. Module-specific failures are represented by subclasses (
MoEngageCoreRequestFailureReason,MoEngageInAppRequestFailureReason,MoEngageMessagingRequestFailureReason) which carry their ownModuleCodeenum plus module-specific metadata (e.g.campaignId).Customers downcast
See moreerror.reason as? MoEngageInAppRequestFailureReasonto access module-specific information, orswitch reason.codefor cross-cutting handling.openso first-party SDK pods can declare module-specific reason subclasses (MoEngageCoreRequestFailureReasonin MoEngageCore,MoEngageInAppRequestFailureReasonin MoEngageInApps,MoEngageMessagingRequestFailureReasonin MoEngageMessaging, etc.). The sharedCodeenum on this base class covers cross-cutting failure modes; each subclass adds a nestedModuleCodeenum for module-specific codes.Declaration
Swift
@objc(MoEngageRequestFailureReason) open class MoEngageRequestFailureReason : NSObject -
Base class for the per-API typed tasks returned by public SDK APIs.
Exposes an ObjC-bridgeable
Any-typedonSuccess/onFailuresurface; Swift consumers get the typed equivalents throughMoEngageTaskProtocolon each subclass.- Handlers are single-slot (last-writer-wins) and always dispatched on the main thread.
- Late-attach replays the cached outcome immediately when a handler is attached after
resolve/rejecthas already fired. cancel()clears pending handlers; the underlying SDK operation continues to natural completion and its result is discarded.
Declaration
Swift
@objc(MoEngageBaseTask) open class MoEngageBaseTask : NSObject, @unchecked Sendable -
Declaration
Swift
@objc public final class MoEngageMessagingPermissionHandler : NSObject -
A utility class for handling accessibility data in push notifications. This class provides methods to fetch and assess accessibility information from push payloads, ensuring that the content displayed adheres to accessibility settings on the device.
See moreDeclaration
Swift
public class MoEngagePushAccessibility -
Declaration
Swift
public class MoEngagePushCallBackHandler : NSObject, UNUserNotificationCenterDelegate -
Module-specific failure reason for
MoEngageMessagingfailures emitted from the typed-task API surface.Customers inspect
See moremoduleCodefirst for a Messaging-specific signal; ifnil, fall back to the base class’scodefor shared cross-cutting handling (e.g..sdkNotInitializedwhen no instance is registered for the given appId).Declaration
Swift
@objc(MoEngageMessagingRequestFailureReason) public final class MoEngageMessagingRequestFailureReason : MoEngageRequestFailureReason
-
Success payload for
MoEngagePushTokenTask— fires when the push-token signal (setPushToken/didFailToRegisterForPush/registerFor*/setUserNotificationCategories) has been accepted by the SDK and the downstream APNs registration pipeline has been kicked off.Marker — no echo needed. Customers identify which method was tracked from the call they initiated. APNs-side success/failure (token delivery, permission grant) continues to arrive via the
MoEngageMessagingDelegate, not via this task.Important:
onSuccessconfirms that the SDK has accepted the customer’s call into its pipeline. It does NOT indicate that APNs delivered the device token, that the user granted notification authorization, or that a push was actually delivered — those outcomes are surfaced separately throughMoEngageMessagingDelegate.Declaration
Swift
@objc(MoEngagePushTokenResult) public final class MoEngagePushTokenResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngagePassPushPayloadTask— fires when the push payload (process(notificationPayload:forInstanceID:)/didReceieveNotification(...)) has been validated and dispatched to the SDK’s push-processing pipeline.Declaration
Swift
@objc(MoEngagePassPushPayloadResult) public final class MoEngagePassPushPayloadResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageLogNotificationTask. Resolves onSuccess after the impression is accepted into the local batch storage. ReturnsonFailure(.duplicateImpression)if the same impression payload was already tracked in a prior call — applies tologNotificationReceived(withPayload:)only; thelogNotificationClickedvariants do not dedup.Customers identify which event was tracked from the method they called — no
kinddiscriminator on the Result.Carries the full notification payload that was tracked. Nested
See moreaps/moengagedictionaries and primitive values pass through unchanged; only the top-levelAnyHashablekeys are normalised toString(push-payload keys areStringin practice — non-string keys fall back toString(describing:)).Declaration
Swift
@objc(MoEngageNotificationTrackingResult) public final class MoEngageNotificationTrackingResult : NSObject, @unchecked Sendable
-
Success payload for
MoEngageNavigationTask— fires when the navigation action (navigateToPushSettings()) has been issued to the OS. Does NOT confirm that Settings actually opened on screen;UIApplication.open(_:)completes asynchronously and the SDK doesn’t observe the final outcome.Marker — customer asked to navigate to settings; success means the SDK successfully issued the open request.
Declaration
Swift
@objc(MoEngageNavigationResult) public final class MoEngageNavigationResult : NSObject, @unchecked Sendable
-
Typed task returned by the push-token / registration family on
MoEngageSDKMessaging—setPushToken(_:),didFailToRegisterForPush(),registerForRemoteNotification(...),registerForRemoteProvisionalNotification(...),setUserNotificationCategories(_:). Resolves withMoEngagePushTokenResult(marker) once the signal is accepted into the SDK’s APNs-registration pipeline.Failure codes:
.invalidPushToken— nil/empty token (setPushTokenonly).sdkNotInitialized(shared) — no SDK instance / message-delegate handler unavailable
.pushRegisterFailedis reserved for future use; not currently emitted.didFailToRegisterForPush()resolves — the task tracks the customer’s CALL, not the APNs event being reported.APNs-side outcomes (token delivery, permission grant) arrive via
See moreMoEngageMessagingDelegate, unchanged.Declaration
Swift
@objc(MoEngagePushTokenTask) public final class MoEngagePushTokenTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by the push-payload-processing methods on
MoEngageSDKMessaging—process(notificationPayload:forInstanceID:). Carries aMoEngagePassPushPayloadResulton success once the payload has been validated and dispatched to the SDK’s push-processing pipeline.
See moreonFailurefires withMoEngageMessagingRequestFailureReason.code == .invalidParameters(shared) when the payload fails validation, or.sdkNotInitializedwhen no SDK instance is registered.Declaration
Swift
@objc(MoEngagePassPushPayloadTask) public final class MoEngagePassPushPayloadTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by the notification-impression-logging methods on
MoEngageSDKMessaging—logNotificationReceived(withPayload:)/logNotificationClicked(withPayload:)/logNotificationClicked(withResponse:). Carries aMoEngageNotificationTrackingResulton success after the impression is accepted into the local batch storage. ForlogNotificationReceived(withPayload:)only, returnsonFailure(.duplicateImpression)when the same impression payload was already tracked in a prior call.Customers identify which event was tracked from the method they called — there is no
See morekinddiscriminator on the Result.Declaration
Swift
@objc(MoEngageLogNotificationTask) public final class MoEngageLogNotificationTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by
See moreMoEngageSDKMessaging.navigateToPushSettings(). Carries aMoEngageNavigationResultmarker on success once the navigation request has been issued to the OS. Does NOT confirm that the Settings app actually opened —UIApplication.open(_:)completes asynchronously.Declaration
Swift
@objc(MoEngageNavigationTask) public final class MoEngageNavigationTask : MoEngageBaseTask, MoEngageTaskProtocol -
Declaration
Swift
@objc public class MoEngageInboxAccessibilityData : NSObject, Codable -
MoEngage Cards Accessibility data
See moreDeclaration
Swift
@objc public final class MoEngageCardAccessibilityData : NSObject, Codable, Sendable -
A model representing the card data for a MoEngage campaign.
See moreDeclaration
Swift
@objcMembers final public class MoEngageCardData : NSObject, Sendable -
JavaScript bridge constants for InApp messaging Provides constants for JavaScript bridge communication.
See moreDeclaration
Swift
@objc public class MoEngageInAppJSBridge : NSObject
-
Production date provider using system Date()
Uses the system’s current date and time for all operations. This is the default implementation used in production code.
See moreDeclaration
Swift
public final class MoEngageRealDateProvider : MoEngageDateProvider -
Core Frequency Capping evaluator that determines whether campaigns can be shown
This class implements the main FC evaluation logic, checking various FC rules including global settings, campaign-level overrides, and tag-based rules.
Key Features
- Global FC Evaluation: Checks global FC limits for all trigger types
- Campaign-Level Override: Handles campaign-specific FC settings
- Tag-Based Evaluation: Supports both all-tags (AND) and any-tag (OR) conditions
- Bypass Logic: Handles ignore_global_fc and ignore_fc_count flags
- Pure Function: No side effects, logging handled by controller integration
FC Evaluation Flow
- Check if campaign has FC bypass flags (ignore_global_fc > ignore_fc_count > normal)
- Evaluate global FC limits for the trigger type
- Evaluate campaign-level FC limits
- Evaluate tag-based FC limits (if applicable)
- Return evaluation result with blocking reason
Bypass Precedence
- ignore_global_fc: Skip all global and tag checks, return success
- ignore_fc_count: Continue evaluation but skip increment
- normal: Full FC evaluation with all rules
Declaration
Swift
public final class MoEngageInAppFCEvaluator -
Declaration
Swift
public final class MoEngageInAppSessionFCStore -
Declaration
Swift
@IBDesignable @objcMembers @MainActor public class MoEngageStarRatingView : UIControl
-
:nodoc
See moreDeclaration
Swift
@objcMembers public class MoEngageAnimatedGifBridge : NSObject
-
Feedback label widget for rating widgets. Displays single-line, center-aligned text with truncation for rating feedback.
See moreDeclaration
Swift
@objcMembers @MainActor public class MoEngageFeedBackLabelWidget : MoEngageInAppLabelWidget
-
A UIView subclass that displays a custom rating widget for in-app campaigns. This view extends MoEngageInAppRatingView to support custom rating icons and enhanced accessibility.
See moreDeclaration
Swift
@objcMembers @MainActor public class MoEngageInAppCustomRatingView : MoEngageInAppRatingView
-
Label widget for displaying text in InApp campaigns. Supports multi-line text, dynamic font scaling, custom padding, and tap actions.
See moreDeclaration
Swift
@objcMembers @MainActor public class MoEngageInAppLabelWidget : UILabel
-
A UIView subclass that displays a star rating widget for in-app campaigns. This view manages the display, layout, and interaction of a star rating control.
See moreDeclaration
Swift
@objcMembers @MainActor public class MoEngageInAppRatingView : UIView -
A custom content view that forwards specific properties to the parent container. This is used inside a UIScrollView to properly handle dataSource and other properties.
See moreDeclaration
Swift
@objc @MainActor public class MoEngageInAppScrollContentView : UIView
-
Custom WebView implementation for InApp HTML messages
Handles JavaScript bridge communication, HTML loading, and WebView lifecycle.
Key responsibilities:
- Configure WKWebView with JavaScript bridge for native-web communication
- Load HTML content from file system or string
- Handle script messages from JavaScript and route to action handlers
- Present JavaScript dialogs (alert, confirm, prompt)
- Manage WebView lifecycle and memory cleanup
Declaration
Swift
@objc @MainActor public class MoEngageInAppWebView : UIViewextension MoEngageInAppWebView: WKNavigationDelegateextension MoEngageInAppWebView: WKScriptMessageHandlerextension MoEngageInAppWebView: WKUIDelegate -
Video widget view for inapps.
See moreDeclaration
Swift
@objcMembers @MainActor public class MoEngageInAppVideoWidget : UIView -
Video widget helpers.
See moreDeclaration
Swift
@objcMembers public class MoEngageInAppVideoWidgetUtils : NSObject
-
Manages In-App campaign assets: downloading images/HTML resources, resolving local file paths, and removing expired or campaign-specific assets. Exposed to Objective-C via the generated MoEngageInApps-Swift.h (no separate .h).
See moreDeclaration
Swift
@objc public final class MoEngageInAppAssetsManager : NSObject
-
Declaration
Swift
@objc public class MoEngageInAppController : NSObject, MoEngageInAppActionHandlerDelegateextension MoEngageInAppController: MoEngageTestInAppProtocolextension MoEngageInAppController: MoEngageTriggerEvaluationCallBacksHandler -
Declaration
Swift
@objcMembers public class MoEngageInAppControllerProviderInterface : NSObject -
Declaration
Swift
@objcMembers public class MoEngageInAppControllerProvider : MoEngageControllerProvider
-
Manages in-app campaign data including saving, parsing, filtering, and categorization. State management, utilities, campaign removal, and logging methods are in
See moreMoEngageInAppDataManager+State.swift.Declaration
Swift
@objcMembers public class MoEngageInAppDataManager : NSObject
-
Declaration
Swift
@objc(MoEngageInAppDelegateHandler) public final class MoEngageInAppDelegateHandler: NSObject, MoEngageInAppDelegate -
Module-specific failure reason for
MoEngageInAppsfailures emitted from the typed-task API surface.Customers inspect
See moremoduleCodefirst for an InApp-specific signal; ifnil, fall back to the base class’scodefor shared cross-cutting handling (e.g..sdkNotInitializedwhen no instance is registered for the given appId).Declaration
Swift
@objc(MoEngageInAppRequestFailureReason) public final class MoEngageInAppRequestFailureReason : MoEngageRequestFailureReason
-
Success payload for
MoEngageShowInAppTask(intrusive in-apps: pop-up / fullscreen).Resolves AFTER the campaign is visibly rendered on screen — i.e. after the
MoEngageInAppNativeDelegate.inAppShown(...)delegate callback path has fired.try await result()blocks until visual attach + delay-manager + render completion. For animated campaigns this can be several seconds after theshowInApp(...)call returns.Customers can use either signal — the typed task resolves at the same anchor as the
See moreinAppShowndelegate. The delegate hook continues to work unchanged for customers who prefer the legacy convention; new customers canawait task.result()and inspect the typed payload directly.Declaration
Swift
@objc(MoEngageShowInAppResult) public final class MoEngageShowInAppResult : NSObject, MoEngageShownCampaign, @unchecked Sendable
-
Success payload for
See moreMoEngageShowNudgeTask(non-intrusive nudges anchored to a screen position). Same resolution timing semantics asMoEngageShowInAppResult— fires after visible render via theMoEngageInAppNativeDelegate.inAppShown(...)delegate callback path.Declaration
Swift
@objc(MoEngageShowNudgeResult) public final class MoEngageShowNudgeResult : NSObject, MoEngageShownCampaign, @unchecked Sendable
-
Success payload for
See moreMoEngageSelfHandledTrackingTask— fires after the shown / clicked / dismissed impression has been accepted into the SDK’s tracking pipeline. Customers identify which event was tracked from the method they called (selfHandledShown/Clicked/Dismissed), not from the Result.Declaration
Swift
@objc(MoEngageSelfHandledTrackingResult) public final class MoEngageSelfHandledTrackingResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageGetSelfHandledInAppTask— fires once the single-eligible-campaign fetch completes.campaignisnilwhen no eligible self-handled campaign exists for the workspace at this time (a valid customer-observable state — not a failure).Declaration
Swift
@objc(MoEngageGetSelfHandledInAppResult) public final class MoEngageGetSelfHandledInAppResult : NSObject, @unchecked Sendable
-
Success payload for
See moreMoEngageGetSelfHandledInAppsTask— fires once the all-eligible-campaigns fetch completes.campaignsmay be empty (a valid customer-observable state — not a failure).Declaration
Swift
@objc(MoEngageGetSelfHandledInAppsResult) public final class MoEngageGetSelfHandledInAppsResult : NSObject, @unchecked Sendable
-
Typed task returned by
MoEngageSDKInApp.showInApp(...)overloads (intrusive in-apps: pop-up / fullscreen). Carries aMoEngageShowInAppResulton success AFTER the campaign is visibly rendered on screen — resolve fires from theMoEngageInAppNativeDelegate.inAppShown(...)delegate-path, NOT from thecreateInAppcompletion boundary. SeeMoEngageShowInAppResultfor the full resolve-point semantic.onFailurefires withMoEngageInAppRequestFailureReasonwhosemoduleCodeis one of:.campaignNotFound— no eligible campaign for this request (covers no-campaigns-available, no-campaign-after-eligibility, blocked-in-VC, display-cancelled-by-override, AND preemption by a higher-priority campaign).campaignIdisnil..renderFailed— selected native campaign’s payload couldn’t be fetched OR the view-builder / on-screen-attach step failed for a campaign that had already been selected.campaignIdcarries the failed campaign’s identifier..htmlAssetLoadFailed— selected HTML campaign’s assets couldn’t be loaded.campaignIdcarries the failed campaign’s identifier. Or.sdkNotInitialized(shared code) when no SDK instance is registered for the supplied appId.
Multiple pre-sync calls: earlier calls reject with
See more.duplicateFunctionCall; the most-recent retained task settles on the actual outcome at sync-completion.Declaration
Swift
@objc(MoEngageShowInAppTask) public final class MoEngageShowInAppTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by
MoEngageSDKInApp.showNudge(...)overloads (non-intrusive nudges anchored to a screen position). Carries aMoEngageShowNudgeResulton success AFTER the nudge is visibly rendered on screen — same resolve semantic asMoEngageShowInAppTask.onFailurecodes are the same set asMoEngageShowInAppTask—.campaignNotFound,.renderFailed,.htmlAssetLoadFailed, or.sdkNotInitialized.Multiple pre-sync calls at the SAME position: earlier calls reject with
See more.duplicateFunctionCall; the most-recent retained task at that position settles on the actual outcome at sync-completion. Different positions are independent (slot-keyed by position).Declaration
Swift
@objc(MoEngageShowNudgeTask) public final class MoEngageShowNudgeTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by the three self-handled impression tracking methods on
MoEngageSDKInApp—selfHandledShown(campaignInfo:),selfHandledClicked(campaignInfo:),selfHandledDismissed(campaignInfo:)(and theirforAppId:overloads). Carries aMoEngageSelfHandledTrackingResulton success once the impression has been accepted into the SDK’s tracking pipeline.The Result echoes
See morecampaignName+campaignId. Customers identify which event was tracked from the method they called — there is nokinddiscriminator on the Result.Declaration
Swift
@objc(MoEngageSelfHandledTrackingTask) public final class MoEngageSelfHandledTrackingTask : MoEngageBaseTask, MoEngageTaskProtocol
-
Typed task returned by
See moreMoEngageSDKInApp.getSelfHandledInApp(...)(the typed-task sibling of the deprecated completion-block variant). Carries aMoEngageGetSelfHandledInAppResulton success —campaignis non-nilif an eligible self-handled campaign was found, ornilif none is available (the absence of an eligible campaign is a valid customer-observable state, not a failure).Declaration
Swift
@objc(MoEngageGetSelfHandledInAppTask) public final class MoEngageGetSelfHandledInAppTask : MoEngageBaseTask, MoEngageTaskProtocol -
Typed task returned by
See moreMoEngageSDKInApp.getSelfHandledInApps(...)(the typed-task sibling of the deprecated completion-block variant). Carries aMoEngageGetSelfHandledInAppsResulton success —campaignsmay be empty.Declaration
Swift
@objc(MoEngageGetSelfHandledInAppsTask) public final class MoEngageGetSelfHandledInAppsTask : MoEngageBaseTask, MoEngageTaskProtocol -
A model class representing a frequency capping rule for in-app campaigns.
This class defines the parameters for frequency capping rules, including maximum display count, time unit, and period for the rule.
Key Features:
- Maximum display count configuration
- Time unit specification (session, hour, day)
- Period duration for the rule
- Validation and error handling
Frequency capping rule for in-app campaigns. Base class for tag-based and global rules.
See moreDeclaration
Swift
@objcMembers public class MoEngageInAppFCRule : MoEngageModelObject, NSCoding, Codable -
A comprehensive data container class that manages all in-app campaign data and state.
This class serves as the central repository for in-app campaign information, including different types of campaigns (general, triggered, self-handled, non-intrusive), campaign states, timing controls, and synchronization settings. It conforms to
See moreNSCodingandMoEngageDataModelprotocols for data persistence and management.Declaration
Swift
@objcMembers public class MoEngageInAppCampaignsData : NSObject, NSCoding, MoEngageDataModel -
A class that manages delivery control settings for in-app campaigns.
This class handles various aspects of campaign delivery including priority levels, persistence settings, and frequency capping metadata. It conforms to
See moreNSCodingandCodableprotocols for data persistence and serialization.Declaration
Swift
@objcMembers public class MoEngageInAppDeliveryControl : NSObject, NSCoding, Codable -
A class that manages display settings and rules for in-app messages.
This class handles the visual presentation and timing of in-app campaigns, including display rules, delays, and formatting. It conforms to
See moreNSCodingandCodableprotocols for data persistence and serialization.Declaration
Swift
@objcMembers public class MoEngageInAppDisplay : NSObject, NSCoding, Codable -
A class that defines display rules and conditions for in-app messages.
This class manages when and where in-app messages should be displayed based on screen contexts and screen names. It helps control the targeting and placement of in-app campaigns to ensure they appear at the right time and location. It conforms to
See moreNSCodingandCodableprotocols for data persistence.Declaration
Swift
@objcMembers public class MoEngageInAppDisplayRules : NSObject, NSCoding, Codable -
A class that manages frequency capping metadata for in-app campaigns.
This class controls how often in-app messages can be displayed to users, including maximum display counts, minimum delays between displays, and whether to ignore global delay settings. It conforms to
See moreNSCodingandCodableprotocols for data persistence and serialization.Declaration
Swift
@objcMembers public class MoEngageInAppFCMeta : NSObject, NSCoding, Codable -
A class that tracks the state and interaction history of an in-app campaign.
This class maintains important information about how an in-app campaign has been displayed and interacted with, including display counts, timing information, and completion status. It helps manage campaign lifecycle and prevents over-display of campaigns. It conforms to
See moreMoEngageModelObject,NSCoding, andCodableprotocols for data persistence and management.Declaration
Swift
@objcMembers public class MoEngageInAppState : MoEngageModelObject, NSCoding, Codable -
Model describing the navigation action for inapp
See moreDeclaration
Swift
@objc public class MoEngageInAppNavigationAction : MoEngageInAppAction -
InApp Display Rules
See moreDeclaration
Swift
@objc public class MoEngageInAppRules : NSObject -
MoEngageInAppSelfHandledData provides info about multiple selfhandled Inapps
See moreDeclaration
Swift
@objc public class MoEngageInAppSelfHandledData : NSObject -
Declaration
Swift
@objc public class MoEngageTestInAppBatchHandler : NSObject -
This class can be used for all inapp instance agnostic behaviour
See moreDeclaration
Swift
@objcMembers public final class MoEngageInAppConfigurationHandler : NSObject -
Declaration
Swift
@objc public class MoEngageInAppStatsManager : NSObject
Other Classes Reference