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="pk_live_YOUR_PROJECT_KEY" ></script>
The script is ~29 KB, loads asynchronously, and is served from the edge. It will not block your page render.
pk_live_.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_triggered", { format: "csv" });
signalpad.track("dashboard_widget_added");The event name must match the Feature event key set on the update in the dashboard. A mismatch means the adoption metric won’t be recorded — double-check spelling and casing.
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: