as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Ring

Customer Lifecycle Analytics for Your App

This guide covers how to instrument your Ring Appstore app to track the full customer lifecycle—from account linking through engagement and subscription conversion. It includes recommended events, metrics, and dashboard patterns based on real implementation experience.

Without visibility into your customer journey, you can't identify where users drop off, which features drive retention, or what's blocking conversions. Structured tracking lets you make data-driven decisions about your app's UX, pricing, and feature development.

On this page

Account linking funnel

Track each step of the account linking flow to identify where customers drop off.

To reduce friction, passwordless account linking has shown positive results in reducing drop-off during the linking flow. For implementation details, see Your App Design Guide for Ring Customer Experiences.

The following table shows the events to log at each step of the account linking flow.

Step Where to log What it tells you
token_exchange Your OAuth token endpoint, when Ring sends the access token Total users who initiated linking from Ring
page_loaded Client-side, when your signup or login page renders Users who actually opened your page (gap from token_exchange = Ring-side drop-off)
auth_attempt Client-side, on form submit Users who tried to sign up or sign in
auth_failed Client-side, on error response (include the error in detail) Where users get stuck
link_complete Server-side, after successful Ring API nonce verification Users who fully completed account linking

What to look for

  • token_exchangepage_loaded gap: Ring-side drop-off before users reach your page. Users are browsing your app detail page and deciding whether to proceed. This is outside your control.
  • page_loadedlink_complete gap: Your signup flow friction. With passwordless auto-linking, this should be near zero percent.

Include a version tag (v) in events so you can measure before-and-after impact when you deploy UX changes.

Example: account linking funnel

The following diagram — "Example: before vs after deploying passwordless auto-linking" — compares account linking conversion before and after deploying passwordless auto-linking. The left panel shows the traditional email/password flow, where customers drop off at both the Ring-side decision point and your signup form. The right panel shows the passwordless flow, where the only drop-off is Ring-side — customers who reach your page complete linking automatically, with no form required. The conversion stats at the bottom show the practical impact: a jump from 60% to 100% page-to-complete conversion.

Side-by-side funnel: before (email/password) vs after (passwordless). Before: 300 initiated, 150 reached page (50% drop-off), 90 completed (40% friction), 60% conversion. After: 200 initiated, 120 reached page (40% drop-off), 120 completed (0%), 100% conversion. Before (old UX — email/password) 300 Initiated ↓ ~150 dropped off (50%) Ring-side — users browsing app detail page 150 Reached page ↓ ~60 stuck during signup (40%) Your UX — signup form friction 90 Completed Page → complete conversion 60% 90 of 150 who reached your page After (new UX — passwordless) 200 Initiated ↓ ~80 dropped off (40%) Ring-side — users browsing app detail page 120 Reached page ↓ 0 stuck — auto-linked (0%) Your UX — no signup required 120 Completed Page → complete conversion 100% 120 of 120 who reached your page Note: Illustrative samples — your funnel will vary. Use this as a framework, not a benchmark.

Subscription tracking

Track the customer lifecycle from account creation through trial to paid conversion. Understanding where users drop off in this journey tells you whether to invest in onboarding, feature depth, or pricing. The key signal is engagement before churn—it separates onboarding problems from value problems.

The following table shows the events to log across the subscription lifecycle.

Event When Detail
trial_started Account linking complete Trial start date, expiry date
trial_active Daily check-in Days remaining, feature usage
trial_expired Trial period ends Whether user engaged (had detections, visited dashboard)
subscription_converted User pays Plan type, trial duration before conversion
subscription_churned User cancels or doesn't renew Days as subscriber, last active date
app_removed Ring sends app_integration_removed webhook Time since linking, feature usage

Key metrics to compute

  • Trial-to-paid conversion rate: What percentage of free trial users become paying subscribers.
  • Time to first value: How quickly users experience the core feature (for example, first bird detection). Users who never see value churn.
  • Engagement before churn: Did churned users ever use the app? Zero engagement indicates an onboarding problem; high engagement indicates a pricing or value problem.

Example: subscription tracking

The following diagram — "What happens after account linking — tracking 120 users who completed linking" — traces what happened to 120 users after they completed account linking. The top section shows the lifecycle pipeline — how many reached each stage from trial through paid conversion. The bottom section breaks down churn by engagement level, revealing whether customers who removed the app had ever used it at all. The color coding makes the pattern clear: the less a customer engaged, the more likely they were to churn, and the remedies are different at each level.

Two-part diagram. Top: lifecycle pipeline — 120 linked, 120 trial, 78 first value, 65 paid, 55 removed. Bottom: churn by engagement — 85% never engaged, 40% light engagement, 12% reached core value. Linked trial_started 120 Trial trial_active 120 First Value feature_used 78 Paid subscription_converted 65 Removed app_removed 55 Churn rate by engagement level Of the 55 users who removed the app — what was their engagement level? Never engaged after linking 42 users linked, never set up 85% churn rate Action: Invest in onboarding and time-to-first-value Used app with light engagement some features, few return visits 40% churn rate Action: Investigate feature gaps or content depth Reached core value regular usage, notifications opened 12% churn rate Action: This is your goal — get more users here faster Note: Illustrative samples from one app — breakdown differs by category, trial length, and onboarding flow.

Feature engagement

Track which features customers actually use to inform development priorities and identify what drives retention.

The following table shows the events to log for feature engagement.

Event What it tells you How to use the data
dashboard_visit How often users check in Define "active" versus "dormant" cohorts. Users visiting less than once per week may need re-engagement nudges.
feature_used (with feature name) Which features drive engagement Compare usage across features to identify what to invest in versus deprioritize. Features with high usage and high retention correlation are your competitive advantage.
notification_opened Whether push or email notifications bring users back Measure re-engagement rate. If open rates drop, reduce frequency before users disable notifications entirely.
share_action Social or viral potential Track as a leading indicator of organic growth. High share rates suggest your content is compelling enough to drive word-of-mouth.

Tips for useful engagement tracking

  • Define "active user" explicitly. Is it a dashboard visit? Any event? A core feature use? Pick one definition and stick with it so your metrics are consistent over time.
  • Compare by cohort. Group users by signup week. This separates product changes from seasonal patterns — if the week 12 cohort retains better than the week 10 cohort, your recent changes are working.
  • Don't over-instrument. Not every action is useful. Focus on actions that correlate with retention (core feature usage, return visits) rather than vanity metrics (page views, button hovers).
  • Tie engagement to subscription outcomes. The most valuable insight is: "Users who do X within their first three days convert at twice the rate." Find your app's version of that signal.

Webhook health

Ring sends webhooks for motion events, app integration changes, and device updates. Your webhook endpoint must meet two requirements:

  • Return a 200 status code for every successfully received webhook. Ring treats any non-2xx response as a delivery failure and will retry the request. Persistent failures may result in Ring disabling webhook delivery to your endpoint.
  • Respond within five seconds. If your endpoint takes longer than five seconds to respond, Ring treats it as a timeout. Don't perform heavy processing (video downloads, AI inference, database writes) synchronously in the webhook handler. Instead, acknowledge the webhook immediately with a 200 response and process the payload asynchronously via a queue (for example, SQS or a background worker).

Track response codes and timing to ensure you're meeting these requirements consistently.

What to log

The following code example shows the recommended webhook log format.

{
  "type": "WEBHOOK_LOG",
  "event_type": "motion_detected",
  "subtype": "other_motion",
  "account_id": "<last 20 chars>",
  "device_id": "<last 20 chars>",
  "response_time_ms": 145,
  "status": 200
}

Key metrics

The following table shows the target values and recommended actions for webhook health metrics.

Metric Target Action if missed
Success rate (2xx responses) 100% Investigate 5xx errors — Lambda timeouts, DynamoDB throttling
Response time Under three seconds Ring may retry or drop webhooks that take too long
Duplicate detection Log event IDs Ring may send the same event multiple times — deduplicate by event ID

Alert on

  • 5xx rate exceeding one percent
  • Response time exceeding five seconds
  • Sudden drop in webhook volume, which may indicate a Ring-side issue or token expiry

Error tracking

Log all customer-facing errors with enough context to debug and resolve quickly.

The following code example shows the recommended error log format.

{
  "type": "ERROR_LOG",
  "endpoint": "/auth/verify-code",
  "error": "Code expired",
  "user_email_masked": "joh***@gmail.com",
  "timestamp": "<ISO 8601>"
}

What to track

  • Login failures (wrong code, expired code, user not found)
  • Account linking failures (nonce mismatch, token expired)
  • API errors returned to customers (4xx and 5xx)
  • Ring API call failures (token refresh failures, rate limits)

Set up automated dashboards or alerts for the following metrics.

Dashboard What to include
Daily account linking conversion Initiated versus completed, with version comparison
Webhook health Success rate, response time, volume over time
Trial status Active trials, expiring soon, converted, churned
Error rate Customer-facing errors per hour, grouped by type
Engagement Daily active users, feature usage trends