What rich push adds

A standard push is a title and a line of text. Rich push adds a media layer: a product image, a GIF, action buttons (buy, save, learn more), and on modern devices a carousel or a short video.

In e-commerce the difference is decisive: a price dropped notification and the same notification carrying a photograph of the specific product the person looked at yesterday are two different experiences.

Implementation

iOS, through a notification service extension

On iOS, rich push requires a notification service extension — a separate module in the app. When the device receives a push flagged mutable-content: 1, iOS runs the extension, which downloads the media from the URL in the payload and attaches it before display.

{
  "aps": {
    "alert": { "title": "Price drop", "body": "Nike Air Max sneakers" },
    "mutable-content": 1
  },
  "image_url": "https://cdn.example.com/products/nike-air-max.jpg"
}

Without the extension, mutable-content is ignored and the notification appears without the image.

Android, natively through FCM

Android supports rich push natively: the image is passed in the image field of the notification payload. No extension is needed.

The components

Element iOS Android Use in e-commerce
Product image Yes (via extension) Yes A viewed or recommended product
Action buttons Yes (up to 4) Yes (up to 3) Buy, save, dismiss
GIF animation No Yes Dynamic banners, announcements
Video Yes (via extension) Yes Product demonstration
Carousel Not natively Custom A set of similar products

Personalization is the point

The scenarios where rich push earns its cost:

  • A price drop on a viewed product — the image of that specific item from the person’s history
  • Cart recovery — a photo of the item in the cart plus a complete the order button
  • A recommendation after the last purchase — complete the look with an accessory image
  • A personal promotion — a banner with the person’s name and an individual offer

For those, the payload is generated dynamically on the server per user rather than taken from one template.

Common mistakes

  • Ignoring the notification service extension. Sending an image URL with no extension on iOS delivers a notification with no picture, and the error only surfaces in testing.
  • Heavy images. iOS gives the extension a limited window to fetch media. If the file is large or the network is slow, it times out and no image appears. Keep JPEGs under about 500 KB.
  • One image for everyone. Without personalization, rich push loses its main advantage and becomes an expensive banner.