MoEngageInAppController

extension MoEngageInAppController: MoEngageTestInAppProtocol

Segment Re-Evaluation Methods

  • Check if segment re-evaluation meta sync should be performed based on 3-minute interval

    Declaration

    Swift

    func shouldPerformSegmentReevalMetaSync() -> Bool

    Return Value

    true if sync should be performed (first sync or > 3 minutes since last sync), false otherwise

  • Handle segment re-evaluation failure when backend returns 412 error with E002 code This method is called from Objective-C which has already validated the 412/E002 error

    Declaration

    Swift

    func handleSegmentReevalFailure(
        campaignMeta: MoEngageInAppCampaignMeta,
        responseData: [AnyHashable: Any]?
    )

    Parameters

    campaignMeta

    The campaign metadata that failed segment re-evaluation

    responseData

    The parsed error response dictionary from the server

Nudge UI Logic

  • Calculate the frame for a HTML nudge based on its payload and position

    Declaration

    Swift

    @objc
    public static func calculateNudgeFrame(_ payload: MoEngageInAppViewPayload) -> CGRect

    Parameters

    payload

    The InApp view payload containing style and position information

    Return Value

    The calculated CGRect for the nudge

Session Management

  • Sync session and clear counters if session changed (called from Objective-C)

    Declaration

    Swift

    @objc
    public func syncAndClearSessionCountersIfNeeded()
  • Call this from application lifecycle events

    Declaration

    Swift

    @objc
    public func syncFCSessionOnAppForeground()
  • Call this from application lifecycle events Per technical doc: “On App background - Trigger sync if any data sync is pending”

    Declaration

    Swift

    @objc
    public func triggerFCsyncOnAppBackground()

FC Evaluation Methods

  • Check FC rules for a campaign (main entry point called from Objective-C)

    Declaration

    Swift

    @objc
    public func checkFCRulesForCampaign(_ campaign: MoEngageInAppCampaignMeta, isPrioratizingStage: Bool) -> Bool

    Parameters

    campaign

    The campaign to check

    isPrioratizingStage

    Whether this is in prioritizing stage

    Return Value

    True if FC rules allow the campaign, false otherwise

  • Check FC rules for a campaign with explicit trigger type (called from Objective-C)

    Declaration

    Swift

    @objc
    public func checkFCRulesForCampaign(_ campaign: MoEngageInAppCampaignMeta, triggerType: NSInteger, isPrioratizingStage: Bool) -> Bool

    Parameters

    campaign

    The campaign to check

    triggerType

    The explicit trigger type as NSInteger (for Objective-C compatibility)

    isPrioratizingStage

    Whether this is in prioritizing stage

    Return Value

    True if FC rules allow the campaign, false otherwise

  • Re-evaluate FC for impression tracking (called from Objective-C)

    Declaration

    Swift

    @objc
    public func reEvaluateFCForImpressionWithCampaign(_ campaign: MoEngageInAppCampaign) -> Bool

    Parameters

    campaign

    The campaign to re-evaluate

    Return Value

    True if FC rules still allow the campaign, false otherwise

FC Counter Management & Ingestion

  • Increment FC counters after campaign is shown (called from Objective-C)

    Declaration

    Swift

    @objc
    public func incrementFCCountersForCampaign(_ campaign: MoEngageInAppCampaign)
  • Processes frequency data from template payload and ingests it into FC state manager.

    Declaration

    Swift

    @objc
    public func processFrequencyDataFromPayload(_ payload: MoEngageInAppViewPayload)

    Parameters

    payload

    The view payload containing frequency data