Summarize this documentation using AI
Overview
If mobile push is part of your retention mix, push service certificates are the boring-but-critical plumbing that makes sure Customer.io can actually reach devices consistently. When this is misconfigured, everything downstream breaks quietly: cart recovery push never arrives, winback sequences underperform, and you end up blaming creative when it’s really delivery.
If you want a second set of eyes on your setup (especially identity stitching and event hygiene), you can book a strategy call and we’ll pressure-test it like an operator would.
How It Works
In practice, mobile push success comes down to two things: (1) your app can receive a push token from Apple/Google, and (2) Customer.io can map that token to the right customer profile at the right time. Push certificates/keys are what authorize Customer.io to send pushes through APNs (iOS) and FCM (Android); your SDK implementation is what makes the token usable for segmentation and orchestration.
- iOS (APNs): Your Apple Push credentials (typically an APNs Auth Key or certificate, depending on your setup) prove to Apple that Customer.io is allowed to send pushes for your app bundle ID. Your app registers for remote notifications and receives a device token.
- Android (FCM): Your Firebase Cloud Messaging configuration authorizes sending. Your app receives an FCM registration token.
- SDK → Customer.io device registration: The SDK sends the device token to Customer.io and associates it with a profile. This is where most retention programs accidentally leak performance—tokens get stored against anonymous profiles, duplicates, or the wrong person.
- Identity stitching: When a user logs in (or you otherwise know who they are), you must call
identifyso Customer.io merges the device with the known customer. Without this, your “cart abandonment push” goes to an anonymous shell profile that never enters your campaigns. - Event tracking drives triggers: Push is only as smart as your events. If you track
Added to Cartbut notCheckout StartedorOrder Completed, you’ll either spam buyers or miss high-intent shoppers.
Step-by-Step Setup
Think of setup in two parallel tracks: platform credentials (certificates/keys) and app-side SDK behavior (tokens + identity + events). You need both working before you trust push for revenue-driving flows.
- Create/confirm your push credentials
- iOS: In Apple Developer, generate the APNs credential your org uses (commonly an APNs Auth Key). Confirm the correct Bundle ID and environment (sandbox vs production) expectations.
- Android: Confirm your Firebase project is the one tied to your production app, and that FCM is enabled.
- Add credentials in Customer.io push settings
- In Customer.io, navigate to your push channel settings and upload/enter the required APNs/FCM details.
- Double-check you’re configuring the right workspace/environment. We’ve seen teams wire staging credentials into production and only notice when pushes “randomly stop.”
- Install the Customer.io Mobile SDK in your app
- Implement the SDK for your platform (iOS/Android/React Native/Flutter, etc.).
- Initialize the SDK early in the app lifecycle so it can capture tokens and lifecycle events reliably.
- Request push permission and capture the device token
- iOS: Prompt for notification permission at a moment of perceived value (post-purchase shipping updates, back-in-stock alerts, etc.), then register and pass the APNs token through the SDK.
- Android: Ensure the app obtains the FCM token and the SDK receives it (and refreshes it when Google rotates tokens).
- Implement identity stitching with
identify- Call
identifyas soon as you have a stable customer identifier (login, account creation, or verified email/phone). - Pass key attributes you’ll segment on (email, phone, loyalty tier, last order date, preferred category), but avoid dumping your entire user object—keep it operational.
- If you support guest checkout, decide what “identity” means: email capture at checkout is often the stitching moment for cart recovery and post-purchase push.
- Call
- Track retention-grade events (not just analytics events)
- Minimum viable commerce set:
Product Viewed,Added to Cart,Checkout Started,Order Completed. - Include identifiers in event payloads (product_id, variant_id, cart_id, order_id, value, currency) so you can personalize pushes and suppress correctly.
- Minimum viable commerce set:
- Validate end-to-end delivery and profile mapping
- Send a test push to a known internal profile and confirm it lands on the device.
- Verify the device token is attached to the same profile that receives events after
identify. - Run a controlled scenario: add to cart → wait 30 minutes → confirm the profile qualifies for your cart recovery segment.
When Should You Use This Feature
Push certificates aren’t a “marketing feature”—they’re the prerequisite for using push as a dependable retention channel. If you want push to carry revenue, you need it stable enough to be part of your orchestration, not a best-effort add-on.
- Cart abandonment on mobile-heavy brands: When 60–80% of sessions are in-app, push is often your fastest recovery lever—if identity stitching is clean.
- Repeat purchase timing: For replenishable products (supplements, skincare), push works well for “time-to-reorder” nudges when you trust
Order Completedand last purchase timestamps. - Back-in-stock / price-drop: Push is the highest-intent channel when the user already raised their hand. Certificates + token capture are what make those alerts actually hit.
- Reactivation: When email is saturated or deliverability is fragile, push can be a lighter-touch winback—assuming you’re not targeting stale tokens from users who churned months ago.
Operational Considerations
Once push “works,” the real operator work starts: keeping audiences accurate, preventing duplicate sends across channels, and making sure data flows don’t create ghost segments. This is where we see most programs lose incremental lift.
- Segmentation depends on device presence: Always build segments that explicitly require a valid push device (or “has push enabled”). Otherwise you’ll measure campaign eligibility, not actual reach.
- Token churn is real: Tokens rotate. Apps get reinstalled. Users opt out. Your logic should tolerate device loss without breaking journeys or inflating audience counts.
- Identity stitching is the linchpin: If you track cart events anonymously but only identify on login, your cart recovery push will miss guest shoppers. Decide where you capture email/phone and stitch there.
- Orchestration with email/SMS: For cart recovery, push usually goes first (fast + cheap), then email, then SMS for high-intent. But you need suppression based on
Order Completedand a shared cart/order identifier to avoid “you forgot something” after purchase. - Environment discipline: Keep staging and production credentials separate. Mixing them creates the worst kind of bug: intermittent delivery failures that look like “creative fatigue.”
Implementation Checklist
If you want push to be a reliable retention channel, treat this checklist like a launch gate. Most teams skip one item and then spend weeks debugging why performance is inconsistent.
- APNs (iOS) and/or FCM (Android) credentials added to the correct Customer.io workspace
- Customer.io Mobile SDK installed and initialized early in the app lifecycle
- Push permission prompt implemented with a value-based moment (not first app open)
- Device token captured and successfully registered in Customer.io
identifycalled on login/account creation and at any guest-to-known conversion point- Core commerce events tracked with stable IDs and useful payload fields
- Test device receives pushes; token is attached to the same profile receiving events
- Segments include “has push device / push enabled” gating
- Conversion suppression in place (purchase event exits cart recovery/reactivation)
Expert Implementation Tips
These are the small decisions that tend to separate “push is enabled” from “push prints money without annoying customers.”
- Stitch before you need it: If you wait until checkout completion to identify, you’ve already missed the cart recovery window. Capture identity at email entry, account creation, or “save cart.”
- Use event IDs for suppression: For cart recovery, include
cart_idinAdded to CartandOrder Completed. Then suppress only when the same cart converts, not when any order happens. - Don’t over-attribute profiles: Keep person attributes stable and segmentable (last_order_date, lifetime_value, opt_in flags). Put volatile details (cart contents) in event payloads or objects so you don’t create noisy profile churn.
- Measure “reachable audience”: Track how many users are push-enabled vs total actives. When reachable share drops, it’s usually permissions UX, token registration, or identity stitching—not creative.
Common Mistakes to Avoid
Most push failures aren’t dramatic—they’re silent. These are the issues that quietly kill recovery and reactivation performance.
- Uploading the wrong credentials/environment: Staging keys in production (or vice versa) leads to partial delivery and confusing test results.
- Never calling
identify: Tokens end up tied to anonymous profiles, so known-customer journeys never reach them. - Calling
identifywith unstable IDs: Using a session ID or device ID as the primary identifier creates duplicates and breaks lifetime value segmentation. - Tracking events without suppression fields: If
Order Completeddoesn’t includeorder_id/cart_id, you can’t reliably exit campaigns and you’ll spam recent buyers. - Building segments that ignore reachability: Targeting “Added to Cart in last 2 hours” without requiring a push-enabled device inflates audience size and masks delivery issues.
Summary
If push is a meaningful retention lever for your D2C brand, certificates/keys are table stakes—and SDK identity stitching is what determines whether push drives revenue or just sends noise.
Get credentials right, register tokens reliably, stitch identities early, and track events with suppression-ready IDs. Then your cart recovery and repeat purchase flows behave predictably.
Implement Push Certificates with Propel
When we help teams implement push for Customer.io, we usually focus less on “is push enabled?” and more on whether device registration, identity stitching, and event payloads will hold up once you scale segmentation and multi-channel orchestration.
If you want an operator review of your SDK implementation (tokens, identify timing, event schema, and suppression logic), book a strategy call and we’ll map the cleanest path to reliable cart recovery, repeat purchase, and reactivation.