Real-Time Triggers

Real-time device triggers are push notifications that are triggered instantly in the device whenever a trigger event(configured while creating the campaign) is tracked with the SDK trackEvent: method. In this case, the notifications are triggered in the device which enables you to post notifications even in offline scenarios.



Real-Time Triggers is available from SDK version 4.0.0

SDK Installation

From MoEngage-iOS-SDK version 8.2.0 , MoEngageRealTimeTrigger module is separated from the SDK to a separate module as MoEngageRealTimeTrigger and hence has to be added separately.


Install using CocoaPod

Integrate the RealTimeTrigger framework by adding the dependency in the podfile as show below.

pod 'MoEngageRealTimeTrigger','~>1.2.0'

Now run pod install to install the framework

Install using Swift Package Manager

MoEngageRealTimeTrigger is supported through SPM from SDK version 1.2.0. To integrate use the following github url link and set the branch as master or version as 1.2.0 and above

Manual Syncing

MoEngage SDK syncs all the real-time trigger campaigns whenever the app is launched OR comes to the foreground. But in case its needed to manually sync the device triggers for any of the background tasks, use syncRealTimeTriggersWithCompletionBlock: as shown below:

Swift Objective-C
MORealTimeTrigger.sharedInstance.syncRealTimeTriggers { (rtSyncCompleted) in
             print("Real-Time trigger sync successfull")

Additional Callbacks for version below iOS 10



For iOS 10 and above MoEngage SDK is using UserNotification framework for triggering notification and rely's on the callbacks from UNUserNotificationCenter to obtain and process the notification payload. Therefore make sure the SDK methods are called in UNUserNotificationCenter delegate callbacks as mentioned in this doc.

For iOS versions below iOS 10 call didReceieveNotificationinApplication: withInfo:openDeeplinkUrlAutomatically: method of MoEngage SDK as shown below.

Swift Objective-C
func application(_ application: UIApplication, didReceive notification: UILocalNotification) {
        if let userInfo = notification.userInfo  {
            MoEngage.sharedInstance().didReceieveNotificationinApplication(application, withInfo: userInfo, openDeeplinkUrlAutomatically: true)
Was this article helpful?
0 out of 0 found this helpful