Android notification channels

Let Android users mute a single channel instead of your whole app

Pushwoosh routes every Android push into a channel your users control, from order updates to promotions to breaking news. Set importance and sound per category, and a muted promo never means a blocked app.

An Android phone shown front-on, its notification shade holding three separate channel categories: a prominent heads-up Order updates alert, a quiet dimmed Promotions notification and a Breaking news alert with its own sound icon

Trusted by 80,000+ companies to scale their engagement

The format, in full

Every Android notification belongs to a channel, a user-controlled category such as “Promotions”, “Order updates” or “Breaking news”. The channel is what lets someone mute one type of message without blocking the app that sends it.

Named channel, created server-side

Add pw_channel to Android root params in the Control Panel, or to android_root_params in /createMessage. The first push naming a new channel creates it on the device, with no app release needed.

Default channel, out of the box

The SDK creates a default channel on every Android 8+ device automatically, even when pw_channel is left empty, so a notification always has somewhere valid to land.

Importance level

The Importance level field (-2 to 2) sets how the channel behaves on arrival, from silent to a full heads-up banner. It is read once, at the moment the channel is created.

Custom sound per channel

Pair pw_channel with android_sound, a file placed in res/raw, and every push into that channel plays its own sound instead of the system default.

What you control

What you sendWhat it doesWhere it lives
A channel nameCreates the channel on first send, or reuses the one already on the devicepw_channel in Android root params, or the API payload
An Importance level, -2 to 2Sets heads-up behavior, fixed the moment the channel is createdThe Importance level field on the push, or the same value via the API
android_sound + pw_channelGives that one channel its own alert soundA file in res/raw, referenced by name without an extension
No pw_channel sentThe SDK creates and uses a default channel automaticallyNo setup, out of the box on Android 8+
What you send
1 / 4
A channel name
What it does
Creates the channel on first send, or reuses the one already on the device
Where it lives
pw_channel in Android root params, or the API payload
What you send
2 / 4
An Importance level, -2 to 2
What it does
Sets heads-up behavior, fixed the moment the channel is created
Where it lives
The Importance level field on the push, or the same value via the API
What you send
3 / 4
android_sound + pw_channel
What it does
Gives that one channel its own alert sound
Where it lives
A file in res/raw, referenced by name without an extension
What you send
4 / 4
No pw_channel sent
What it does
The SDK creates and uses a default channel automatically
Where it lives
No setup, out of the box on Android 8+

Where you set it

One field in the composer

Type a channel name into Android root params in the Send-Push form or a preset. A new category needs no release and no developer.

One key in the API

android_root_params.pw_channel in /createMessage, alongside android_sound for a channel-specific alert sound.

The same logic on every Android transport

The identical pw_channel payload works over FCM, and over Huawei HMS and Amazon ADM through Alt-store push.

The job it does, inside a journey

The same Journey runs two channels

The channel is an attribute of the push you are already sending, so it needs no separate integration to wire up. A transactional branch names one channel, a promotional branch names another, and both run from the same audience and the same Customer Journey as the rest of your mobile push.

The order alert rings while the sale stays quiet

An order-placed event fires the Journey. A silent push quietly prefetches the delivery estimate in the background, and the transactional branch names the “Order updates” channel with a high Importance level, so it posts as a heads-up alert.

The same Journey runs a separate branch into a “Promotions” channel at default importance. A user who mutes Promotions keeps getting order alerts on the same phone: the two run as separate channels inside one app.

What to use it for

Channels pay off in proportion to how many genuinely different types of notification an app sends. One uniform stream gets almost nothing from them; a mix of loud promotions and quiet transactional alerts gets the most.

IndustryChannels worth separatingWhy it fits
Mobile gamesEvents & promotions vs guild & social vs rewards vs live-ops alertsHigh stream diversity on an Android-heavy install base
Creator & subscription appsNew content vs social interactions vs billing vs promotionsSubscribers get what they signed up for, and nothing else
E-commerce & retailPromotions vs order & delivery updates vs price-drop alertsThe classic promo-versus-transactional split
MarketplacesBuyer/seller messages vs order updates vs promotions vs listing alertsMulti-sided messaging is naturally multi-stream
Fintech & bankingFraud & transaction alerts vs statements vs reminders vs promotionsMust-deliver alerts sit next to fully optional promotions
Media, news & streamingBreaking news vs topic feeds vs new episodes vs promotionsThe textbook Android channel use case
Industry
1 / 6
Mobile games
Channels worth separating
Events & promotions vs guild & social vs rewards vs live-ops alerts
Why it fits
High stream diversity on an Android-heavy install base
Industry
2 / 6
Creator & subscription apps
Channels worth separating
New content vs social interactions vs billing vs promotions
Why it fits
Subscribers get what they signed up for, and nothing else
Industry
3 / 6
E-commerce & retail
Channels worth separating
Promotions vs order & delivery updates vs price-drop alerts
Why it fits
The classic promo-versus-transactional split
Industry
4 / 6
Marketplaces
Channels worth separating
Buyer/seller messages vs order updates vs promotions vs listing alerts
Why it fits
Multi-sided messaging is naturally multi-stream
Industry
5 / 6
Fintech & banking
Channels worth separating
Fraud & transaction alerts vs statements vs reminders vs promotions
Why it fits
Must-deliver alerts sit next to fully optional promotions
Industry
6 / 6
Media, news & streaming
Channels worth separating
Breaking news vs topic feeds vs new episodes vs promotions
Why it fits
The textbook Android channel use case

When it isn’t worth the setup

  • Reaching someone new: the channel only sorts a message the push already sent.
  • Anything on iOS: channels do nothing there, and Time-Sensitive or Critical levels handle the same job.
  • Making a heads-up alert retroactive: importance is fixed the moment a channel is created, and a new behavior needs a new channel name.
  • A long list of near-duplicate channels: it reads as clutter and trains users to mute the whole group.
  • An app with one real stream of notifications: there is nothing to separate, so a channel adds a setting nobody needs.
The channel decides where it lands. The words decide if it gets read

50 push notifications worth copying, with the copy and the creative behind each one.

Get the examples

Platform & technical coverage

Notification channels are an Android-only OS primitive, introduced in Android 8.0 Oreo. iOS has no channel to register; the comparable job runs through Time-Sensitive and Critical interruption levels instead, and the web has no equivalent either. The last column says where Pushwoosh’s mechanic ends and the operating system’s rules begin.

CapabilityiOSAndroidWebDelivered by
Notification channelsAndroid 8.0 Oreo (API 26) and laterNative OS primitive, Pushwoosh SDK 5.4.0+
Default channelYes, created automaticallyThe Pushwoosh SDK, on every Android 8+ device
Named channel via pw_channelYes, created on first send, no app releaseAndroid root params field, or /createMessage
Custom sound per channelYespw_channel + android_sound, a file in res/raw
Same mechanic on Huawei & Amazon devicesYes, via HMS and ADMAlt-store push
Cross-platform SDK wrappersCordova/Capacitor, React Native, Unity, FlutterRouted through the native Android bridge
Runtime permission required firstAndroid 13+, POST_NOTIFICATIONSThe OS, before any channel can show
The comparable urgency controlTime-Sensitive / Critical levelsChannel importance, set hereA separate feature per platform
Capability
1 / 8
Notification channels
iOS
Android
Android 8.0 Oreo (API 26) and later
Web
Delivered by
Native OS primitive, Pushwoosh SDK 5.4.0+
Capability
2 / 8
Default channel
iOS
Android
Yes, created automatically
Web
Delivered by
The Pushwoosh SDK, on every Android 8+ device
Capability
3 / 8
Named channel via pw_channel
iOS
Android
Yes, created on first send, no app release
Web
Delivered by
Android root params field, or /createMessage
Capability
4 / 8
Custom sound per channel
iOS
Android
Yes
Web
Delivered by
pw_channel + android_sound, a file in res/raw
Capability
5 / 8
Same mechanic on Huawei & Amazon devices
iOS
Android
Yes, via HMS and ADM
Web
Delivered by
Capability
6 / 8
Cross-platform SDK wrappers
iOS
Android
Cordova/Capacitor, React Native, Unity, Flutter
Web
Delivered by
Routed through the native Android bridge
Capability
7 / 8
Runtime permission required first
iOS
Android
Android 13+, POST_NOTIFICATIONS
Web
Delivered by
The OS, before any channel can show
Capability
8 / 8
The comparable urgency control
Android
Channel importance, set here
Web
Delivered by
A separate feature per platform

Security & hosting

Pushwoosh runs on its own hardware in the US and Germany, under GDPR and BDSG.

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type I CertifiedOWASP Compliant

How it works

  1. Compose (no-code)

    Type a channel name into Android root params in the Send-Push form, or send android_root_params.pw_channel through the Messages API.

  2. Set it up once

    The first push naming a new channel creates it on the device with the importance, sound and vibration from that message. Plan a taxonomy of 3 to 5 channels up front, since changing the behavior later needs a new channel name.

  3. Orchestrate (no-code)

    Route each channel from the matching branch of the same Customer Journey, using the same audience and profile as the rest of your messaging.

Limits worth knowing

A categorization primitive with strict Android rules. These are its edges.

  • Android only. Channels do nothing on iOS, and Time-Sensitive and Critical levels handle the same job there.
  • Importance, sound and vibration lock in the moment a channel is created. A later push into the same channel cannot change them, so a new behavior needs a new channel name.
  • The user has the final say. Anyone can mute or fully block a channel in system settings, and that decision cannot be reversed from the server.
  • Android 13 and later require the POST_NOTIFICATIONS runtime permission before any channel can show at all.
  • Android 14 surfaces a channel’s importance to the user, and Android 15 auto-cools rapid repeat notifications, so a miscategorized channel gets muted fast.
  • The channel name is a free-text key. A typo creates a new, unintended channel instead of reusing the one you meant.
  • Server-side visibility into channel usage is a floor rather than a coverage metric. The default channel leaves no marker in the payload, so we don’t report what share of senders use named channels.

Explore related products

Mobile Push Notifications

Mobile push notifications by Pushwoosh — every-device reach, rich content, precise targeting, cross-channel Journeys and 99% uptime. Turn notifications into loyal, paying users.

Alt-store push — Huawei HMS & Amazon ADM

Reach every Android device, Google Play or not. Pushwoosh delivers your push to Huawei, HarmonyOS, and Amazon Fire devices across FCM, HMS, and ADM — managed from one place, with fallback to email, SMS, and WhatsApp.

Interactive push

Add labelled action buttons to the push you already send, so users accept, claim, approve or track in one tap. Build the iOS button sets no-code in the Pushwoosh Control Panel and send them from the same campaign and Journey.

Time-Sensitive & Critical push

Set the iOS interruption level on the push you already send, so a fraud alert, a courier at the door or a gate change breaks through Focus and the Scheduled Summary. Toggle Time-Sensitive or Critical no-code in the Pushwoosh Control Panel, from the same campaign and Journey.

Customer Journey Builder

Map out and streamline your campaigns with one visual tool. Communicate, engage, retain, convert, segment, and experiment using Pushwoosh Customer Journey Builder.

App icon badges

Put the unread count on your app icon and keep it honest. Set an exact number, bump it with +1, or clear it to 0 from the Pushwoosh Control Panel Badges field or the ios_badges API key, on the same campaign and Journey you already run.