In-App Messages
Prerequisites
Castled SDK allows you to show in-app messages to users who are currently engaging with your app. These messages are typically used to communicate important information, deliver targeted promotions, provide user guidance, or engage with users within the app.
Enabling In-App messages in SDK
- Set the flag
enableInApp
totrue
when initializing the SDK
- User Registration
Once the user registration is complete, the app should invoke the registerUser API in Castled SDK to register the user and the device token with the backend service.App developer to make sure the below API is called at the appropriate time in the sequence of events.
Triggering In-App SDK events
In-App messages are typically shown in response to events that happen within your app. You can decide the trigger
event for in-app display when creating the campaign. By default SDK tracks app_opened
and page_viewed
events. Note that these events
are not reported to our sever and is used only to determine if an in-app needs to be shown or not.
If you want to use a custom event as the trigger event, SDK provides a method to raise such an event based on a user action within your app.
- eventName : name of the custom event.
- params : event parameters as a key value pair
- showLog : a flag to enable showing the log of the event
For e.g. If your shopping app wants to display an in-app message when value of items in cart greater than a certain number, app would log a custom event as follows whenever user adds an item to cart.
SDK will then make sure of displaying the eligible in-app to user if there is one.
Skipping InApps in Activity
This is useful when you want to skip showing InApps when user is on specific screens within your app. For e.g. Splash screens, Checkout screen, etc.
You can add a list of view controllers you want to exclude from InApp notifications by adding a key in the plist CastledExcludedInAppViews
.
The recommended approach for iOS, especially if you are using custom root view controllers other than the default UINavigationController or UITabBarController, is to use the following Managing InApp Rendering methods.
Managing InApp Rendering
You can use the following methods to override the default InApp behaviour.
Pausing InApp
Any new InApps which are ready for display are not shown to users and added to a waiting queue. This can be used to not interrupt users when they are performing any critical activity within your app.
Resuming InApp
InApp display behaviour goes back to normal. If there are any InApps which are previously paused, they get displayed.
Stopping InApps
This method stops all InApp messages from displaying until a resumeInApp
is invoked. Unlike pauseInApp
,
stopInApp
completely stops evaluating the trigger condition for displaying InApp and all InApp that would have been displayed otherwise would be ignored.