Skip to content
Chumbaq

Push setup

Chumbaq sends through your own Firebase Cloud Messaging and Apple Push Notification service credentials. Nothing about your push setup moves.

Credentials

  • Android and web: a Firebase service account for your Firebase project.
  • iOS: your APNs key or certificate.

Add both to your Chumbaq project. They're used only to send your messages.

The four engagement events

Each one is a different column of a campaign's report.

EventWhen
deliveredThe device took the message
impressionThe user could actually see it
clickThey tapped it, or one of its buttons
dismissedThey swiped it away

A push that arrives while notifications are blocked is delivered and never seen, so click-through is measured against impressions, not deliveries.

Rich notifications on iOS

Only app extensions can draw on an iOS notification, so images, carousels and countdowns need two targets in your app. The SDK supplies their contents.

ExtensionAddsEntry point
Notification ServiceThe image and the action buttonsChumbaqNotificationService.populate(_:withContentHandler:)
Notification ContentCarousels and countdownsChumbaqNotificationContent.makeView(for:)
aps must carry mutable-content: 1, or iOS never wakes the extension and the push arrives plain.

Rich notifications on Android

ChumbaqMessagingService renders images, carousels, countdowns (API 24+) and action buttons (Android shows at most three). To handle messages yourself, subclass it:

MyMessagingService.kt
class MyMessagingService : ChumbaqMessagingService() {
    override fun onChumbaqMessage(message: RemoteMessage): Boolean {
        // …handle it; true means "do not show the default notification"
        return true
    }

    override fun onChumbaqTokenRefresh(token: String) {
        // The Chumbaq backend has already been told.
    }
}

The fallback chain is carousel, then image, then plain, so rich campaigns still arrive on devices that can't draw them.

Dead tokens

When FCM or APNs reports a token as unregistered, Chumbaq switches it off, so your audience counts and delivery rates stay honest.