-- Add referral tracking columns to purchase_attempts table ALTER TABLE purchase_attempts ADD COLUMN IF NOT EXISTS referral_source TEXT, ADD COLUMN IF NOT EXISTS utm_campaign TEXT, ADD COLUMN IF NOT EXISTS utm_medium TEXT, ADD COLUMN IF NOT EXISTS utm_source TEXT, ADD COLUMN IF NOT EXISTS utm_term TEXT, ADD COLUMN IF NOT EXISTS utm_content TEXT, ADD COLUMN IF NOT EXISTS referrer_url TEXT, ADD COLUMN IF NOT EXISTS landing_page TEXT; -- Add indexes for better query performance CREATE INDEX IF NOT EXISTS idx_purchase_attempts_referral_source ON purchase_attempts(referral_source); CREATE INDEX IF NOT EXISTS idx_purchase_attempts_utm_source ON purchase_attempts(utm_source); CREATE INDEX IF NOT EXISTS idx_purchase_attempts_utm_campaign ON purchase_attempts(utm_campaign); -- Add comments to explain the columns COMMENT ON COLUMN purchase_attempts.referral_source IS 'High-level referral source (e.g., google, facebook, direct, email)'; COMMENT ON COLUMN purchase_attempts.utm_campaign IS 'Campaign name from UTM parameters'; COMMENT ON COLUMN purchase_attempts.utm_medium IS 'Medium from UTM parameters (e.g., email, social, paid)'; COMMENT ON COLUMN purchase_attempts.utm_source IS 'Source from UTM parameters (e.g., google, facebook, newsletter)'; COMMENT ON COLUMN purchase_attempts.utm_term IS 'Term from UTM parameters (paid search keywords)'; COMMENT ON COLUMN purchase_attempts.utm_content IS 'Content from UTM parameters (ad variant)'; COMMENT ON COLUMN purchase_attempts.referrer_url IS 'Full HTTP referrer URL'; COMMENT ON COLUMN purchase_attempts.landing_page IS 'Page where user first landed on the site';