How to see your Google Ads cost per buyer
Google Ads cost per buyer divides spend by the people who paid, not by the conversions Google counts. How MIRA FIVE joins spend to visits and shows ROAS.
MIRA FIVE shows which channel and Google Ads campaign brought each buyer to your shop, and what each cost.
Sample data: Google Ads over the last 30 days: €312.40 spent on 1,204 clicks brought 41 buyers and €2,870 in revenue, a return of 9.2× and €7.62 per buyer. Shopping · merino brought 19 buyers, Brand search 17 at 14.7×, Performance Max 5. Google Search sent 448 clicks; the top query was “merino wool sweater”.
Acquisition counts people and buyers for nine channels and every campaign in them, by first or last touch. In the sample shop, Organic search brought 24 buyers and Direct 22 in 30 days. Every number opens the people behind it.
Connect Google Ads, and spend arrives every day, joined to the visits it paid for. Each campaign shows cost per buyer and ROAS, counted from your own paid orders. In the sample shop, €312.40 brought 41 buyers, €7.62 each.
A funnel counts the people who reached each step from product page to paid order. In the sample shop, 812 viewed a product, 391 added to cart, 231 started checkout and 138 paid. Each step opens the people who stopped there.
The default setup counts visits, channels and paid orders without cookies. Buyers and cost per buyer come from visitors who agreed, and the dashboard shows their share. Hosting is one part of compliance; the rest depends on what you collect and why.
Three pieces: the script in your theme's head, the consent line from your banner, and the paid order. There is no plugin for Shopify, Shopware or WooCommerce, so the lines go into the theme and the order confirmation page, or into your server. On Shopify the order status page no longer runs your own scripts, so there the paid order comes from a server that receives Shopify's order webhook. The setup page lists who does what, ready to send to your developer.
Put this line on the order confirmation page; your template fills in the total and currency. With consent, the order lands on the person who paid. For exact counts, send it from your server instead: a server event arrives past ad blockers and closed tabs, and the order id as idempotency key makes a repeated webhook count once. On Shopify the order status page no longer runs your own scripts, so there the paid order comes from a server that receives Shopify's order webhook.
The code for order-confirmation.html: <script> mirafive('track', 'order_paid', { revenue: 328, currency: 'EUR' }) </script>
Emil Becker was first seen in the sample shop, Acme Shop, 11 days ago, through an Instagram ad. Acquisition files that visit under Paid social. A few days later he clicked the newsletter, a visit under Email. Then he searched Google, came back through Organic search and paid €328.
His page under People shows the three visits in order, with the pages he saw and the order at the end. First touch credits the purchase to the Instagram ad, last touch to the Google search. First touch shows what found him; last touch shows what brought him back. First touch vs. last touch explains which view answers which question.
Emil agreed on the banner, so the script kept an id in his browser’s localStorage and knew him on every return. For a visitor who declines, nothing is sent unless your pages count decliners without consent; then each visit counts on its own, and an order sent from the browser counts as an event without a person. That is why buyers per channel cover the people who agreed.
A paid order from your server lands on the person when the page passed the same customer id to
identify, for example at sign-in. Without that id, the line on the confirmation page is what ties the
order to the person.
After the first week, open Acquisition › Ads and compare cost per buyer across campaigns. In the sample shop, Performance Max costs €15.32 per buyer, twice the average, and is the campaign to question first. How to see your Google Ads cost per buyer walks through the screen.
Google Ads cost per buyer divides spend by the people who paid, not by the conversions Google counts. How MIRA FIVE joins spend to visits and shows ROAS.
Build a conversion funnel of two to six steps, see where buyers drop out between them, and open the people who stopped. Counted by person or by visit.
Track traffic from ChatGPT, Perplexity, Claude, Gemini and Copilot as a channel of its own, and see which of those visitors went on to buy.
First touch credits the channel that found a customer, last touch the one that brought them back. When to use which, with one worked example.