Push notification icons are small images that accompany a push notification, helping with brand recognition, contextual clarity, and aesthetic appeal. They are critical for user engagement and enhancing the notification’s effectiveness.


Best practices for push notification icons

  • Use a transparent PNG for better rendering on all devices.
  • Ensure the icon is simple and recognizable at smaller sizes.
  • Follow platform-specific guidelines for size and color scheme (e.g., white icons on transparent backgrounds for Android status bars).
  • Avoid text in the icon, as it may become illegible at smaller sizes.
  • Including a well-designed push notification icon can significantly enhance the effectiveness and appeal of your notifications.

Web notification icons

Recommended size is 256x256 pixels. Filetypes PNG, JPG, and GIF (not animated) are supported.

Upload your icon or use a URL to an image in in your Dashboard Web Settings.


iOS notifications icons

iOS notifications use the same image as your app icon and cannot be changed without changing your app icon.

iOS also support Communication Notifications that allow you to change the icon to the user’s profile image.


Android notification icons

Android (including Amazon and Huawei) provides several options for setting up icons which this guide details in full.

Android also supports Conversation Notifications that allow you to change the icon to the user’s profile image.

Android supports both Small and Large Notification Icons.

Small notification icons

The small icon is displayed on the top left of the notification. By default OneSignal will show a bell icon, however we recommend you customize this so subscribers recognize it’s a notification from your app.

Most Android devices only support alpha channel for the icon. It will display monochrome in the status bar, but an accent color can be applied to the left side of the notification itself.

Large notification icons

The large notification icon shows on the right side of the notification. If you do not set a large icon, the small icon will be used instead. OneSignal will auto scale large notification icons for you to prevent the icon from being cropped. The recommended size of the large icon is 256x256 pixels.


How to add Android default icons

We strongly recommend adding default icons to every Android and Amazon app.

1

Generate icons

You must add each image with listed size and alpha transparency.

For help generating images with alpha transparency, see this clipart link for examples in the Android Asset Studio.

Recommended

To quickly and easily generate small icons with the correct settings, we recommend using the Android Asset Studio. Use ic_stat_onesignal_default as the name.

Default icon name, density, size

Required: Each name and pixel size must be present in the app.

NameDensity (dp)Size (px)
ic_stat_onesignal_defaultMDPI24x24
ic_stat_onesignal_defaultHDPI36x36
ic_stat_onesignal_defaultXHDPI48x48
ic_stat_onesignal_defaultXXHDPI72x72
ic_stat_onesignal_defaultXXXHDPI96x96
ic_onesignal_large_icon_default.pngXXXHDPI256x256
2

Create project paths

Make sure the following paths exist; create any folders you are missing.

Required: Each image must be present in the following paths:

  • res/drawable-mdpi/ (24x24)
  • res/drawable-hdpi/ (36x36)
  • res/drawable-xhdpi/ (48x48)
  • res/drawable-xxhdpi/ (72x72)
  • res/drawable-xxxhdpi/ (96x96)
  • res/drawable-xxxhdpi/ (256x256) (Large Icon)

With versions of Cordova before 7.0, you will need to use <project-root>/platforms/android/res/drawable-{size}/ instead of the path shown above when adding the icon resource to config.xml

If you see the default OneSignal bell icon, you did not add all icon sizes. Please add all icon sizes and correct paths.

If you see a solid square, you set the image to the correct path, but the image does not have alpha transparency. For more help, try using images from this Android Asset Studio clipart.

Your project should look similar to this depending on your SDK:

You should be all set with your new default icons.


Non-default icons


Small icon accent color

You can change the color shown around the small icon of the notification.

Set Small Icon accent color

To set a default color, add the following line to your res/values/strings.xml file in your project.

If you want a different color for dark mode, add the key to your res/values-night/strings.xml as well.

Use the HEX value. Use Android Asset Studio Color scheme for assistance.

<resources>
    <string name="onesignal_notification_accent_color">FF00FF00</string>
</resources>

To set the color on per notification bases, set android_accent_color on our Create notification API call or enter a value in the Accent color field under Messages > New Push > Platform Settings > Google Android Options.

If you’ve very recently added an icon resource to your app, you may want to wait a few days before sending notifications using the icon. This is because it can take many days or even weeks for the majority of your users to update their apps to the latest version which contain your new icons.

Custom non-alpha channel small icon images

Some device manufactures display the image as-is (basically ignoring the alpha channel rule). You can setup a custom notification layout based on Android’s documentation if you wish to use non-alpha channel images across all devices.

We highly recommend following the alpha rule as the icons may not look consistent on all devices. Google designed it this way — the icon is too small to see any meaningful detail, so enforcing a single color helps enforce an easier to recognize icon at a glance.