On iOS, Firebase may intercept the content of push notifications sent from Batch. As a result, Batch SDK may no longer able to:

  1. Detect push opens, resulting in broken campaigns statistics (see more here)
  2. Handle deeplinks. Batch SDK never receives the deeplink and cannot pass it to the app to direct your users to the right page.
  3. Display Mobile Landings. The information Batch SDK needs to display the In-App landing page are located in the payload of the notification intercepted by Firebase.

Detecting the issue

If you are facing one of these issues, open your app and take a look at the logs. Batch SDK will print an alert:

Fixing the issue

Here are the two steps you need to take to fix the issue:

  1. Switch to a manual integration, as described here: Manual Integration
  2. Then, make sure you intercept the payload of Batch notifications as described here: Intercepting Notifications

Here is how you can test your integration:

  1. You should no longer see the alert in the logs of your app
  2. Send a test push notification to your device and open it (see more here). You should see the following line: "Push - App was opened from a Batch push".
  3. Then, try sending a test notification to your device with a deeplink. Go to the dashboard → Push → Click "New Campaign" → Head to the message edition part, edit the text of the notification, add a deeplink to the campaign in the "advanced" part → Click "Send a test", after selecting your device.
  4. Send a preview of an In-App message to your device. Go to the dashboard → Settings → Themes → Select a theme or create one and click the "preview button". The In-App message should be displayed as soon as you click the notification.

Note: In case the In-App message is not displayed correctly or is dismissed by the splash screen of your app, make sure you implement the "do not disturb" mode (see more here). This will allow you to pause In-App messages until the app can display them correctly.

Did this answer your question?