Critical Moments is a new mobile SDK that completely inverts the architecture typically utilized for user targeting.
Our architecture provides more precise user targeting, on more user criteria, while also improving user privacy.
Most people assume that user targeting comes with privacy compromises. That makes sense, given how most user targeting has worked in the past. Traditionally, user targeting has relied on collecting huge amounts of user data, server-side targeting, ads that expose demographic data, and data brokers. Targeting traditionally means less privacy.
Our design inverts the classic strategy. We collect zero user data. Their data stays on their device. Without data collection, we can offer more precise targeting criteria, without the additional scaling complexity, privacy concerns, or legal concerns that come with server-side data collection.
How Critical Moments Works
Server Sends Logic Down Instead Of Client Sending Data Up
Instead of sending user data to the server for targeting, the server sends targeting logic down to the client.
We've built a powerful conditional targeting engine. It supports over 100 built-in properties, custom properties, functions, arithmetic, set operations, user engagement history database queries, and more.
You can express your logic using simple, familiar conditional strings. Here are two examples to give you an idea what these look like:
- A simple example:
device_battery_level > 0.15
, which is true if the user's battery is over 15% - A more advanced example with functions, logic, and database queries:
device_model_class == 'iPad' && versionGreaterThan(app_version, '2.4.1') && eventCount('app_launch') > 5 && latestEventTime('asked_to_subscribe') < now() - duration('72h') && canOpenUrl('Spotify:') && network_connection_type != 'cellular' && (has_watch || has_bt_headphones || camera_permission == 'authorized')
When a condition is met, an action can be dispatched for the user to see without sending any data back up to the service. This can mean showing a message, calling custom code, flipping a feature flag, and much more.
Built-In Rich Data Sources, Local to Each Device
Our SDK provides rich dataset to help you craft highly personalized experiences. This includes:
- Over 100 properties you can query, covering device information, user context, sensors, location, permissions, connectivity, peripherals, locale, app info, and much more.
- A local database that automatically tracks user engagement, including app launches, session times, terminations, and user actions.
- APIs to send custom events and set custom properties specific to your app, which are stored in a local database and can be queried for targeting.
- A local database for property history, allowing you to see if the current state is exceptional or the norm for this user.
Our privacy-first approach enables us to add more targeting criteria with greater precision, all while respecting user privacy.
Benefits of this Architecture
There are many benefits to client-side logic evaluation, for both users and developers:
Critical Moments | Traditional | |
---|---|---|
User data sent off device | None | All targeting properties |
User data sent to 3rd parties
Firebase, Critical Moments, etc | None | All targeting properties |
Built-in Targeting Properties | Over 100 | Firebase: 17 LaunchDarkly: 10 |
Contextual Properties
Battery level, sensors, etc | Over 60 | 0 |
Efficiency | Only requests needed properties | Requests all properties |
Freshness | Real-time | Once per app launch |
Offline Support | Continues to evaluate conditions, even offline | Caches old states, which may be out of date |
User Engagement History | Built-in local database and push new queries anytime | Bring your own |
All this results in a powerful targeting system, which doesn't need to collect data to provide rich targeted experiences.
Apple outlines their policy here, and we're fully compliant. There's no need to access IDFA, and we don't fingerprint the user's device.
Use Cases
Powerful in-app targeting can be useful in many ways:
Feature Flags: Smarter and Realtime
You can connect our conditional targeting logic up to feature flags, which update in real-time based on the user's context. This means you can deliver more personalized experiences to your users. Learn more about our smart feature flags.
Improve App Rating
You can improve your app rating by targeting when you ask users to rate your app. This includes targeting at the right moment (after significant interaction), avoiding negative states (e.g. low battery, no network), stopping asking on buggy releases, and much more. See our guide to improving your app rating.
Improve Conversion Rate
Just like app-rating prompts, you can time your paywall to the perfect moment to improve your conversion rate and revenue. Look at factors that impact conversion like progress in their user journey (engagement database), negative states (in car, distracted by music), and much more.
In-App Contextual Messaging
Push messages to the right user at the right moment. These can take the form of banners, sheets/modals, alerts, and more. Define your messaging in server-driven configuration to allow pushing new messages anytime, updating messaging, or updating the conditions under which messages are seen. Learn more about in-app messaging.
Trustless Privacy
While we think you can trust us, you don't need to. The Critical Moments SDK
is 100% source-available, and the server component is designed to be easily
self-hosted. Your user's devices never need to talk to our servers!
Optional Services Some optional features like weather conditions required calling a
Critical Moments server. These are optional, clearly identified in our
docs, and send as little data as possible to the server. These also
don't store your data longer than needed to serve the request, so they
aren't classifed as data collection per Apple Standards.
Read more on our Trustless SaaS Architecture
Works with Your Existing Tools and Workflows
Inverting the architecture also means integrating and deploying is simpler than our competitors. The client SDK does all the heavy lifting, so the server side is simplified to a static file you can host anywhere. You can leverage your existing systems for access control, version control, reviews, staging, and deployments.
Be up and running in minutes with the tools you already have. No need to set up new servers, monitoring, compliance reviews, processes, or access control integrations.
Get Started Today
Ready to unlock the power of precision targeting and trustless privacy for your app? Getting started with Critical Moments is easy and only takes a few minutes.
This Is Just the Beginning
Our goal at Critical Moments is to build best-in-class developer tools that not only prioritize user privacy but also unlock new, powerful features for developers that weren't previously possible. We're planning several exciting updates that will unlock new possibilities. Sign up today to get notified of future product launches.