Skip to content
Tolinku
Tolinku
Sign In Start Free
Use Cases · · 5 min read

Push Notification Deep Links for E-Commerce

By Tolinku Staff
|
Tolinku fintech deep linking dashboard screenshot for use cases blog posts

Push notifications are the most immediate channel for reaching users on their devices. When combined with deep links, a push notification becomes a one-tap path to a specific product, sale, or cart in your app. The user doesn't navigate, doesn't search, doesn't browse. They tap and buy.

For general push notification strategy, see Push Notification Strategy for App Growth. For push notification deep link setup, see Universal Links in Push Notifications. For broader e-commerce deep linking patterns, see Deep Linking for E-Commerce Apps.

Push Notification Types for E-Commerce

Price Drop Alerts

When a product the user has viewed or wishlisted drops in price:

{
  "notification": {
    "title": "Price Drop: Running Shoes V2",
    "body": "Now $69.99 (was $89.99). 22% off."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/product/SKU-12345?alert=price_drop"
  }
}

Why it works: The user already showed interest. The notification provides new, actionable information (the lower price). The deep link removes all friction between interest and purchase.

Back-in-Stock Notifications

{
  "notification": {
    "title": "Back in Stock",
    "body": "The Blue Knit Sweater (size M) is available again."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/product/SKU-67890?variant=blue-m&restock=true"
  }
}

Include the variant in the deep link so the app opens to the exact SKU the user wanted.

Flash Sale Announcements

{
  "notification": {
    "title": "Flash Sale: 40% Off (4 Hours Only)",
    "body": "Shop our biggest sale of the season before it's gone."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/sale/flash-friday?promo=FLASH40"
  }
}

Order Updates

Transactional pushes with deep links to tracking:

{
  "notification": {
    "title": "Your order has shipped!",
    "body": "Order #ORD-12345 is on its way. Estimated delivery: Thursday."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/orders/ORD-12345/tracking"
  }
}

Personalized Recommendations

Based on browsing or purchase history:

{
  "notification": {
    "title": "Picked for you",
    "body": "New arrivals in your favorite categories."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/recommendations?user_segment=active_buyer"
  }
}

Abandoned Cart Recovery

Cart recovery is one of the highest-value push notification use cases. For a deeper look at abandoned cart strategies with deep links, see Abandoned Cart Deep Linking: Recover Lost Revenue.

{
  "notification": {
    "title": "Still thinking about it?",
    "body": "Your cart has 3 items. Complete your order and save 10%."
  },
  "data": {
    "deep_link": "https://go.yourapp.com/cart?promo=COMEBACK10"
  }
}

Implementation

iOS (APNs)

{
  "aps": {
    "alert": {
      "title": "Price Drop!",
      "body": "Running Shoes V2 - now $69.99"
    },
    "sound": "default",
    "badge": 1
  },
  "deep_link": "https://go.yourapp.com/product/SKU-12345?alert=price_drop"
}

In your AppDelegate or notification handler:

func userNotificationCenter(
  _ center: UNUserNotificationCenter,
  didReceive response: UNNotificationResponse,
  withCompletionHandler completionHandler: @escaping () -> Void
) {
  let userInfo = response.notification.request.content.userInfo
  if let deepLink = userInfo["deep_link"] as? String,
     let url = URL(string: deepLink) {
    // Handle the deep link
    DeepLinkRouter.shared.handle(url)
  }
  completionHandler()
}

Android (FCM)

{
  "message": {
    "notification": {
      "title": "Price Drop!",
      "body": "Running Shoes V2 - now $69.99"
    },
    "data": {
      "deep_link": "https://go.yourapp.com/product/SKU-12345?alert=price_drop"
    },
    "android": {
      "notification": {
        "click_action": "OPEN_DEEP_LINK"
      }
    }
  }
}

In your Activity or FirebaseMessagingService:

override fun onMessageReceived(remoteMessage: RemoteMessage) {
    val deepLink = remoteMessage.data["deep_link"]
    // Store deep link for when user taps notification
}

// In your notification tap handler
fun handleNotificationTap(deepLink: String?) {
    deepLink?.let {
        val uri = Uri.parse(it)
        DeepLinkRouter.handle(uri)
    }
}

React Native

import messaging from '@react-native-firebase/messaging';

// Handle notification tap when app is in background/quit
messaging().onNotificationOpenedApp((remoteMessage) => {
  const deepLink = remoteMessage.data?.deep_link;
  if (deepLink) {
    handleDeepLink(deepLink);
  }
});

// Check for notification that launched the app
messaging().getInitialNotification().then((remoteMessage) => {
  if (remoteMessage?.data?.deep_link) {
    handleDeepLink(remoteMessage.data.deep_link);
  }
});

Timing Optimization

Best Send Times for E-Commerce

Notification Type Optimal Timing Reasoning
Flash sale 10am-12pm or 7pm-9pm Peak shopping hours
Price drop Within 1 hour of price change Urgency while interest is fresh
Back in stock Immediately Limited inventory creates urgency
Abandoned cart 30 min and 24 hours after Balance between reminder and annoyance
Order updates Immediately (transactional) Users expect real-time updates
Recommendations Weekend mornings Leisure browsing time

Frequency Caps

Don't overdo it:

  • Maximum 1-2 promotional pushes per day
  • Maximum 5-7 per week
  • Transactional pushes (order updates) are exempt from frequency caps
  • Let users set their own notification preferences in the app

Personalized Send Times

Some push notification services support per-user optimal send times based on when each user is most likely to engage. This increases open rates by 15-30%.

Targeting Strategies

Behavioral Triggers

User Action Push + Deep Link
Viewed product 3+ times "Still interested in [product]?" → Product page
Added to wishlist Price drop or back-in-stock → Product page
Abandoned cart "Complete your order" → Cart
Browsed category "New arrivals in [category]" → Category page
Made a purchase "You might also like…" → Recommendations
Haven't opened app in 7 days "We miss you! Here's 15% off" → Sale page

Cohort-Based Campaigns

  • New users (< 7 days): Welcome offer with deep link to featured products
  • Active buyers: Early access to sales with deep link to exclusive sale page
  • Lapsed users: Win-back offer with deep link to personalized recommendations
  • High-value customers: VIP access with deep link to premium or exclusive products

Measuring Performance

Metrics

Metric Formula E-Commerce Benchmark
Delivery rate Delivered / Sent 95%+
Open rate Opens / Delivered 5-15%
Click-through rate Deep link opens / Opens 15-30%
Conversion rate Purchases / Deep link opens 3-10%
Revenue per push Total revenue / Pushes sent Varies
Unsubscribe rate Opt-outs / Delivered < 0.5%

Attribution

Tag each push notification deep link with campaign identifiers:

https://go.yourapp.com/product/SKU-12345?utm_source=push&utm_campaign=price_drop&utm_content=running_shoes

This connects the purchase to the specific notification, product, and campaign.

A/B Testing

Test variations of:

  • Title and body copy: Which message drives more opens?
  • Deep link destination: Product page vs. cart vs. sale page
  • Timing: Morning vs. evening
  • Incentive: With promo code vs. without
  • Rich media: With image vs. text-only

For deep linking features, see Tolinku deep linking. For e-commerce use cases, see the e-commerce documentation.

Get deep linking tips in your inbox

One email per week. No spam.

Ready to add deep linking to your app?

Set up Universal Links, App Links, deferred deep linking, and analytics in minutes. Free to start.