Conversion goals are configured in the analytics platform
Why it matters
A conversion goal is what turns analytics from a pageview counter into a revenue measurement tool. Without a configured goal — a dedicated success page, a named purchase or sign_up event, a webhook-triggered completion event — GA4 has nothing to optimize against, Google Ads smart bidding has nothing to learn from, and your dashboards cannot answer the one question that matters: how many visitors became customers. Conversion reports stay empty.
Severity rationale
High because without configured goals the analytics platform cannot measure the outcome the business exists to produce.
Remediation
Create a dedicated success route like app/signup/success/page.tsx and fire GA4's recommended conversion event on mount:
'use client'
export default function SignupSuccessPage() {
useEffect(() => { analytics.track('sign_up', { method: 'email' }) }, [])
return <div>Welcome.</div>
}
Use GA4's named events — purchase, sign_up, generate_lead, subscribe — because GA4 maps them to conversion reports without manual configuration. For payment flows, fire the event from the Stripe webhook handler on checkout.session.completed.
Detection
-
ID:
conversion-goal-configured -
Severity:
high -
What to look for: "Configured in the analytics platform" cannot be detected from code — instead, look for proxies that indicate goals are set up: dedicated thank-you pages or success routes (e.g.,
/signup/success,/checkout/complete,/thank-you), analytics events with conversion-intent names (purchase,sign_up,generate_lead,conversion), or GA4 recommended event names for conversions. Also check for Stripe webhook handlers that trigger analytics events on payment completion. The presence of these signals strongly suggests goals are being tracked; their absence is a red flag. -
Pass criteria: At least 1 of the following: a dedicated conversion/success page exists with analytics tracking, an analytics event with a recognized conversion-intent name exists (
purchase,sign_up,generate_lead,subscribe), or at least 1 payment webhook handler triggers an analytics event. Enumerate all conversion-intent event names found. -
Fail criteria: No dedicated success/thank-you pages, no conversion-intent event names, and no webhook-triggered analytics events. The codebase shows analytics tracking only generic page views with no signals of conversion goal setup.
-
Skip (N/A) when: No analytics is present (
script-presentfailed). Skip for developer tools, CLIs, or library projects with no conversion flows. -
Detail on fail:
"No /signup/success, /checkout/complete, or equivalent thank-you routes found. No conversion-intent event names (purchase, sign_up, generate_lead) found in analytics calls. Cannot confirm conversion goals are configured." -
Remediation: Create a dedicated success page for each conversion flow and fire a conversion event when it loads:
// app/signup/success/page.tsx 'use client' import { useEffect } from 'react' import { analytics } from '@/lib/analytics' export default function SignupSuccessPage() { useEffect(() => { analytics.track('sign_up', { method: 'email' }) }, []) return <div>Welcome! Your account is ready.</div> }Use GA4's recommended event names for common conversions (
purchase,sign_up,generate_lead) — these map automatically to GA4's conversion reports without additional configuration.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from marketing-analytics·automated