mobile-signal-outDevice Classification

Understand how ContextPush classifies devices based on Background Operation Time eligibility.

Overview

Context-aware delivery requires Background Operation Time (BOT), a capability that iOS grants only under specific system conditions. This is not a setting the app can toggle — it is a platform-level capability, similar to how CarPlay requires a supported vehicle or ProMotion requires specific hardware.

Because BOT is not available on all devices, ContextPush continuously monitors background behavior and classifies each device into one of three categories. This classification determines whether context-aware delivery can be used for a given user.

Classification Categories

Category
API Value
Description

Available

available

Background Operation Time is likely available on this device, enabling context-aware delivery.

Unavailable

unavailable

Background Operation Time is likely not available on this device. Messages should be sent through your existing push infrastructure.

Unknown

unknown

Not enough data has been collected yet to make a prediction for this device.

circle-info

Classification is a continuous process. Devices can move between categories as new data becomes available. For example, a device might transition from unknown to available once enough background activity has been observed.

All devices start as unknown. Typically, devices receive their first classification within the first day of SDK integration. Once the classification process has stabilized, you can expect roughly 30–40% of active devices to be classified as available.

How Classification Works

ContextPush uses background processing and silent push notifications to observe each device's background behavior over time. By analyzing ping patterns and device behavior, a statistical model determines whether the device can reliably execute tasks in the background — which is a prerequisite for context-aware delivery.

circle-info

Even for devices classified as unavailable or unknown, ContextPush continues to send lightweight background probes. This ensures that if a device's behavior changes (e.g., the user starts using the app more frequently), the classification will update accordingly.

The classification system is designed to help you route messages through the optimal delivery path for each user:

  1. available devices — Send messages through ContextPush for context-aware delivery.

  2. unavailable and unknown devices — Send messages through your existing push infrastructure (e.g., Firebase, APNs, your CRM platform).

This approach ensures that every user receives their notification through the best available channel, while ContextPush focuses its optimization on the users where it will have the biggest impact.

Typical Setup

1

Integrate the ContextPush SDK

Follow the standard integration guide to add the ContextPush SDK to your iOS app. The SDK handles all background probing and token registration automatically.

2

Configure a Device Transition Webhook

Provide us with a webhook URL and shared secret so we can notify your backend whenever a device's classification changes. See Analytics & Reporting for the webhook format.

3

Track Classification on Your Side

When you receive a device transition webhook, update the corresponding user attribute in your system (e.g., a bot_status field on the user profile) with the new classification value. The bot_status in the webhook payload refers to Background Operation Time status.

4

Route Messages Based on Classification

When sending a push notification, check the user's current classification:

  • If available → send through ContextPush

  • If unavailable or unknown → send through your existing push infrastructure

Why This Matters

  • Maximize impact — ContextPush delivers the most value for users whose devices support background execution. These tend to be your most engaged users who already drive the majority of your revenue and engagement.

  • Reduce risk — By only routing eligible users through ContextPush, you avoid any chance of degraded delivery for users whose devices cannot support context-aware timing.

  • Keep control — You maintain your existing sending logic and optimizations (e.g., message reordering, personalization) for users where ContextPush cannot add value.

Device Transition Webhook

Whenever a device's classification changes, ContextPush sends a webhook notification to your configured endpoint. This allows you to keep your user attributes in sync in real time.

For full details on the webhook format, headers, and implementation notes, see:

Device Transition Webhookchevron-right

Last updated

Was this helpful?