Silent Push

Silent push notifications allow background updates without interrupting the user. They are automatically handled within the SDK but can be customized for specific use cases.

Android SDK

A Dengage silent push uses the same payload as a normal push. The only difference is messageSource.

messageSource TypeNotification UI
DENGAGENormal push — Yes
DENGAGE_SILENTSilent push — No

showDengageNotification — what it actually does

DengageUtils.showDengageNotification(remoteMessage.data) is a Dengage SDK method. Despite its name, it does not display a notification by itself. It only checks whether messageSource is "DENGAGE" and, if so, routes the payload into Dengage.onMessageReceived(), where the SDK builds and posts the tray notification from the data fields (title, message, etc.).

Per our Silent Push documentation, a Dengage silent push uses the same payload structure as a normal push. The only difference is that messageSource is DENGAGE_SILENT. Such pushes are not intended to show notification UI. In the default Android SDK flow, showDengageNotification returns false for DENGAGE_SILENT, so they do not enter the Dengage notification-display path unless the app manually routes them there.

Empty-looking notifications — not a Dengage issue

For DENGAGE_SILENT pushes, the Dengage SDK does not display any notification. If an empty-looking notification appears on the device, it was most likely displayed by:

  • Another push provider integrated in the app, or
  • Custom app code in the FCM service / notification handler that posts a notification independently of Dengage.

The Dengage SDK cannot be responsible for notifications it never processes.

Before investigating Dengage, verify:

  • Whether messageSource is actually DENGAGE_SILENT (Dengage skips these by default).
  • Whether any other provider or custom onMessageReceived logic is posting a notification for the same FCM message.
  • Whether the FCM payload contains a notification block that Android may auto-display when the app is in the background.

Recommendations

  • Verify messageSource on every incoming push.
  • Handle silent pushes as data-only — do not call the normal notification flow.
  • Confirm title and message are present for any Dengage push meant to be visible (messageSource = "DENGAGE").

How to identify a silent push

Read messageSource from the FCM data payload:

fun isSilentDengagePush(data: Map<String, String?>): Boolean =
    data["messageSource"] == "DENGAGE_SILENT"

fun isNormalDengagePush(data: Map<String, String?>): Boolean =
    data["messageSource"] == "DENGAGE"

SDK behavior

ConditionSDK action
messageSource == "DENGAGE"Shows notification
messageSource == "DENGAGE_SILENT"Skipped — no notification
Other / missingIgnored by SDK

Implementation

Route pushes in your FCM service by messageSource:

class MyFcmService : FcmMessagingService() {
    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        when (remoteMessage.data["messageSource"]) {
            "DENGAGE_SILENT" -> handleSilentPush(remoteMessage.data)
            "DENGAGE" ->
                super.onMessageReceived(remoteMessage)
            else -> { /* non-Dengage push */ }
        }
    }

    private fun handleSilentPush(data: Map<String, String?>) {
        // Sync data, refresh cache, etc. — no notification UI
    }
}

Testing checklist

  • Backend sends the correct messageSource (DENGAGE or DENGAGE_SILENT)
  • DENGAGE → notification visible
  • DENGAGE_SILENT → no notification UI from Dengage
  • title and message present for visible Dengage pushes
  • No other provider or custom code posting notifications for silent pushes

iOS

On iOS, silent push notifications are automatically handled by the operating system. No extra configuration is needed.


How to Access and Enable Silent Push

Step 1: Navigate to Application Settings

  1. Go to Settings > Integrations > Applications.

Step 2: Create or Edit an Application

  • To create a new application:
    1. Click the New button.
    2. Choose the application type (iOS, Huawei, or Android).
  • To edit an existing application:
    1. Select an existing application from the list and edit.

Step 3: Enable Silent Push

  1. Under the Push Notifications section, ensure that Push Notifications are enabled.
  2. Check the Uninstall Tracking option to enable Silent Push.
iOS Uninstall Tracking
Android Uninstall Tracking
Huawei Uninstall Tracking

Step 4: Save Changes

  • Click Save to apply the settings.

When Uninstall Tracking is enabled under Push Notification, a silent push is sent at night. Devices that have uninstalled the app are detected during the nightly calculation, and their statuses are updated accordingly.