Notifications Not Shown on Device

Common reasons why App Push Notifications are not showing on the device(s)

A "green" dot to the left of the Campaign Name under Campaign Reports means we have successfully sent the notification to the push servers (FCM & APNS). These push servers then distribute the notifications to your subscribers.

The following are reasons why notifications may show as "Delivered" on the iZooto dashboard, but are not visible on your device(s).

Network Issues

No Internet

Devices must be online to receive push notifications. If your device is turned off, in airplane mode, has unstable or has no internet connection, the push will not show until a proper connection is made. You can set the timeframe Google and Apple Servers will wait for a connection with the Time To Live (TTL) Parameter (the default is 1 day).

WiFi Connection

Check the network / WiFi you are connected with as it may have closed your connection to Apple or Google's servers. Try disabling and re-enabling your internet connection. Also try without WiFi, using Cellular data.

See Notifications Delayed troubleshooting guide for more details.

Firewall or VPN

If you are restricting traffic to or from the Internet, you need to configure it to allow connectivity with FCM in order for your Firebase Cloud Messaging client apps to receive messages. The ports to open are 5228, 5229, and 5230. FCM typically only uses 5228, but it sometimes uses 5229 and 5230. FCM does not provide specific IPs, so you should allow your firewall to accept outgoing connections to all IP addresses contained in the IP blocks listed in Google's ASN of 15169. From the "Firewall" note:

Not Targeted in the Push

Check the segment you sent the push to make sure it is set up correctly. This is under Segments. Sometimes your device(s) might not belong to the segment selected for the Push.

App Push Permissions Disabled - Device Not Subscribed

Android & iOS: In your Device Settings > Notifications > Your App, you can turn on and off push notifications.

Make sure permissions are enabled for your device.


Android Categories Disabled

Android Settings App > Notifications > Your App: You should see "Show Notifications" enabled and all categories underneath enabled. If you have a category disabled, you will not get notifications from that category.


Low Power, Energy Saving

Some devices have a specific battery optimization that will stop or decrease the rate of showing notifications.

Android: In Settings, search for:

  • Power Saving Mode or Energy Saving - If "Power Saving Mode" and/or "Limit apps and Home screen" is enabled, this will limit all background activity and might stop push notifications from being received.
  • Adaptive power saving mode - If enabled, the device will automatically turn on/off "Power Saving Mode" based on your usage patterns.
  • Battery Optimization or Background usage limits - Battery optimized apps will have background functions (like push notifications) restricted. Make sure your app is Not Optimized.

iOS: If the device has Low Power Mode enabled and has low power, it will reduce the rate at which notifications can be received. Check if enabled in Settings > Battery > Low Power Mode.


Do Not Disturb Mode

If Do Not Disturb is enabled, this prevents the notifications from "popping up" on the screen but still shows in the "Notification Center".

iOS: Disable within Settings > Do Not Disturb.

Android: Disable within Settings > Notifications > Do Not Disturb> or search for Do Not Disturb in Settings and disable.


Android App is Force Stopped

When an app is in a Force Stopped / Force Killed state most events including FCM Messages for push notifications will not be received. An app can be placed in this state in the following ways:

  • From Settings > Apps, "Force Stop" is pressed.
  • Long pressing the back button on some devices.
  • Using a 3rd party task killer like Greenify.
  • Swiping away your app while remote debugging it. (Not the same as viewing the logcat but launching your app as a remote debug process.)
  • Automatically on some devices due to custom Android tweaks done by manufacturers. This is a known issue affecting all push providers (not just iZooto).

Based on your device manufacturer, you can follow these steps to enable push for your device.

AsusCheck your app in the Auto-start Manager.
HuaweiStep 1: Settings > Advanced Settings or Power Saving > Battery Manager or Protected Apps > select the app to protect it.

Step 2: Settings > Apps or Notification Manager > Advanced or Notify for your app > Ignore Battery Optimizations, select the app and ignore it.

Step 3: Settings > Notification Panel & Status Bar > Notification Center, select the app, then activate "Allow Notifications" and also "Priority Display".

Full Instructions

Pre-EMUI 5.0 / Android 7 - Go to Settings > "Protected apps", check your app. Full Instructions
LeEco/LeTVStep 1: Settings > Permissions > Manage Auto Launch > Select the app to protect it.

Step 2: Settings > Battery > Power Saving Management > App Protection, select the app and ignore it.
LenovoSettings > Power Manager > Background App Management, select the app and ignore it.
OnePlusSettings > Battery > Battery Optimization > Top right 3-dot menu > Advanced Optimization, turn off.

Settings > Battery > Battery Optimization > Your App . Don't Optimize

Settings > Alert Slider to make sure it is set up the way you want.

Make sure that Gaming mode is off or go to Settings > Advanced > Gaming mode and toggle Block notifications

Look in Settings > Apps and check the Notification settings for problem apps.
More Details
OppoSettings > Security Settings > Data Saving and enable your app.
SamsungDisable battery usage optimizations

Settings > Device Management > Battery > Unmonitored apps > Add your app

Make sure notifications are turned on for your app

Settings > Apps > Your app > App Settings > Notifications > Set as Priority

Samsung devices with Android 8+ have a "Standby" mode where the app will not get any notifications, updates, or Intents until the app is opened again by the user. This defaults to 3 days, but can be increased to 7 days. More details in Samsung's Support/Troubleshooting Steps.
SonyTap on the battery icon. Go to Power Management > STAMINA mode > Apps active in standby > Add your app.
Xiaomi/RedmiMore details in Android Central Post

Settings > Installed Apps > Your App > Battery Saver > change option from "Battery Saver" to "No restrictions".
Settings > Manage Apps' battery usage > choose your app > select "No restrictions".

Provide authorization to your app to run at start by activating the AutoStart option in Settings > Installed Apps > Your App
Security (App) > Permissions > AutoStart > Enable your app
Settings > Permissions > AutoStart > Your App > toggle switch to turn on

Settings > App Notifications > Your App > toggle on "Priority"

Settings > Notifications & Status Bar > Turn on "Show Notification Icons" (if you want to see icons) > App notifications > Your App > Show notifications

Settings > Developer Options. Disable "memory optimization". To enable Developer Options, go to Settings > About. Tap on MIUI 8 times. Full Instructions
MIUI 10Settings > Battery & Performance > Choose Apps > Select the app that is not showing notifications > Select No restrictions

Settings > Permissions > AutoStart > Toggle slider next to the apps that are not getting push

Checking your app state

1. Run the following to check the current state of your app.
*Replace "" with your package name.

adb shell dumpsys package | grep stopped

If you see stopped = false, then everything is fine. If you see stopped = true, then your app was force killed in some way.

2. Another way is to send a few notifications and check for the following GCM logcat entry.

W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { pkg=com.izooto.example (has extras)

If you see this canceled intent above, then your app could not be started to process the notification.

Some device manufacturers will white list apps from going into the force closed state. For example, Gmail and WhatsApp.

Additional Debugging

FCM provides a REST API to query the last time a device was connected to FCM. See the following Google documentation on how to get this.