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 }

Properties

  • 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()

NSCoding

  • Initializes the campaigns data from an NSCoder for unarchiving.

    Declaration

    Swift

    public required init?(coder: NSCoder)

    Parameters

    coder

    The 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

    coder

    The coder to use for archiving.

Codable

  • 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) throws

    Parameters

    encoder

    The 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) throws

    Parameters

    decoder

    The decoder to read data from.