📊

Google Ads Conversion Audit — QuiPlans

Complete analysis of GA4 event coverage, Google Ads conversion mapping, and implementation gaps. Generated: August 31, 2026

11

Events Confirmed in GA4

6

Expected Events Missing

1

Events Wrong Name

6

GTM / Implementation Fixes

🚨 Critical Finding: Standard Google Ads event names are NOT being used

Google Ads expects generate_lead, begin_checkout, and purchase. QuiPlans fires lead_submitted, checkout_started, and purchase_completed. Without aliasing these in GTM, Google Ads Smart Bidding cannot auto-detect conversions. The server-side CAPI in stripeWebhook also requires 3 secrets to be set before it becomes active.

All GA4 Events — Existence Verification

Event NameGA4 StatusFires OnTriggerDaily Vol.Ads Conversion?Ads CategoryNotes
lead_submitted✅ ConfirmedAduFreePlan, AduFreePlanV2, AduLandingFree, AduFinderQuizV3User submits name/email lead form20–60YesSubmit lead formMaps to Meta Lead. Should be Google Ads 'Submit lead form' conversion.
quiz_completed✅ Confirmedlib/analytics.js → Analytics.quizCompleted(), AduFinderQuizV3User completes all quiz steps and reaches results10–30YesSubmit lead formFires via Analytics.quizCompleted(). Also mapped to Meta custom event QuizCompleted. ✅ Should be secondary conversion in Google Ads.
generate_lead❌ MissingNot found in codebaseN/A — not implemented0YesSubmit lead form❌ This Google-standard event name does NOT exist. The equivalent is lead_submitted. Add an alias or rename for Google Ads compatibility.
begin_checkout🔄 Renamedlib/analytics.js → Analytics.checkoutStarted()User clicks 'Get Plans' / starts checkout flow5–20NoBegin checkoutFires as checkout_started (not begin_checkout). Google Ads expects begin_checkout. GTM should map checkout_started → begin_checkout.
checkout_started✅ ConfirmedPlanCheckout, InstantDownloadCheckout, PermitReadyCheckout, PlanFunnelUser initiates any checkout flow5–20NoBegin checkoutCustom name — should be aliased to begin_checkout in GTM for Google Ads auto-tagging.
purchase❌ MissingNot found — codebase uses purchase_completedN/A — not implemented under this standard name0 (under this name)YesPurchase❌ Google Ads standard event is 'purchase'. Codebase fires purchase_completed. GTM must map purchase_completed → purchase with value/currency/transaction_id.
purchase_completed✅ Confirmedlib/analytics.js → Analytics.purchaseCompleted(), PurchaseSuccess pageUser lands on /PurchaseSuccess with valid session_id2–10YesPurchaseFires via GTM dataLayer + gtag. NOT sent to Meta Pixel here (deduped — pixel fires separately in PurchaseSuccess). Server-side CAPI also fires via stripeWebhook.
engineering_checkout_completed✅ Confirmedlib/analytics.js → Analytics.engineeringCheckoutCompleted()Engineering service purchase confirmed1–5YesPurchaseShould feed a separate high-value Google Ads conversion action.
property_match_purchase❌ MissingNot found in codebaseN/A — not implemented0YesPurchase❌ Not fired. purchase_completed fires with package_type=quick_insight — GTM should create a filtered conversion from that.
engineer_review_purchase❌ MissingNot found in codebaseN/A — not implemented0YesPurchase❌ Not fired as own event. engineering_checkout_completed exists but may not always fire. purchase_completed with package_type=lot_fit is the reliable source.
permit_plan_purchase❌ MissingNot found in codebaseN/A — not implemented0YesPurchase❌ Not fired. purchase_completed with package_type=permit_ready is the source. Needs GTM filter conversion.
permit_package_purchase❌ MissingNot found in codebaseN/A — not implemented0YesPurchase❌ Not fired. purchase_completed with package_type=feasibility_study_149 or feasibility is the source.
plan_viewed✅ ConfirmedPlanDetail page, Analytics.planViewed()User opens a plan detail page30–100NoView itemUseful for remarketing audiences. Not a conversion — use as audience signal.
plan_selected✅ ConfirmedPlanCatalog, PlanDetail, Analytics.planSelected()User clicks on a plan or selects for checkout10–40NoView itemGood for top-funnel audience building.
roi_calculated✅ ConfirmedRoiCalculator page, AduFinderQuizV3ResultsUser views ROI projection5–20NoEngagement signal. No Google Ads action needed.
engineering_clicked✅ ConfirmedMultiple checkout pages, Analytics.engineeringClicked()User clicks on any engineering upsell CTA5–15NoIntent signal. Good for RLSA audience.
auth_verified✅ ConfirmedFreePlanSuccess (OTP verification), Analytics.authVerified()User verifies their email via OTP5–20NoEmail verification checkpoint. Not a conversion.
plans_catalog_view✅ ConfirmedPlanCatalog page loadUser views the plan catalog15–60NoView item listTop-funnel audience. No conversion needed.
base44
Edit with Base44