Building a Funnel for Ecommerce: Each Step, the Math and the Tracking
Build an ecommerce sales funnel step by step: offer, landing page, checkout, order bump, upsell, follow-up, and what to track at each step.
Article summary
TL;DR
Building an ecommerce funnel means connecting six steps: a traffic source with one offer, a landing or sales page that matches the ad, a checkout with an order bump, a post-purchase upsell, a thank-you page, and consented email or SMS follow-up. Each step gets one metric and one tracked event, so you know where buyers drop.
- A DTC funnel has six steps: traffic and offer, landing page, checkout with order bump, post-purchase upsell, thank-you page, follow-up. Each one has a single job.
- Revenue per visitor is the number that ties the funnel together: visitors × conversion rate × average order value, plus what bumps and upsells add.
- Ad platforms review the landing page too. Google rejects destinations that redirect to another domain or don't work; Meta requires the ad and the page to promote the same product.
- Marketing email follows CAN-SPAM (opt-out honored within 10 business days). Marketing texts call for signed written consent under the FCC's TCPA rules, never required to buy.
- Track each step with GA4's recommended events and send purchases server-side. Give each upsell its own transaction ID, or GA4 drops it as a duplicate.
On this page
Building a funnel for an ecommerce brand comes down to six steps that hand the buyer from one to the next: an offer and a traffic source, a landing page, a checkout, a post-purchase upsell, a thank-you page and the follow-up. This guide takes each step in order, with what to build, what to track, the rules that apply, and a worked example of the math that tells you which step to fix first. By industry: funnel builder for supplement brands, funnel builder for skincare brands, funnel builder for online pharmacies, funnel builder for telehealth companies, funnel builder for fitness brands and funnel builder for info product businesses.
What a DTC sales funnel looks like
A sales funnel is the path a buyer takes from the first ad to the paid order, and then to the next order. Guides on the topic split it into awareness, interest, consideration and purchase stages. That's useful for planning content. To build one, think in pages and events instead: what the buyer sees, what they click, and what you record.
Fig. 1The six steps of a DTC funnel
- Traffic and offerAd, email, creator, search
- Landing pageSame promise as the ad
- CheckoutOrder bump before payment
- UpsellOne click, stored card
- Thank-you pageOrder number, next steps
- Follow-upEmail and SMS, with consent
each step has one job, and one number to watch
| Step | Its job | What you build | Number to watch |
|---|---|---|---|
| 1. Traffic and offer | Bring the right buyer with one promise | Ad, creator post or email, one offer | Click-through rate, cost per click |
| 2. Landing or sales page | Turn the click into a checkout | One page that matches the ad | Checkout starts per visitor |
| 3. Checkout and order bump | Take the payment, add a small extra | Short form, wallets, one checkbox offer | Orders per checkout started, bump take rate |
| 4. Post-purchase upsell | Add a second product without a new card entry | One offer between payment and thank-you page | Upsell take rate |
| 5. Thank-you page | Confirm the order, set expectations | Order number, delivery, account or referral | Refund requests, support tickets |
| 6. Follow-up | Deliver, bring back, recover | Confirmation, shipping, replenishment, abandoned-checkout messages | Repeat orders, opt-outs |
The rest of this guide follows that table. If you're still choosing a tool to build it in, our comparison of sales funnel software lists what each one offers, and AI funnel builders covers what the AI features actually do.
Step 1: pick one offer and one traffic source
A funnel sells one thing to one audience at a time. A store sells everything to everyone. That's the main difference, and it's why a funnel starts with the offer, not the page.
The offer
One product or bundle, one price, one reason to buy now. A starter kit, a first-order bundle, or a subscription with clear terms. If you can't say it in one sentence, the landing page can't either.
The traffic source
Where the buyer comes from sets the tone of the page. A cold Meta or TikTok ad needs proof and explanation. A returning customer from email needs the price and the button.
The audience
Who the offer is for, and who it isn't. The page will answer their three main objections: does it work for me, what does it cost in total, what if I don't like it.
Start with a single source. Two sources at launch means two sets of creatives, two audiences and numbers you can't compare. When the first funnel converts, copy it for the next source and change only the page's opening.
Use unique links (UTM parameters) or codes per source and per creator, so the purchase can be traced back. Without them, the measurement step at the end has nothing to work with.
Step 2: build the landing or sales page
The landing page has one job: get the visitor to start checkout. It repeats the ad's promise in the headline, shows the product, answers objections, states the full price, and puts the buy button where it can't be missed.
Two formats work for DTC:
| Product landing page | Long-form sales page | |
|---|---|---|
| Best for | Known product types, warm traffic, impulse prices | New categories, cold traffic, higher prices |
| Length | One or two screens on mobile | Many screens: story, proof, FAQ, guarantee |
| Main content | Photos, short benefits, reviews, price, button | Problem, demonstration, results, objections, offer stack |
| Typical traffic | Email, retargeting, search | Cold social ads, video ads |
| Read more | Product landing pages | Sales page examples, video sales letter |
Whatever the format, five things should be on the page before the checkout:
- The same promise as the ad. Same product, same offer, same price.
- The total cost. Price, shipping, and for a subscription, the amount and frequency of each charge.
- Return and refund terms, one click away.
- Proof that's real. Reviews from actual buyers, with nothing invented or cherry-picked beyond what you can back up.
- One button, repeated. Remove the store's main navigation if the page is a funnel entry: every extra link is a way out.
Practical rule
Read the ad, then the first screen of the landing page, on a phone. If someone who saw only the ad would be surprised by the page, rewrite the page, not the ad.
The ad platform rules that bite funnels
Ad platforms review the page you send traffic to, not only the ad. Meta states that its ad review can include "an ad's associated landing page or other destinations", and that "the products and services promoted in an ad must match those promoted on the landing page".8Meta Transparency Center, Introduction to the Advertising Standards Google rejects ads whose destination breaks its destination rules, with a warning "at least 7 days prior to any suspension".9Google Ads Policy Help, Destination requirements
- The ad's link redirects to another domain (a separate checkout or tracking domain)Google destination mismatch: redirects from the final URL to a different domainKeep the landing page and the checkout on your domain, or make the final URL the page users land on
- The page errors for Google's crawler, is blocked in the targeted country, or is hard to navigateGoogle destination not working, not accessible, or poor destination experienceTest the page from the targeted countries and remove pop-ups that block the content
- The ad shows one product, the page sells another or a bundleMeta relevance rule; Google misrepresentation (ad and page inconsistent)Match the product, the offer and the price word for word
- A subscription or extra charge only appears in the termsGoogle dishonest pricing: payment model or full expense not disclosed clearlyShow the amount, frequency and cancellation terms next to the button
- Results promised that most buyers won't getGoogle unreliable claims; Meta deceptive or misleading practicesKeep claims to what you can document, and remove before-and-after promises you can't back
The Google items come from two pages. Destination requirements list "redirects from the final URL that take the user to a different domain", destinations "that don't function properly", "aren't accessible in the targeted location" or are "unnecessarily difficult or frustrating to navigate".9Google Ads Policy Help, Destination requirements The Misrepresentation policy covers "failure to clearly and conspicuously disclose the payment model or full expense that a user will bear", "inconsistencies between the ad and the landing page", and claims that "entice the user with an improbable result".10Google Ads Policy Help, Misrepresentation Meta's standards prohibit offers using "deceptive or misleading practices", including deceptive pricing.8Meta Transparency Center, Introduction to the Advertising Standards
Health and wellness products face extra restrictions on both platforms. Check the category pages of each platform's policy before writing the claims, not after the first rejection.
Step 3: the checkout and the order bump
The checkout turns the decision into a payment. In a funnel, it should feel like part of the landing page: same look, same domain, the offer already in the cart, as few fields as possible, and wallets such as Apple Pay and Google Pay next to the card form.
The steps behind the screen (tokenization, 3D Secure, authorization, webhooks) are covered in checkout flow, and the list of fixes ranked by impact in ecommerce checkout optimization. In a funnel, three points matter more than usual:
- Ask for the email first. If the buyer leaves at the payment step, the email is what lets you send an abandoned-checkout message.
- Save the card with consent if you plan an upsell. A one-click upsell charges the card stored during checkout. Stripe's checklist before saving a card: terms that say how it will be used, use limited to that purpose, explicit consent such as a "Save my payment method for future use" checkbox, and a record of the agreement.14Stripe Docs, Save a customer's payment method when they use it for a payment
- Show subscription terms at the point of consent. If the offer renews, Visa's rules require the amount, frequency and trial terms to be shown when the buyer agrees, separately from the general terms and conditions.15Visa Core Rules and Visa Product and Service Rules, April 18, 2026 The full set of rules is in negative option billing.
The order bump
An order bump is a checkbox on the checkout page that adds a small, related item to the same payment: a refill, an accessory, express shipping, a protection plan. It's a single click, it costs the buyer nothing to ignore, and it's included in the first charge.
Good bumps share three traits: the price is a fraction of the main order, the product is obviously related, and the box is unticked by default. A pre-ticked box adds an item the buyer didn't choose, which turns into refund requests and disputes later. The dispute side is covered in chargeback prevention.
Step 4: the post-purchase upsell
A post-purchase upsell is shown after the payment is approved and before the thank-you page. The buyer accepts with one click, and the stored card is charged again, with no new card entry. Because the first order is already paid, the offer can't cost you the sale.
Fig. 2Where the bump and the upsell sit
approved declined or closed routing step
- CheckoutMain offer + optional order bump
- first chargePayment approvedCard saved with consentApproved
- before thank-youUpsell pageOne offer, one click
- accept or declineThank-you pageOrder number, delivery, next stepApproved
the bump rides on the first charge, the upsell makes a second one
Platform rules decide what's possible. On Shopify, the card "must be vaulted before the post-purchase offer is displayed", and offers are not shown when the buyer paid with a wallet or an installment service such as Apple Pay, Google Pay or Klarna. A buyer can accept up to three offers per checkout, and fulfillment waits until they reach the order status page or one hour passes.13Shopify Dev Docs, Post-purchase product offers
| Order bump | Post-purchase upsell | |
|---|---|---|
| When | On the checkout page, before payment | After payment, before the thank-you page |
| Payment | Added to the first charge | A second charge, or an added amount, on the stored card |
| Can it lose the main sale? | YesIf it distracts | NoThe main order is already paid |
| Card storage needed | No | YesWith the buyer's consent |
| Best offer | Small, obvious add-on | A product that needs a picture and a sentence |
| Read more | Upsell cart drawer for in-cart offers | 1-click upsell |
If the upsell is a subscription, the consent rules apply again: the buyer must see and accept the recurring terms on that page, not just click "Add".
Step 5: the thank-you page
The thank-you page confirms the order and answers the next question: when will it arrive. It carries the order number, what was charged, the delivery estimate, the name that will appear on the bank statement, and how to reach support.
It's also the last page of the session where the buyer is paying attention. One next step fits here: create an account with the data already given, follow the brand, or a referral offer. Pick one.
Don't create the order from this page
The thank-you page is not proof of payment. A buyer can pay and lose their connection before it loads. Create the order from the processor's webhook, and fire the purchase event from the same place. The details are in checkout flow.
Inside Tagada
Build the funnel once, route every customer to the right offer
Checkout, upsells and subscriptions on one flow, with conditions per country, order or customer.

Step 6: follow-up by email and SMS, with consent
Follow-up does three jobs: confirm and deliver (order confirmation, shipping updates), recover (abandoned checkout, failed payment), and bring back (how-to-use, replenishment, next offer). The first are transactional. The rest are marketing, and the rules differ.
| Marketing email (US) | Marketing SMS (US) | |
|---|---|---|
| Law | CAN-SPAM Act, enforced by the FTC | TCPA, FCC rules at 47 CFR § 64.1200 |
| Consent before sending | NoOpt-in required by CAN-SPAM | Prior express written consent for autodialed marketing messages; electronic signatures count |
| Can consent be required to buy? | Not applicable | NoThe disclosure must say signing is not a condition of purchase |
| Opt-out | Clear opt-out in every marketing email, honored within 10 business days | Revocation "by using any reasonable method", honored within 10 business days |
| Other rules | NoFalse headers or deceptive subject lines, identify as an ad, include a postal address | NoTelephone solicitations before 8 a.m. or after 9 p.m. local time; national Do Not Call registry |
| Penalty | Up to $53,088 per email | Set by the TCPA statute, not by this rule |
Sources: FTC, CAN-SPAM Act compliance guide; 47 CFR § 64.1200 (a)(2), (a)(10), (c), (e), (f).11FTC, CAN-SPAM Act: A Compliance Guide for Business1247 CFR § 64.1200, Delivery restrictions (FCC TCPA rules)
On email, the FTC lists the core requirements: no false or misleading header information, no deceptive subject lines, identify the message as an ad, tell recipients where you're located, tell them how to opt out, and honor opt-out requests "within 10 business days". Each violating email is subject to penalties of up to $53,088.11FTC, CAN-SPAM Act: A Compliance Guide for Business An order confirmation is a transactional message when its content is limited to the transaction; if its subject line reads like a promotion, the FTC treats it as commercial.11FTC, CAN-SPAM Act: A Compliance Guide for Business
On SMS, the FCC's rule defines prior express written consent as a signed agreement with a "clear and conspicuous disclosure" that the person isn't required to sign "as a condition of purchasing any property, goods, or services". Consumers can revoke consent to "calls or text messages" by any reasonable method, and the request must be honored within ten business days.1247 CFR § 64.1200, Delivery restrictions (FCC TCPA rules) In practice: a separate, unticked SMS checkbox at checkout with its own wording, a STOP reply that works, and a log of every consent.
The rules are moving
Courts have recently revisited parts of the FCC's TCPA rules, including how some of them apply to text messages. The conservative course is the one above: written consent before any marketing text. Check with counsel before you change it, and remember that buyers in the EU or UK fall under separate consent rules.
Abandoned-checkout messages are the recovery part of the funnel: the email captured at step 3 makes them possible. Timing and content are covered in how to reduce cart abandonment, the confirmation itself in payment confirmation email, and SMS programs in SMS marketing for ecommerce.
Funnel math: a worked example
Revenue from a funnel is visitors × conversion rate × average order value, plus what the bump and the upsell add. Dividing by visitors gives revenue per visitor, the one number you can compare with your cost per click. The figures below are made up to show the calculation, not benchmarks.
| Line | Illustrative input | Result |
|---|---|---|
| Visitors from ads | 10,000 | |
| Checkout starts | 8% of visitors | 800 |
| Orders | 40% of checkouts | 320 (3.2% of visitors) |
| Main offer revenue | $45 per order | $14,400 |
| Order bump | 15% of orders take a $12 bump | 48 bumps, $576 |
| Post-purchase upsell | 10% of orders take a $30 upsell | 32 upsells, $960 |
| Total revenue | $15,936 | |
| Average order value | $15,936 ÷ 320 | $49.80 |
| Revenue per visitor | $15,936 ÷ 10,000 | $1.59 |
Fig. 3Which change is worth more?
- Checkout completion 40% → 44%
- 352 orders · $17,530 · +$1,594
- Bump take rate 15% → 20%
- 64 bumps · $16,128 · +$192
- Upsell take rate 10% → 12%
- 38 upsells on average · $16,128 · +$192
- Upsell refunded by 1 in 4 buyers
- −$240 on the base case, plus dispute risk
Illustrative record, not a benchmark.
fix the biggest ratio first
The lesson isn't in the numbers themselves. It's in the structure: a change at the checkout moves every order and every bump and upsell behind it, while a change to the bump moves only the bump. So work from the top ratio that's furthest from where you think it should be, and treat bumps and upsells as the last layer.
Two things the table hides. Refunds and disputes come later and subtract from the upsell line, so measure net revenue per visitor after 30 or 60 days. And the cost side (ad spend, product cost, shipping, payment fees) decides whether $1.59 per visitor is a profit. Our guide to increasing ecommerce conversion rates covers the levers step by step.
Measure each step: events and server-side tracking
Every step in the table at the top needs one event. Google publishes a list of recommended ecommerce events for GA4; using those names means GA4's ecommerce reports work without custom setup.1Google for Developers, Measure ecommerce (GA4)
| Funnel step | GA4 recommended event | Notes |
|---|---|---|
| Landing page viewed | page_view | Sent by the Google tag on each page load |
| Offer viewed | view_item | With item ID, price and currency |
| Added to cart (or offer chosen) | add_to_cart | In a single-offer funnel, often the same click as checkout |
| Checkout started | begin_checkout | The first step of the checkout; a coupon can be attached |
| Shipping entered | add_shipping_info | With shipping_tier |
| Payment entered | add_payment_info | With payment_type |
| Order paid (main offer + bump) | purchase | transaction_id, value, currency required in practice |
| Upsell accepted | purchase with its own transaction_id | Or a custom event; see the warning below |
| Refund | refund | With the original transaction_id |
Source: Google for Developers, Measure ecommerce.1Google for Developers, Measure ecommerce (GA4)
Give each upsell its own transaction ID
"Google Analytics deduplicates purchase events with the same transaction ID", and also groups all purchases sent with an empty one.2Google Analytics Help, Minimize duplicate key events with transaction IDs If the upsell is sent as a second purchase carrying the main order's ID, GA4 drops it. Use a separate ID (for example the order number with a suffix), or a custom upsell event, and keep the link to the main order in a parameter.
To see the funnel, GA4's funnel exploration lets you "define up to 10 steps". In a closed funnel, "users must enter the funnel in the first step"; in an open one they can enter at any step, which suits a funnel with several entry pages. It can also show the time elapsed between steps.3Google Analytics Help, Funnel exploration
Why the purchase should come from the server
A purchase event fired by the browser on the thank-you page misses every buyer who doesn't load that page, and every browser that blocks the tag. The fix is to send the purchase from your server, when the payment webhook arrives, in addition to the browser event.
Browser only
- Thank-you page loadsTag fires in the browser
- pixelAd platformGets the event, or not
Purchases lost when the page doesn't load or the tag is blocked
Browser + server
- Payment webhookOrder created on your server
- Conversions APIAd platformServer event matched with the browser event
Every paid order sent, duplicates removed by event ID
Each platform has its own way of doing it:
- Meta. The Conversions API connects data from your "server, website platform, mobile app, or CRM" to Meta.4Meta for Developers, Conversions API Meta recommends running it "alongside" the Pixel. To avoid counting a purchase twice, the browser's
eventIDmust match the server'sevent_id, and the event names must match; deduplication only applies to events received "within 48 hours" of the first one.5Meta for Developers, Handling duplicate Pixel and Conversions API events - Google Ads. Enhanced conversions send hashed first-party data captured at conversion (email, name, address or phone), hashed with SHA256 before it's sent, to improve conversion measurement.6Google Ads Help, About enhanced conversions
- Google Tag Manager server-side. A tagging server you control receives the events and decides where they go: "only you have access to the data in the server until you choose to send it elsewhere". Google recommends installing it on your first-party domain.7Google Tag Manager, An introduction to server-side tagging
Setup steps are in server-side tracking setup and the concepts in server-side tracking for ecommerce. The full GA4 event list with parameters is in GA4 ecommerce events.
The payment funnel inside the funnel
Between "checkout started" and "order created" sits a smaller funnel that most reports flatten into one step: payment entered, payment attempted, 3D Secure if the bank asks, approved or declined, order created. A buyer who abandons the form made a choice. A buyer who is declined wanted to pay.
- Checkout started, with device and country.
- Payment attempted, with method (card, wallet) and processor.
- 3D Secure shown, and its result.
- Approved or declined, with the decline code.
- Order created from the webhook, with the bump and the upsell attached.
Log these from your payment system, not from the browser. Count unique attempts, not retries.
Split that funnel by processor and by country, and declines stop hiding inside "checkout abandonment". What to do with them (retry rules, a second processor, alternative methods) is covered in payment acceptance rate, dynamic payment routing and alternative payment methods.
One system or stitched tools
Many funnels are built from separate tools: a page builder, a cart on another domain, a payment page from the processor, an upsell app, an email tool, tags on top. Each handoff is a place where the buyer can be redirected to another domain, where an event can be lost, and where the order data has to be copied.
| Stitched tools | One system for pages, checkout and upsells | |
|---|---|---|
| Domains the buyer crosses | Often two or three | One |
| Google destination check | Redirects to a different domain are a disapproval reason | One domain from ad to thank-you page |
| Purchase event | Fired by whichever tool shows the thank-you page | Fired once, from the order |
| Upsell charge | Depends on the upsell app reaching the stored card | Same checkout, same stored card |
| Switching a part | Easy: replace one tool | Harder: you depend on one vendor |
Neither is right by default. A brand testing its first offer can launch on stitched tools in a day. A brand spending heavily on ads usually feels the cost of every handoff first in its tracking, then in its upsells.
Test one step at a time
Once the funnel runs, test it the way you built it: one step at a time, starting with the biggest ratio from the math section.
Tests worth running
- Landing page headline that repeats the ad vs a new angle
- Short page vs long sales page for cold traffic
- Wallet buttons above vs below the card form
- Bump product A vs product B
- Upsell offer vs a cheaper downsell after a decline
Common mistakes
- Changing the page and the offer in the same test
- Measuring clicks instead of paid orders
- Calling a winner before a full week of traffic
- Counting upsell revenue without subtracting refunds
- Comparing results across different traffic sources
Split traffic per visitor, decide the metric before you start (orders per visitor or revenue per visitor), and check the result per traffic source and per device. More on method in what is A/B testing.
Building the funnel on Tagada
How Tagada helps
Checkout, order bumps, upsells and server-side tracking in one place
Tagada's checkout includes one-click upsells, order bumps, A/B tests, and Apple Pay and Google Pay. Purchases are tracked server-side for Meta, Google and TikTok. Subscriptions run with trials, billing cycles, dunning and automatic retries. Payments route across TagadaPay and processors such as Stripe, NMI and Airwallex, with one logic and a cascade to another processor when one is down or times out. It runs standalone or with Shopify, WooCommerce or a headless store. See pricing for plans. Tagada follows Visa and Mastercard rules and the laws that apply to payments.
Frequently asked questions
What are the steps to build an ecommerce sales funnel?
What is a payment funnel?
How do I collect payments inside a sales funnel without losing conversions?
How do I visualize payment funnel drop-off across providers?
Do I need consent to email and text funnel buyers?
What does a prompt-aligned shopping funnel look like?
Sources
Checked October 14, 2026- Google for Developers, Measure ecommerce (GA4)
- Google Analytics Help, Minimize duplicate key events with transaction IDs
- Google Analytics Help, Funnel exploration
- Meta for Developers, Conversions API
- Meta for Developers, Handling duplicate Pixel and Conversions API events
- Google Ads Help, About enhanced conversions
- Google Tag Manager, An introduction to server-side tagging
- Meta Transparency Center, Introduction to the Advertising Standards
- Google Ads Policy Help, Destination requirements
- Google Ads Policy Help, Misrepresentation
- FTC, CAN-SPAM Act: A Compliance Guide for Business
- 47 CFR § 64.1200, Delivery restrictions (FCC TCPA rules)
- Shopify Dev Docs, Post-purchase product offers
- Stripe Docs, Save a customer's payment method when they use it for a payment
- Visa Core Rules and Visa Product and Service Rules, April 18, 2026
Tagada
One checkout for the order bump, the upsell and the tracking
Funnels, one-click upsells, subscription billing and payment routing, on one customer record.
- 01Create your free account
- 02Connect your store or build a checkout
- 03Launch funnels, upsells and subscriptions
