In-app messages allow you to engage with your users using templated creatives, while they are active in your mobile app. In-app messages are effective for
- content that is relevant in the context of what the user user is doing in your app right now,
- content that isn’t time-sensitive enough to warrant a push notification, and
- communicating with users who have push messaging turned off.
When creating in-app campaigns on WebEngage dashboard, you decide the conditions under which the in-app message should display. You can trigger in-app messages to display when a particular WebEngage event is tagged.
Screens are mobile equivalent of web pages, which can have associated properties. WebEngage SDK allows you to tag whenever a user sees a screen in your container view controllers like UITabBarController or UINavigationController. These tags allow you to pinpoint screens in your app where you would later render in-app messages using WebEngage dashboard. A view controller can have multiple screens and vice versa is also possible. Note that screens are only usable for targeting in-app engagements.
All screen related APIs are part of WebEngage iOS SDK's
WEGAnalytics object. You can get an instance of
WEGAnalytics object as follows.
// Get an instance of `WEGAnalytics` object id weAnalytics = [WebEngage sharedInstance].analytics;
After WebEngage has been successfully initialized, you can tag screens by calling the APIs on WEGAnalytics object.
-(void) navigatingToScreenWithName:(NSString*) screenName;
navigatingToScreenWithName informs WebEngage SDK that the user has navigated to a new screen. Any previously set screen data is lost. We recommend that you only tag those views / view controllers as screens where you want to display in-app messages.
Every screen can be associated with some contextual data, which can be part of the targeting rule for in-app messages. Your app can update the data associated with a screen using the screen APIs described below.
-(void) updateCurrentScreenData:(NSDictionary*) screenData;
These APIs can be called any number of times after calling
You can set the screen name and data in a single API call as shown below.
-(void) navigatingToScreenWithName:(NSString*) screenName andData: (NSDictionary*) screenData;