Other Classes

The following classes are available globally.

trackEvent

  • Success payload for MoEngageSDKAnalytics.trackEvent(...). onSuccess fires when the event has been validated and accepted into the local batch storage; acceptedProperties / droppedPropertyKeys surface the per-key validation outcome.

    See more

    Declaration

    Swift

    @objc
    public final class MoEngageTrackEventResult : NSObject, @unchecked Sendable

setUserAttribute (+ variants, setAlias, setXxx convenience wrappers)

  • Success payload for the setUserAttribute* family (including setAlias, setUniqueID, setEmailID, setName, setLocation, etc. — all of which internally normalise to a setUserAttribute call).

    Echoes the validated attribute accepted into local batch storage.

    See more

    Declaration

    Swift

    @objc
    public final class MoEngageUserAttributeResult : NSObject, @unchecked Sendable

identifyUser

setDeviceAttribute

appStatus

enable / disable {DataTracking, IDFA, IDFV}

  • Success payload for the six enable/disable compliance toggles (enableDataTracking, disableDataTracking, enableIDFATracking, disableIDFATracking, enableIDFVTracking, disableIDFVTracking). All six share MoEngageTrackingToggleTask; kind + enabled together identify which toggle fired and which direction.

    See more

    Declaration

    Swift

    @objc
    public final class MoEngageTrackingToggleResult : NSObject, @unchecked Sendable

trackLocale

  • Success payload for MoEngageSDKAnalytics.trackLocale(...).

    trackLocale resolves onSuccess when 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 with MoEngageCoreRequestFailureReason(moduleCode: .trackLocaleSubAttributeFailed) instead — per-attribute reasons appear in the failure message.

    Shape mirrors Android’s UserAttributeResult.Bulk for cross-platform parity.

    See more

    Declaration

    Swift

    @objc
    public final class MoEngageTrackDeviceLocaleResult : NSObject, @unchecked Sendable

processURL

flush

  • Success payload for MoEngageSDKAnalytics.flush(...). Empty marker — onSuccess firing on a MoEngageFlushTask indicates 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

resetUser

getUserIdentities

Completion-block deprecation pair siblings

enableSDKForPartner

  • Success payload for MoEngageCoreIntegrator.enableSDKForPartner(...). Echoes the partner integration type that was enabled.

    See more

    Declaration

    Swift

    @objc
    public final class MoEngagePartnerEnablementResult : NSObject, @unchecked Sendable

addIntergrationInfo

MoEngageSDKEvent (base)

  • 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 by accountMeta on the observer callback, not duplicated on the event.

    Declaration

    Swift

    @objc(MoEngageSDKEvent)
    public class MoEngageSDKEvent : NSObject, @unchecked Sendable

MoEngageSDKEventSyncSuccess

  • A background batch sync completed successfully (server-acknowledged). Confirms that locally-batched events reached MoEngage; per-call onSuccess only confirms local-batch acceptance.

    See more

    Declaration

    Swift

    @objc(MoEngageSDKEventSyncSuccess)
    public class MoEngageSDKEventSyncSuccess : MoEngageSDKEvent, @unchecked Sendable

MoEngageSDKEventSyncFailure

  • A background batch sync failed. Carries the failure and whether the SDK plans to retry; permanently-dropped batches arrive with willRetry == false.

    See more

    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 @objc annotation.

    See more

    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

    class 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)
                }
            }
        }
    }
    
    See more

    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 MoEngageJwtAuthenticationDetails for 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 more

    Declaration

    Swift

    @objc
    public class MoEngageAuthenticationError : NSObject, @unchecked Sendable
  • Failure reason for MoEngageCore init / bootstrap failures. moduleCode is non-nil for module-specific failures; nil when a shared base-class Code is used.

    See more

    Declaration

    Swift

    @objc(MoEngageCoreRequestFailureReason)
    public class MoEngageCoreRequestFailureReason : MoEngageRequestFailureReason
  • Failure delivered to MoEngageTaskProtocol.onFailure and thrown from MoEngageTaskProtocol.result(). Wraps a MoEngageRequestFailureReason, a human-readable message, and an optional underlying cause. NSError subclass for ObjC bridging.

    Supports NSSecureCoding. On decode, the reason is reconstructed as the base MoEngageRequestFailureReason carrying the shared code — module-specific subclass metadata is dropped. When decoding chained failures, include both NSError.self and MoEngageRequestFailure.self in the unarchiver’s allow-list.

    See more

    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 own ModuleCode enum plus module-specific metadata (e.g. campaignId).

    Customers downcast error.reason as? MoEngageInAppRequestFailureReason to access module-specific information, or switch reason.code for cross-cutting handling. open so first-party SDK pods can declare module-specific reason subclasses (MoEngageCoreRequestFailureReason in MoEngageCore, MoEngageInAppRequestFailureReason in MoEngageInApps, MoEngageMessagingRequestFailureReason in MoEngageMessaging, etc.). The shared Code enum on this base class covers cross-cutting failure modes; each subclass adds a nested ModuleCode enum for module-specific codes.

    See more

    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-typed onSuccess / onFailure surface; Swift consumers get the typed equivalents through MoEngageTaskProtocol on 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 / reject has already fired.
    • cancel() clears pending handlers; the underlying SDK operation continues to natural completion and its result is discarded.
    See more

    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 more

    Declaration

    Swift

    public class MoEngagePushAccessibility
  • Declaration

    Swift

    public class MoEngagePushCallBackHandler : NSObject, UNUserNotificationCenterDelegate
  • Module-specific failure reason for MoEngageMessaging failures emitted from the typed-task API surface.

    Customers inspect moduleCode first for a Messaging-specific signal; if nil, fall back to the base class’s code for shared cross-cutting handling (e.g. .sdkNotInitialized when no instance is registered for the given appId).

    See more

    Declaration

    Swift

    @objc(MoEngageMessagingRequestFailureReason)
    public final class MoEngageMessagingRequestFailureReason : MoEngageRequestFailureReason

MoEngagePushTokenResult

  • 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: onSuccess confirms 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 through MoEngageMessagingDelegate.

    Declaration

    Swift

    @objc(MoEngagePushTokenResult)
    public final class MoEngagePushTokenResult : NSObject, @unchecked Sendable

MoEngagePassPushPayloadResult

  • Success payload for MoEngagePassPushPayloadTask — fires when the push payload (process(notificationPayload:forInstanceID:) / didReceieveNotification(...)) has been validated and dispatched to the SDK’s push-processing pipeline.

    See more

    Declaration

    Swift

    @objc(MoEngagePassPushPayloadResult)
    public final class MoEngagePassPushPayloadResult : NSObject, @unchecked Sendable

MoEngageNotificationTrackingResult

  • Success payload for MoEngageLogNotificationTask. Resolves onSuccess after the impression is accepted into the local batch storage. Returns onFailure(.duplicateImpression) if the same impression payload was already tracked in a prior call — applies to logNotificationReceived(withPayload:) only; the logNotificationClicked variants do not dedup.

    Customers identify which event was tracked from the method they called — no kind discriminator on the Result.

    Carries the full notification payload that was tracked. Nested aps / moengage dictionaries and primitive values pass through unchanged; only the top-level AnyHashable keys are normalised to String (push-payload keys are String in practice — non-string keys fall back to String(describing:)).

    See more

    Declaration

    Swift

    @objc(MoEngageNotificationTrackingResult)
    public final class MoEngageNotificationTrackingResult : NSObject, @unchecked Sendable

MoEngageNavigationResult

  • 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

setPushToken / didFailToRegisterForPush / registerFor* / setUserNotificationCategories

  • Typed task returned by the push-token / registration family on MoEngageSDKMessagingsetPushToken(_:), didFailToRegisterForPush(), registerForRemoteNotification(...), registerForRemoteProvisionalNotification(...), setUserNotificationCategories(_:). Resolves with MoEngagePushTokenResult (marker) once the signal is accepted into the SDK’s APNs-registration pipeline.

    Failure codes:

    • .invalidPushToken — nil/empty token (setPushToken only)
    • .sdkNotInitialized (shared) — no SDK instance / message-delegate handler unavailable

    .pushRegisterFailed is 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 MoEngageMessagingDelegate, unchanged.

    See more

    Declaration

    Swift

    @objc(MoEngagePushTokenTask)
    public final class MoEngagePushTokenTask : MoEngageBaseTask, MoEngageTaskProtocol

process(notificationPayload:forInstanceID:) / didReceieveNotification

  • Typed task returned by the push-payload-processing methods on MoEngageSDKMessagingprocess(notificationPayload:forInstanceID:). Carries a MoEngagePassPushPayloadResult on success once the payload has been validated and dispatched to the SDK’s push-processing pipeline.

    onFailure fires with MoEngageMessagingRequestFailureReason.code == .invalidParameters (shared) when the payload fails validation, or .sdkNotInitialized when no SDK instance is registered.

    See more

    Declaration

    Swift

    @objc(MoEngagePassPushPayloadTask)
    public final class MoEngagePassPushPayloadTask : MoEngageBaseTask, MoEngageTaskProtocol

logNotificationReceived / logNotificationClicked (with deprecation pair)

  • Typed task returned by the notification-impression-logging methods on MoEngageSDKMessaginglogNotificationReceived(withPayload:) / logNotificationClicked(withPayload:) / logNotificationClicked(withResponse:). Carries a MoEngageNotificationTrackingResult on success after the impression is accepted into the local batch storage. For logNotificationReceived(withPayload:) only, returns onFailure(.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 kind discriminator on the Result.

    See more

    Declaration

    Swift

    @objc(MoEngageLogNotificationTask)
    public final class MoEngageLogNotificationTask : MoEngageBaseTask, MoEngageTaskProtocol

navigateToPushSettings

Date Provider Abstraction

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

    Declaration

    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

    1. Check if campaign has FC bypass flags (ignore_global_fc > ignore_fc_count > normal)
    2. Evaluate global FC limits for the trigger type
    3. Evaluate campaign-level FC limits
    4. Evaluate tag-based FC limits (if applicable)
    5. 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
    See more

    Declaration

    Swift

    public final class MoEngageInAppFCEvaluator
  • Declaration

    Swift

    public final class MoEngageInAppSessionFCStore
  • Declaration

    Swift

    @IBDesignable
    @objcMembers
    @MainActor
    public class MoEngageStarRatingView : UIControl

ObjC Bridge

MoEngageFeedBackLabelWidget

MoEngageInAppCustomRatingView

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

    Declaration

    Swift

    @objcMembers
    @MainActor
    public class MoEngageInAppCustomRatingView : MoEngageInAppRatingView

MoEngageInAppLabelWidget

  • Label widget for displaying text in InApp campaigns. Supports multi-line text, dynamic font scaling, custom padding, and tap actions.

    See more

    Declaration

    Swift

    @objcMembers
    @MainActor
    public class MoEngageInAppLabelWidget : UILabel

MoEngageInAppRatingView

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

    Declaration

    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 more

    Declaration

    Swift

    @objc
    @MainActor
    public class MoEngageInAppScrollContentView : UIView

Weak Script Message Handler

  • 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
    See more

    Declaration

    Swift

    @objc
    @MainActor
    public class MoEngageInAppWebView : UIView
    extension MoEngageInAppWebView: WKNavigationDelegate
    extension MoEngageInAppWebView: WKScriptMessageHandler
    extension MoEngageInAppWebView: WKUIDelegate
  • Video widget view for inapps.

    See more

    Declaration

    Swift

    @objcMembers
    @MainActor
    public class MoEngageInAppVideoWidget : UIView
  • Video widget helpers.

    See more

    Declaration

    Swift

    @objcMembers
    public class MoEngageInAppVideoWidgetUtils : NSObject

MoEngageInAppAssetsManager

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

    Declaration

    Swift

    @objc
    public final class MoEngageInAppAssetsManager : NSObject

MoEngageInAppController

Private Constants

  • Manages in-app campaign data including saving, parsing, filtering, and categorization. State management, utilities, campaign removal, and logging methods are in MoEngageInAppDataManager+State.swift.

    See more

    Declaration

    Swift

    @objcMembers
    public class MoEngageInAppDataManager : NSObject

Conforming class for instantiation (e.g. NSClassFromString in MoEngageInAppManager)

  • Declaration

    Swift

    @objc(MoEngageInAppDelegateHandler)
    public final class MoEngageInAppDelegateHandler: NSObject,
                                                     MoEngageInAppDelegate
  • Module-specific failure reason for MoEngageInApps failures emitted from the typed-task API surface.

    Customers inspect moduleCode first for an InApp-specific signal; if nil, fall back to the base class’s code for shared cross-cutting handling (e.g. .sdkNotInitialized when no instance is registered for the given appId).

    See more

    Declaration

    Swift

    @objc(MoEngageInAppRequestFailureReason)
    public final class MoEngageInAppRequestFailureReason : MoEngageRequestFailureReason

MoEngageShowInAppResult

  • 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 the showInApp(...) call returns.

    Customers can use either signal — the typed task resolves at the same anchor as the inAppShown delegate. The delegate hook continues to work unchanged for customers who prefer the legacy convention; new customers can await task.result() and inspect the typed payload directly.

    See more

    Declaration

    Swift

    @objc(MoEngageShowInAppResult)
    public final class MoEngageShowInAppResult : NSObject, MoEngageShownCampaign, @unchecked Sendable

MoEngageShowNudgeResult

MoEngageSelfHandledTrackingResult

  • Success payload for MoEngageSelfHandledTrackingTask — 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.

    See more

    Declaration

    Swift

    @objc(MoEngageSelfHandledTrackingResult)
    public final class MoEngageSelfHandledTrackingResult : NSObject, @unchecked Sendable

MoEngageGetSelfHandledInAppResult

  • Success payload for MoEngageGetSelfHandledInAppTask — fires once the single-eligible-campaign fetch completes. campaign is nil when no eligible self-handled campaign exists for the workspace at this time (a valid customer-observable state — not a failure).

    See more

    Declaration

    Swift

    @objc(MoEngageGetSelfHandledInAppResult)
    public final class MoEngageGetSelfHandledInAppResult : NSObject, @unchecked Sendable

MoEngageGetSelfHandledInAppsResult

  • Success payload for MoEngageGetSelfHandledInAppsTask — fires once the all-eligible-campaigns fetch completes. campaigns may be empty (a valid customer-observable state — not a failure).

    See more

    Declaration

    Swift

    @objc(MoEngageGetSelfHandledInAppsResult)
    public final class MoEngageGetSelfHandledInAppsResult : NSObject, @unchecked Sendable

showInApp (intrusive)

  • Typed task returned by MoEngageSDKInApp.showInApp(...) overloads (intrusive in-apps: pop-up / fullscreen). Carries a MoEngageShowInAppResult on success AFTER the campaign is visibly rendered on screen — resolve fires from the MoEngageInAppNativeDelegate.inAppShown(...) delegate-path, NOT from the createInApp completion boundary. See MoEngageShowInAppResult for the full resolve-point semantic.

    onFailure fires with MoEngageInAppRequestFailureReason whose moduleCode is 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). campaignId is nil.
    • .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. campaignId carries the failed campaign’s identifier.
    • .htmlAssetLoadFailed — selected HTML campaign’s assets couldn’t be loaded. campaignId carries 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 .duplicateFunctionCall; the most-recent retained task settles on the actual outcome at sync-completion.

    See more

    Declaration

    Swift

    @objc(MoEngageShowInAppTask)
    public final class MoEngageShowInAppTask : MoEngageBaseTask, MoEngageTaskProtocol

showNudge (non-intrusive)

  • Typed task returned by MoEngageSDKInApp.showNudge(...) overloads (non-intrusive nudges anchored to a screen position). Carries a MoEngageShowNudgeResult on success AFTER the nudge is visibly rendered on screen — same resolve semantic as MoEngageShowInAppTask.

    onFailure codes are the same set as MoEngageShowInAppTask.campaignNotFound, .renderFailed, .htmlAssetLoadFailed, or .sdkNotInitialized.

    Multiple pre-sync calls at the SAME position: earlier calls reject with .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).

    See more

    Declaration

    Swift

    @objc(MoEngageShowNudgeTask)
    public final class MoEngageShowNudgeTask : MoEngageBaseTask, MoEngageTaskProtocol

selfHandledShown / selfHandledClicked / selfHandledDismissed

  • Typed task returned by the three self-handled impression tracking methods on MoEngageSDKInAppselfHandledShown(campaignInfo:), selfHandledClicked(campaignInfo:), selfHandledDismissed(campaignInfo:) (and their forAppId: overloads). Carries a MoEngageSelfHandledTrackingResult on success once the impression has been accepted into the SDK’s tracking pipeline.

    The Result echoes campaignName + campaignId. Customers identify which event was tracked from the method they called — there is no kind discriminator on the Result.

    See more

    Declaration

    Swift

    @objc(MoEngageSelfHandledTrackingTask)
    public final class MoEngageSelfHandledTrackingTask : MoEngageBaseTask, MoEngageTaskProtocol

getSelfHandledInApp / getSelfHandledInApps (deprecation pair)

  • Typed task returned by MoEngageSDKInApp.getSelfHandledInApp(...) (the typed-task sibling of the deprecated completion-block variant). Carries a MoEngageGetSelfHandledInAppResult on success — campaign is non-nil if an eligible self-handled campaign was found, or nil if none is available (the absence of an eligible campaign is a valid customer-observable state, not a failure).

    See more

    Declaration

    Swift

    @objc(MoEngageGetSelfHandledInAppTask)
    public final class MoEngageGetSelfHandledInAppTask : MoEngageBaseTask, MoEngageTaskProtocol
  • Typed task returned by MoEngageSDKInApp.getSelfHandledInApps(...) (the typed-task sibling of the deprecated completion-block variant). Carries a MoEngageGetSelfHandledInAppsResult on success — campaigns may be empty.

    See more

    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 more

    Declaration

    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 NSCoding and MoEngageDataModel protocols for data persistence and management.

    See more

    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 NSCoding and Codable protocols for data persistence and serialization.

    See more

    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 NSCoding and Codable protocols for data persistence and serialization.

    See more

    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 NSCoding and Codable protocols for data persistence.

    See more

    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 NSCoding and Codable protocols for data persistence and serialization.

    See more

    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 MoEngageModelObject, NSCoding, and Codable protocols for data persistence and management.

    See more

    Declaration

    Swift

    @objcMembers
    public class MoEngageInAppState : MoEngageModelObject, NSCoding, Codable
  • Model describing the navigation action for inapp

    See more

    Declaration

    Swift

    @objc
    public class MoEngageInAppNavigationAction : MoEngageInAppAction
  • InApp Display Rules

    See more

    Declaration

    Swift

    @objc
    public class MoEngageInAppRules : NSObject
  • MoEngageInAppSelfHandledData provides info about multiple selfhandled Inapps

    See more

    Declaration

    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 more

    Declaration

    Swift

    @objcMembers
    public final class MoEngageInAppConfigurationHandler : NSObject
  • Declaration

    Swift

    @objc
    public class MoEngageInAppStatsManager : NSObject