MoEngageInAppCampaignsData
@objcMembers
public class MoEngageInAppCampaignsData : NSObject, NSCoding, MoEngageDataModel
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.
-
The duration for flushing campaign data, set to 10 microseconds for optimal performance.
Declaration
Swift
public static var flushDuration: DispatchTimeInterval { get }
-
Array of general in-app campaigns that are displayed based on standard rules.
Declaration
Swift
public var generalInApps: [MoEngageInAppCampaignMeta] -
Array of in-app campaigns that are triggered by specific events.
Declaration
Swift
public var triggerInApps: [MoEngageInAppCampaignMeta] -
Array of in-app campaigns that are handled by the app itself rather than the SDK.
Declaration
Swift
public var selfHandledInApps: [MoEngageInAppCampaignMeta] -
Array of campaigns that are triggered at the start of a new session.
Declaration
Swift
public var sessionTriggeredCampaigns: [MoEngageInAppCampaignMeta] -
Array of in-app campaign state data for tracking display and interaction history.
Declaration
Swift
public var inAppStateData: [MoEngageInAppState] -
Global delay in seconds applied to all in-app campaigns. Defaults to 0 (no global delay).
Declaration
Swift
public var globalDelay: Double -
Synchronization delay in seconds for syncing campaign data with the server. Defaults to 900 seconds (15 minutes).
Declaration
Swift
public var syncDelay: Double -
Timestamp when the in-app campaigns were last updated from the server.
Declaration
Swift
public var inAppLastUpdatedTime: Date -
Timestamp when an in-app campaign was last shown to the user.
Declaration
Swift
public var inAppLastShownTime: Date -
Dictionary mapping screen names to arrays of non-intrusive in-app campaigns. These campaigns are displayed without blocking user interaction.
Declaration
Swift
public var nonIntrusiveInApps: [String : [MoEngageInAppCampaignMeta]] -
Optional test in-app campaign for development and testing purposes.
Declaration
Swift
public var testInApp: MoEngageInAppCampaignMeta? -
Default initializer for the campaigns data container.
Declaration
Swift
public override init()
-
Initializes the campaigns data from an NSCoder for unarchiving.
Declaration
Swift
public required init?(coder: NSCoder)Parameters
coderThe coder to use for unarchiving.
Return Value
An initialized campaigns data instance.
-
Encodes the campaigns data using NSCoder for archiving.
Declaration
Swift
public func encode(with coder: NSCoder)Parameters
coderThe coder to use for archiving.
-
Encodes the campaigns data to an encoder.
Throws
Encoding errors if the data cannot be encoded.Declaration
Swift
public func encode(to encoder: any Encoder) throwsParameters
encoderThe encoder to write data to.
-
Initializes the campaigns data from a decoder.
Throws
Decoding errors if the data is malformed.Declaration
Swift
public required init(from decoder: any Decoder) throwsParameters
decoderThe decoder to read data from.