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.
-
Declaration
Swift
public var inAppsData: MoEngageInAppCampaignsData -
Declaration
Swift
public var sdkInstance: MoEngageSDKInstance
-
Initialize data manager with SDK instance
Declaration
Swift
@objc(initWithSDKInstance:) public init(sdkInstance: MoEngageSDKInstance)Parameters
sdkInstanceThe SDK instance for this data manager
-
Get state instance for campaign, creating if needed
Declaration
Swift
public func getStateInstanceForCampaign(_ campaign: MoEngageInAppCampaign) -> MoEngageInAppState?Parameters
campaignCampaign to get state for
Return Value
State instance or nil
-
Get state instance for campaign ID
Declaration
Swift
public func getStateInstanceForCampaignID(_ campaignID: String?) -> MoEngageInAppState?Parameters
campaignIDCampaign ID to get state for
Return Value
State instance or nil
-
Update impression count for campaign
Declaration
Swift
public func updateImpressionForCampaign(_ campaign: MoEngageInAppCampaign)Parameters
campaignCampaign to update Note: Epoch time (1970) is treated as invalid/unset expiry - equivalent to nil check in ObjC
-
Update primary clicked flag for campaign
Declaration
Swift
public func updatePrimaryClickedForCampaignID(_ campaignID: String?)Parameters
campaignIDCampaign ID to update
-
Persist InApps data to storage
Declaration
Swift
public func updateInAppsInPersistentStorage() -
Get global delay for InApps
Declaration
Swift
public func getInAppsGlobalDelay() -> DoubleReturn 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
resetStateIf 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
-
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
campaignMetaCampaign metadata
-
Print debug information about current InApps data
Declaration
Swift
public func printInAppsDataInfo()
-
Save in-app campaigns from API response
Declaration
Swift
public func saveInAppCampaigns(_ campaignInfo: [String : Any]) -> BoolParameters
campaignInfoDictionary 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
campaignsArrayArray to sort
Return Value
Sorted array
-
Get trigger campaigns for given campaign IDs
Declaration
Swift
public func getTriggerCampaignsForIds(_ campaignIds: [String]) -> [MoEngageInAppCampaignMeta]Parameters
campaignIdsArray of campaign IDs to match
Return Value
Array of matching trigger campaigns