MoEngageInAppDataManager

@objcMembers
public class MoEngageInAppDataManager : NSObject

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

Properties

Initialization

  • Initialize data manager with SDK instance

    Declaration

    Swift

    @objc(initWithSDKInstance:)
    public init(sdkInstance: MoEngageSDKInstance)

    Parameters

    sdkInstance

    The SDK instance for this data manager

Updating States Methods

Utils Methods

  • Persist InApps data to storage

    Declaration

    Swift

    public func updateInAppsInPersistentStorage()
  • Get global delay for InApps

    Declaration

    Swift

    public func getInAppsGlobalDelay() -> Double

    Return Value

    Global delay in seconds

  • Get list of campaign IDs with state data

    Declaration

    Swift

    public func getActiveStateCampaignIDs() -> [String]

    Return Value

    Array of campaign IDs

  • Reset InApps data on user logout

    Declaration

    Swift

    public func resetInAppsData(resettingState resetState: Bool)

    Parameters

    resetState

    If true, clears all data including state. If false, preserves inAppStateData for device-level tracking.

  • Reset all InApps data including stats

    Declaration

    Swift

    public func resetAllData()
  • Fetch test InApp campaign if exists

    Declaration

    Swift

    public func fetchTestInApp() -> MoEngageInAppCampaignMeta?

    Return Value

    Test campaign or nil

Segment Re-evaluation Campaign Removal

  • Remove campaign from all active lists based on campaign metadata checks campaign template type and triggers to determine which lists to clean

    Declaration

    Swift

    @objc
    public func removeCampaign(campaignMeta: MoEngageInAppCampaignMeta?)

    Parameters

    campaignMeta

    Campaign metadata

Printing Info

  • Print debug information about current InApps data

    Declaration

    Swift

    public func printInAppsDataInfo()

Saving InApps Data

  • Save in-app campaigns from API response

    Declaration

    Swift

    public func saveInAppCampaigns(_ campaignInfo: [String : Any]) -> Bool

    Parameters

    campaignInfo

    Dictionary containing campaign response data

    Return Value

    True if save was successful, false otherwise

  • Sort campaigns by priority (descending) and last updated time (descending)

    Declaration

    Swift

    public func sortCampaignByPriorityAndLastUpdated(_ campaignsArray: [MoEngageInAppCampaignMeta]) -> [MoEngageInAppCampaignMeta]

    Parameters

    campaignsArray

    Array to sort

    Return Value

    Sorted array

Trigger InApp Campaigns

  • Get trigger campaigns for given campaign IDs

    Declaration

    Swift

    public func getTriggerCampaignsForIds(_ campaignIds: [String]) -> [MoEngageInAppCampaignMeta]

    Parameters

    campaignIds

    Array of campaign IDs to match

    Return Value

    Array of matching trigger campaigns