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.
High because without configured goals the analytics platform cannot measure the outcome the business exists to produce.
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.
ID: marketing-analytics.event-conversion-tracking.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-present failed). 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.