Getting Started
From zero to tracking feature adoption in under five minutes. Signalpad works with any web stack — embed one script tag and you’re live.
1. Embed the widget
Add this script tag to the <head> or before the closing </body> of your app. Replace YOUR_PROJECT_KEY with the key from your project settings.
<script src="https://signalpad.app/widget.js" data-project="[your_key_here]" ></script>
The script is ~29 KB, loads asynchronously, and is served from the edge. It will not block your page render.
2. Identify your users
Call signalpad.identify() after your auth flow resolves. This ties tracking events and guided flows to a real user in your system, enabling targeting by plan, role, custom attributes, behavioral history, and feature-usage signals.
// After login / session restore
signalpad.identify("user_8841", {
plan: "pro",
role: "admin",
company: "Acme Corp",
createdAt: "2024-11-01",
});If you skip identify(), Signalpad still works — events are tracked against an anonymous ID stored in a cookie. You can call identify() at any time; subsequent events are merged under the resolved user.
3. Track feature adoption
Call signalpad.track() when your users perform the key action tied to a feature. Signalpad correlates this event with the update that announced the feature to compute your real adoption rate.
// Fire when the feature is actually used — not when viewed
signalpad.track("voice_note.sent");
signalpad.track("export.completed", { format: "csv" });
signalpad.track("dashboard_widget.added");Events auto-registerthe first time they arrive — no setup required. To measure a feature’s adoption, open the update in the dashboard and pick the event(s) that count as success under Adoption Tracking. You can link an event to an update any time, even after it’s been firing.
4. Target the right users
The signal you ship matters more than the volume. Signalpad supports increasingly precise targeting as you move up plans:
| Rule family | Examples | Plan |
|---|---|---|
| Built-in | All users · New (≤7d) · Returning | Free |
| Custom attributes | plan = pro · attr.role = admin · days_since_signup ≥ 30 | Growth+ |
| Feature-usage | Has used voice_note_sent · Has never used csv_export · Used dashboard_view 5+ times | Pro+ |
| Update engagement | Saw update X · Dismissed update Y · Completed flow for Z · Reacted 👎 to W | Pro+ |
| Activity velocity | Active 5+ days in last 30 · Lifetime engagement ≥ 10 | Pro+ |
Build a segment from Dashboard → Audience → Segments, then pick it when creating an update. Rules are evaluated on widget load — users only see updates they actually qualify for.
signalpad.track()call, every reaction, every flow completion. You can re-target users who dismissed an update weeks later, or quietly nudge users who've never tried a feature you shipped.5. Publish your first update
Open the Signalpad dashboard, go to Updates → New update, fill in the title, pick a target audience, and click Publish. The widget in your app will display the update automatically — and if the user hasn't opened your product in a while, Catch-up mode (Pro+) can surface everything they missed in one summary.
Next steps
Once the widget is live and events are flowing, explore the rest of the platform: