Skip to main content
engage

App push

active
Audience: developerUpdated 2026-07-27

This how-to makes an app reachable on Engage's push channel and able to display what it receives. The shape is the same on every platform:

  1. Initialize Binoban's notification layer once, at app start.
  2. Hand Firebase's push token to the SDK, and again on every refresh.
  3. Forward incoming messages to the SDK, which displays them and reports delivery, clicks, and dismissals.

Because Binoban sends data-only messages, step 3 is not optional — nothing is displayed unless your handler forwards the message.

Before you start

Pick your platform

The three steps above are the same everywhere; the entry points are not. Follow the page for your platform:

  • App push on Android — runtime permission, the notification channel, and FirebaseMessagingService.
  • App push on iOS — the Background Modes capability, MessagingDelegate, and forwarding your UNUserNotificationCenterDelegate callbacks.
  • App push in React Native — manifest meta-data, the useBinoban() hooks, and iOS host forwarding.

How to tell Binoban's pushes apart from your own

This part is identical on every platform, so it is worth reading once here.

Every message Binoban sends carries source: "binoban" in its data payload. The backend sets it; you never set it yourself. It is present on every platform — Android, iOS, and web alike — and it is what keeps Binoban's push handling and your own from colliding.

Binoban's side is already handled: Notification.notify drops any payload whose source is not "binoban", so it is safe to call for every message you receive and your own pushes never reach it. What the SDK cannot do is tell your code which messages are yours. Since your FCM callback receives Binoban's messages too, branch on source so your own handling skips them — otherwise a Binoban push falls through into your handler and gets displayed twice, or routed as if it were one of yours.

Each platform page shows that branch in its "forward incoming messages" step. See Push events for the full payload key list.

What the SDK handles for you

Once the three steps are wired, none of the following needs code:

  • Displaying the notification — title, body, image, and up to 3 action buttons.
  • Reporting delivery, clicks (including which button), dismissals, and failures back to Engage.
  • Opening the target on Android, including per-button targets. On iOS the SDK deliberately does not open URLs — routing is your app's job.
  • Surviving a cold start — a token that arrives with no live SDK instance is cached and replayed on next launch.

Next steps