Understand what people do after they discover your Product.
You can get useful traffic and acquisition data with one install. Add lifecycle events only when you are ready for signup, activation, retention and monetization insights.
Start here: three things first
- Verify your Product website in Product Workspace → Settings.
- Open Product Workspace → Analytics and create your install key. Choose your stack and copy the generated instructions.
- Grant analytics consent in your Product, then open the Product once and return to Analytics to verify the first page view.
The in-app Setup Assistant tells you the next action. You do not need server events, custom instrumentation, or public Traffic disclosure to begin.
What Showcase measures automatically
After consent, the SDK records privacy-light page, landing, and browser-session activity. It also reads only two bounded campaign tags from links: utm_source and utm_campaign.
- No arbitrary URL query parameters are copied into Analytics.
- No raw IP is stored.
- No session replay, keystrokes, DOM capture, or cross-Product identity exists.
- Country/device/source reporting is aggregate-only and small groups are suppressed.
Install once
Plain HTML or a site-wide custom-code field:
<script defer src="https://showcase.example/a.js?v=2" data-product="sh_pk_YOUR_PUBLIC_KEY" data-consent="required"></script>Next.js:
import Script from 'next/script';
<Script
src="https://showcase.example/a.js?v=2"
data-product="sh_pk_YOUR_PUBLIC_KEY"
data-consent="required"
strategy="afterInteractive"
/>React/Vite and WordPress instructions are generated directly in Product Workspace → Analytics. The public key is origin-bound and is safe to appear in browser markup. It is not a server secret.
Tell Showcase what success means
In Analytics, choose one primary goal: completed signup, activation, trial, or purchase. This keeps the dashboard focused even if your Product tracks many lifecycle events.
showcaseAnalytics.consent('granted')
showcaseAnalytics.track('signup_completed')
showcaseAnalytics.track('activation_completed')
showcaseAnalytics.reset() // logout/account switchUse the in-app “Track another meaningful action” builder to generate calls for feature use, onboarding, invites, checkout, subscription changes, refunds and churn. Put the call after the action succeeds, not when the user merely opens a screen.
Campaign links need no code changes
The in-app campaign-link builder creates safe links for X, LinkedIn, newsletters, Reddit, partners, launches, or another source. Visits appear in the private acquisition dashboard automatically after consent.
What you can understand in the dashboard
- 7-day and 30-day traffic with previous-period comparisons.
- Source mix, referrers, countries, devices, and campaign-tagged traffic.
- Your chosen primary-goal conversion.
- Observed funnel progression without pretending untracked stages are zero.
- Weekly first-seen retention groups with privacy minimums.
- Purchase, renewal, refund, cancellation and inactivity signals.
Private Analytics remains separate from verified Revenue. If you choose to publish 30-day Traffic, that disclosure is managed in Product Workspace → Traction and is previewed before confirmation.
Identity and privacy
Only use an opaque Product-scoped identifier if you need signed-in journey continuity. Never send email, name, phone number, authentication tokens, raw database records, message content, or free-form customer data.
On logout or account switch call showcaseAnalytics.reset().
Signed server events are advanced
Use them when your backend is the source of truth for completed purchase, renewal, refund, cancellation, inactivity or deletion. Create a one-time server secret under Advanced Analytics controls.
X-Showcase-Signature: v1=<hex HMAC-SHA256>
Sign: timestamp + "." + nonce + "." + rawBodyRequests also require X-Showcase-Timestamp and a unique X-Showcase-Nonce. Monetary values remain isolated by currency and are never treated as verified Revenue merely because Analytics received them.
Standard event reference
Show all 25 standard events
page_viewlanding_viewedcta_clickedoutbound_clicksignup_startedsignup_completedonboarding_startedonboarding_completedactivation_completedfeature_usedcontent_createdproject_createdinvite_sentsession_startedreturning_sessionreactivatedtrial_startedcheckout_startedpurchase_completedsubscription_startedsubscription_renewedsubscription_cancelledrefund_completedaccount_deletedaccount_inactive

