Best practices for push notification icons
- Use PNG images with transparency whenever possible.
- Keep icons simple and recognizable at very small sizes.
- Avoid text or fine details that may become illegible.
- Follow platform-specific rules for size, color, and transparency.
- Test notifications on real devices across platforms and OS versions.
Web notification icons
Web push notifications display an icon provided at send time or defined as a default in your site settings.- Supported formats: PNG, JPG, GIF (non-animated)
- Icon must be square. Recommended size is
256x256pixels.
Different browsers (Chrome, Edge, Safari, Firefox) may crop or scale icons differently depending on device and OS. A square
256x256 icon is recommended to ensure consistent display across all browsers.Android web push badge icon
On Android devices, Web Push notifications may display a smaller badge icon defined by the Web App Manifestbadge property. The badge icon is used in limited UI contexts (such as the Android status bar) and may not appear on all Android devices.
While badge icons are not subject to the same strict alpha-only rules as Android app small notification icons, they are still rendered in system-controlled UI.
Best practices:
- Use a square PNG with a transparent background
- Keep the design simple and high-contrast
- Avoid text or fine detail
- Use monochrome or minimal color for best consistency
Unlike Android app small notification icons, Web Push badge icons may preserve color on some devices. However, full-color or complex icons may render inconsistently depending on Android version, browser, and device manufacturer.
iOS notification icons
iOS notifications always use your app icon.- The notification icon is automatically derived from your app’s icon asset
- You cannot change the notification icon per message
- Changing the icon requires updating your app icon and shipping a new app version
There is no APNs payload field that allows you to specify a custom notification icon on iOS.This behavior is enforced by iOS and applies to standard push notifications, Critical Alerts, and Live Activities.
Communication Notifications
On iOS 15 and newer, Apple supports Communication Notifications. When properly implemented, communication-style notifications (such as messaging or calling apps) may display a contact or sender image instead of the app icon in supported system views.Communication Notifications are limited to specific use cases and require explicit adoption of Apple’s communication notification APIs. They are not available for general-purpose notifications.
Android notification icons
Android (including Amazon and Huawei devices) supports Small and Large notification icons. Android also supports Conversation Notifications that allow you to change the icon to the user’s profile image.On Android 8.0+ (API 26+), notification appearance is heavily influenced by system UI, notification channels, and device manufacturer customizations.

Small notification icons
The small notification icon appears in the status bar and the top-left of the notification. If no custom small icon is provided, OneSignal displays a default bell icon. Android renders small notification icons using the icon’s alpha channel, not its color data. The system applies its own tint (or your configured accent color) when displaying the icon. Requirements and best practices:- Use a monochrome silhouette icon on a transparent background
- Design the icon so the shape is defined by transparency, not color
- Avoid gradients, shadows, or multi-color artwork
- Keep the design simple and recognizable at very small sizes
Small icon accent color
You can change the color shown around the small icon of the notification.
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.
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.
Custom non-alpha channel small icon images
Some device manufactures display the image as-is (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.Large notification icons
The large icon appears on the right side of the Android notification.- Recommended size: 256×256 pixels
- Format: PNG or JPG
- If not set, Android may reuse the small icon
How to add Android default icons
We strongly recommend configuring default notification icons for every Android-based app (Google Play, Amazon, Huawei). Missing or incorrectly configured icons are the most common cause of broken notification rendering. Android supports two default icons:- Small notification icon (required)
- Large notification icon (optional but recommended)
1
Generate the small notification icon
The small notification icon appears in the status bar and notification header.Requirements:Name the icon:
- Monochrome silhouette icon
- Transparent background (alpha channel required)
- No colors, gradients, or shadows
The fastest and safest way to generate compliant small icons is using Android Asset Studio – Notification Icons.
ic_stat_onesignal_default2
Create required small icon sizes
Required: You must include all density variants for the small icon. Missing any size can cause Android to fall back to a system default icon.
| Icon name | Density (dp) | Size (px) |
|---|---|---|
ic_stat_onesignal_default | MDPI | 24x24 |
ic_stat_onesignal_default | HDPI | 36x36 |
ic_stat_onesignal_default | XHDPI | 48x48 |
ic_stat_onesignal_default | XXHDPI | 72x72 |
ic_stat_onesignal_default | XXXHDPI | 96x96 |
3
Generate the large notification icon (optional)
Best practices:
- Square image
- PNG or JPG
- Transparent background recommended
- Recommended size: 256×256 px
- Color is allowed
- Alpha-only is not required
- Only one size is needed
ic_onesignal_large_icon_default.png4
Place icons in the correct project paths
Each icon must be placed in the correct resource directory for your framework. Make sure the following paths exist; create any folders you are missing.Required: Each image must be present in the following paths:
- Android Native
- Unity
- Cordova/Ionic
- React Native
- .NET Maui
- Flutter
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)

Your Android app is now correctly configured with default notification icons.
Send notifications with non-default icons
When sending push notifications from the OneSignal dashboard or REST API, you can override the default icons with custom icons for Android, Amazon, Huawei, and Web Push notifications. You cannot override the icon for iOS notifications.REST API parameters
Android, Amazon, and Huawei REST API parameters:Amazon:
adm_small_icon Huawei: huawei_small_iconFor the small icon, the image must exist within the same project path as the default small icon. It cannot use a remote URL. See How to add Android default icons for details on where to add your custom icons.Set the icon name without the file extension in the REST API parameters.Example: "small_icon": "my_custom_icon_name_without_extension"Amazon:
adm_large_icon Huawei: huawei_large_iconFor the large icon, the image can exist within the same project path as the default large icon or as a remote URL. See How to add Android default icons for details on where to add your custom icons.Set the icon name without the file extension in the REST API parameters.Example: "large_icon": "my_custom_icon_name_without_extension"Firefox:
firefox_iconThe URL to the image resource. Must be the direct URL to the image resource.Example: "chrome_web_icon": "https://example.com/my_custom_icon.png"The URL to the image resource. Must be the direct URL to the image resource.Example:
"chrome_web_badge": "https://example.com/my_custom_icon.png"Dashboard
In the OneSignal dashboard, using the Messages > Push > New Push form or Templates, navigate to the platform-specific options. For Android, Amazon, and Huawei, if the file exists within the same project path as the default icon, set the icon names without the file extension. With Large Notification Icons, you can also supply a direct URL where the icon will be displayed from.