You've been running Google Ads campaigns for months. Revenue is up. Conversions are climbing. Everyone's happy.
But are you actually profitable?
Here's the uncomfortable truth that haunts most ecommerce businesses: revenue is a vanity metric. You can generate millions in revenue while losing money on every sale. And if you're optimizing for revenue—or even traditional ROAS—you're basically flying blind.
The future of Google Ads optimization isn't about driving more revenue. It's about driving more profit.
In this post I'll walk you through a practical setup that actually works in the real world: Channable for product data, Firestore as the live source of truth, and GTM Server-Side to pass the right profit values back to Google Ads.
The Revenue Optimization Trap
Let me paint a picture you've probably seen before.
You launch a Google Ads campaign. You set a target ROAS of 4x. After three months, you're hitting it. Revenue is growing 30% year-over-year. The reports look great, the client is happy, everyone's celebrating.
But then someone pulls the actual profit data.
And it turns out the campaigns running at 6x ROAS are barely breaking even—because those products have razor-thin margins. Meanwhile, the campaigns at 2.5x ROAS? Those are the real cash cows. They're selling products with 45% margins and reasonable shipping costs.
By optimizing for revenue or simple ROAS, you've been subsidizing your worst-performing products with your best ones. This isn't hypothetical. I've seen this happen more times than I can count.
Why ROAS Misleads You
ROAS calculates revenue per dollar of ad spend. Simple formula: revenue divided by ad spend. A 4x ROAS means you generate $4 for every $1 you spend on ads.
The problem? ROAS tells you absolutely nothing about what it actually costs you to deliver those products. It ignores product cost, shipping, payment processing fees, returns, platform fees—basically everything that determines whether you actually made money.
Here's a quick example that makes this painfully clear:
Campaign A has the "better" ROAS but is actually losing money. Campaign B looks weak on paper but generates real profit. If you'd been blindly following ROAS, you'd have doubled down on Campaign A and cut Campaign B. Exactly the wrong move.
That's the revenue optimization trap—and it catches way more brands than people like to admit.
So What Is Profit Tracking, Exactly?
Profit tracking is straightforward in concept: instead of measuring revenue, you measure the actual profit generated by your advertising. Revenue minus all costs. Not estimated costs, not "close enough" costs—actual costs.
That means subtracting cost of goods sold, shipping, payment processing fees, marketplace or platform fees, return costs, and ad spend. What's left is your real profit. And your true profit margin is that profit divided by revenue.
Revenue vs. Profit: What Actually Matters
When you switch from revenue optimization to profit optimization, the questions change entirely. You stop asking "how can we generate more revenue?" and start asking "how can we generate more profit?" And those two questions lead to very different decisions.
What Changes When You Track Profit
Profit tracking sounds like an "advanced" thing, but honestly, it should be standard practice. It's often the difference between healthy growth and quietly burning margin while your dashboards show green.
Here's what actually shifts.
You kill the campaigns that look like winners but aren't. Without profit data, you'll happily keep pouring money into campaigns that generate revenue but destroy margins. With profit data, you spot these within weeks instead of finding out at year-end.
You scale what actually earns. Revenue optimization tells you to scale what sells. Profit optimization tells you to scale what earns. These aren't always the same thing. You'll find hidden champions—campaigns with moderate revenue but exceptional margins—that deserve more budget than you're giving them.
You make smarter product decisions. Which products deserve more ad spend? Which ones are actually dragging you down? Revenue data can't answer this. Profit data can. You'll spot the high-margin products that deserve more love and the low-margin ones that are quietly bleeding your budget.
You negotiate from a stronger position. When you can show suppliers actual profit data instead of just top-line revenue, your conversations change. "This product generates $X profit after all costs" hits differently than "this product generates $X revenue."
You build something sustainable. Revenue growth without profit growth is just burning cash faster. Profit-first companies survive downturns, fund growth, and build lasting value. Revenue-first companies look great right up until they don't.
The Technical Architecture: Channable + Firebase + GTM Server-Side
Now for the good stuff. Here's how to build a real-time profit tracking system that calculates actual profit per order and sends it back to Google Ads.
Channable manages your product catalog and acts as the source of truth for product costs, shipping, margins, and return rates. It connects to your ecommerce platform and keeps everything in sync. What makes it particularly useful here is its rule-based transformations and easy integration with Firebase—you can push cost data updates automatically.
Firebase Firestore stores that product cost data in a way your tracking system can access in real-time. Think of it as a fast, always-available lookup table. When a conversion happens, Firestore knows exactly what each product costs you. Its NoSQL structure handles complex product hierarchies well, and the free tier is more than enough for most businesses starting out.
GTM Server-Side ties it all together. When a purchase happens, your server-side container receives the conversion event, looks up product costs in Firestore, calculates the actual profit, and sends that profit value back to Google Ads instead of revenue. That's the key shift—Google Ads starts optimizing for profit rather than top-line revenue.
The whole flow works like this: user clicks your ad, makes a purchase, GTM Server-Side picks up the conversion, enriches it with real cost data from Firestore, calculates profit, and sends that number to Google Ads. From that point on, Google's algorithms are working toward the metric that actually matters for your business.
Getting Started: What to Do First
You don't need to build a perfect system on day one. In fact, trying to boil the ocean is the number one reason people never ship this. Here's a practical path.
1. Start with clean product data
Before anything else, get your product costs right. No profit tracking system survives bad data. You need accurate cost of goods sold per product, real shipping costs (use your last 100 orders to calculate averages), historical return rates, and your payment processing fees. Don't guess—pull actual numbers from your supplier invoices and shipping provider.
2. Set up Firebase Firestore
Create a Firebase project, enable Firestore, and build out a simple product data structure. Each product document should contain cost, shipping cost, payment fee rates, and return rate. You'll also want an orders collection that stores calculated profit per conversion.
3. Connect Channable to Firestore
Sync your product catalog from Channable into Firestore. This can be done through webhooks, Google Sheets integration, or a Cloud Function—whatever fits your stack. The important thing is that when product costs change, Firestore stays current.
4. Configure GTM Server-Side to enrich conversions
Set up your server-side container to receive purchase events, look up product costs from Firestore, calculate the actual profit, and pass that profit value back to Google Ads as the conversion value. This is where the magic happens—you're replacing a revenue signal with a profit signal.
5. Validate and iterate
Run it for 2–4 weeks alongside your existing setup. Compare the profit numbers with what your accounting system shows. Tune the cost data where needed. Once you're confident in the numbers, switch your campaigns over to optimize against profit.
Common questions
Can I do this without GTM Server-Side?
Technically yes, but it’s harder and less reliable. Client-side tracking gets blocked by ad blockers and Safari ITP. Server-side gives you cleaner data and better privacy compliance. If you’re serious about this, go server-side.
Does this work with Smart Bidding?
Google’s Smart Bidding technically uses revenue signals, not profit. But if your conversion values already reflect profit, Smart Bidding effectively optimizes for profit. You’re just feeding it a better signal.
How often should product costs be updated?
Monthly at minimum. Ideally you sync from your ERP or accounting system automatically. Cost changes directly impact your profit calculations, so stale data means stale decisions.
What’s a healthy profit margin for ecommerce?
It depends on your vertical. Luxury goods typically run 40–60%, consumer electronics 20–35%, apparel 40–55%, FMCG 15–25%, and furniture 25–40%. Anything consistently below 15% deserves a hard look at whether you should be advertising that product at all.
Can I track profit per keyword?
Yes, if you link conversions to keywords through proper UTM tagging. GTM Server-Side can enrich conversion data with keyword information. For very granular keyword-level tracking you’ll also need solid campaign structure and potentially call tracking integration.
That's it. You don't need a perfect system. You need a working system that gives you better signal than what you have today—and this setup delivers exactly that.
Need help implementing profit tracking? We specialize in building data-driven advertising infrastructure that drives real profit—not vanity metrics. Reach out to us to become more profitable with advertising.