Conversion tracking works by placing a tracking pixel or tag on specific pages of your site—typically a thank-you page, confirmation page, or form submission endpoint. When a visitor completes your goal action (purchase, form fill, phone call, download), the code fires and sends event data to your analytics platform or ad account. That platform matches the conversion back to the original click or session using cookies, URL parameters, or first-party identifiers. Most systems use a two-step process. First, when someone clicks your ad or visits from organic search, a cookie or client ID gets set in their browser. Second, when they convert, the tracking code reads that identifier and attributes the conversion to the correct source. Google Ads uses gclid parameters and its own pixel. Meta uses the Facebook Pixel. Google Analytics uses its GA4 measurement ID and assigns a unique client ID per browser. For server-side tracking, the conversion event fires from your backend instead of the user's browser. This approach is more reliable since it bypasses ad blockers and browser privacy restrictions, but requires developer setup. You send conversion data via API directly to Google, Meta, or your analytics warehouse. Ottawa SEO runs server-side GA4 for high-value clients where accuracy justifies the setup cost. Key things that break tracking: missing tags on confirmation pages, duplicate firing (counting one conversion twice), cross-domain issues where the cookie drops when a user moves between your main site and a checkout subdomain, and iOS or browser privacy features blocking third-party cookies. Always test in Tag Assistant or the platform's debug mode before launching. Conversion values matter as much as counts. If you're tracking ecommerce, pass actual transaction value. For leads, assign estimated values based on close rates—if 10% of demo requests close at CAD 5,000, tag each demo request as worth CAD 500. This lets ad platforms optimize for revenue, not just volume. Most businesses leave money on the table by tracking conversions as binary events instead of weighted by value.