Custom goal events
Track profile completion, activation milestones, and any in-app action with one browser or mobile SDK call.
Last updated July 2026
Screen views tell you a user saw something. Goal events tell you they did something. Use them to track actions like profile completion, first purchase, feature adoption, or any other milestone you care about.
Browser installs use window.grometrics.event(); mobile tracker instances use track(). No dashboard configuration is needed before firing — events are created when the first one arrives.
Prerequisites
Grometrics SDK installed and verified. Works on web and mobile.
Web: script installation. Mobile: iOS, Android, React Native, and Flutter.
Step 1: Fire events from your code
Call the matching event method wherever the action completes. Not when the screen loads — when the action finishes.
Web
1// after profile form submission succeeds2window.grometrics.event('profile_completed');34// with optional properties5window.grometrics.event('profile_completed', {6had_avatar: true,7fields_filled: 4,8});
Step 2: Create goals in the dashboard
Go to Conversions > Goals > Create Goal. Type the event name exactly as it appears in your code. Grometrics matches event names without case sensitivity, then counts past and future matching events as completions and calculates the conversion rate automatically.
You can also let events auto-create. Any event name sent through the SDK that doesn't have a matching goal will appear in your events list, and you can promote it to a goal from there.
Event naming rules
| Rule | Constraint |
|---|---|
| Characters | Lowercase letters, numbers, underscores, hyphens only |
| Length | Maximum 64 characters |
| Spaces | Not allowed |
| Special characters | Not allowed |
| Property rule | Constraint |
|---|---|
| Max properties per event | 10 |
| Key length | Maximum 64 characters |
| Value length | Maximum 255 characters |
| Value types | Strings, numbers, booleans |
| Security | HTML and script content is auto-stripped from property values |
Common event examples
activation.js
1window.grometrics.event('account_created');2window.grometrics.event('profile_completed');3window.grometrics.event('first_project_created');4window.grometrics.event('first_message_sent');5window.grometrics.event('onboarding_completed');
engagement-and-conversion.js
1window.grometrics.event('invite_sent');2window.grometrics.event('file_uploaded');3window.grometrics.event('comment_posted');4window.grometrics.event('share_clicked');56window.grometrics.event('pricing_page_viewed');7window.grometrics.event('trial_started');8window.grometrics.event('upgrade_clicked');9window.grometrics.event('checkout_initiated');
mobile-paywall.ts
1await tracker.track('paywall_viewed');2await tracker.track('paywall_dismissed');3await tracker.track('trial_started');
What you'll see in the dashboard
| Metric | Description |
|---|---|
| Completion count | Total times this event has been fired |
| Conversion rate | Completions divided by unique visitors |
| Trend | Sparkline showing completions over time |
| Trend arrow | Up/down percentage vs previous period |
Click a goal card to see the detail view: completion trend chart, breakdown by source, breakdown by page or screen, and a list of recent visitors who completed the goal.
Visitor CSV exports include both the number of evaluated saved-goal completions and the names of the goals each visitor completed. Funnel completion is reported in the Funnels tab and is not added to the visitor's goal count.
Using goals in funnels
Goals can be used as funnel steps. Go to Conversions > Funnels > Create Funnel and select Goal as the step type. You can mix goals with screen views and RevenueCat transaction events in the same funnel.
| Step | Type | Value |
|---|---|---|
| 1 | Goal | account_created |
| 2 | Goal | profile_completed |
| 3 | Goal | first_project_created |
| 4 | Goal | first_message_sent |
This shows the sequential drop-off between activation milestones. See the activation metrics guide for how to interpret the results and set targets.
Setting a primary KPI
You can pin one goal as your primary KPI in Settings > General > Primary KPI. This highlights it on the dashboard with a colour of your choice, so the number you care most about is always visible.
Requirements
The visitor must have at least one pageview or screen view before goal events are accepted. An SDK event sent before that context exists may be rejected.
Start tracking first and record a pageview or screen view before product actions. React Native can capture screens from navigation callbacks; native apps call trackScreen from their navigation lifecycle.
What happens next
Events start appearing in your Goals page within seconds of deployment. For guidance on which activation metrics to track and what targets to set, see the activation metrics guide
Troubleshooting
Events aren't appearing
Check the event name matches exactly, verify the SDK is initialized, confirm the visitor has at least one pageview or screen view, and wait up to 30 seconds after mobile connectivity returns.
Conversion rate looks wrong
The conversion rate is completions divided by unique visitors for the selected time period. If you want completions divided by signups, build a funnel with account_created as step 1 and your goal as step 2.
Duplicate events
If the same user fires profile_completed twice, both are counted in the completion total but the user is only counted once for conversion rate purposes.
Was this page helpful?