Maple Leaf
AI Consultancy, Automotive Marketing

Measuring SEO ROI With GA4: Putting a Rand Figure on Organic Search

A dealership marketing manager reviewing an analytics dashboard on a monitor in a glass-walled showroom office

About three minutes into Measuring SEO ROI With GA4 & Looker Studio at NADA Show 2026, Jasmine Goodsaid put up a slide called “Some SEO Tools”. There are four of them. Three are what you would expect: Google Search Console, marked Free, with a red cross against Cost Metrics. SEMrush, marked Freemium, with a half tick. Ahrefs, marked Paid, with a green tick.

The fourth is a still from Severance, captioned “The work is mysterious and important”. It is marked Paid, and against Cost Metrics there is a question mark.

That is the agency. That is the joke, and it lands because it is the honest answer. You are paying a monthly retainer to somebody whose reporting you cannot reconcile against a cost. Nothing else in the session is as sharp as that one slide, and it does not appear anywhere in the written handout.

Goodsaid works at Dealers United, the same firm behind the session we covered in 6 Marketing Mistakes and How AI Solves Them, and the two pair neatly: that one diagnoses what dealers get wrong, this one hands you the instrument to prove it.

The session is really about one equation

Strip away the twenty-eight minutes of Google Analytics 4 menu navigation and what Goodsaid is actually handing over is arithmetic so simple it is almost embarrassing:

Your monthly SEO spend, divided by the number of times somebody did the thing you care about.

That is it. Cost per lead form. Cost per click to call. Cost per vehicle page view. The entire dashboard she builds on stage is that one division, repeated across five tiles.

The reason it takes twenty-eight minutes is that GA4 will not do it for you. Google Ads knows what you spent, so it can show you a cost per conversion without being asked. Organic search has no spend field, because Google is not the one charging you. Your agency is. So the number has to be carried into the reporting by hand, and almost nobody bothers, which is why the fourth SEO tool has a question mark next to it.

Step one: success is an event, not a ranking

The session opens by refusing to treat position one as an outcome. The Key Website Metrics slide lists six things worth counting:

  • Click to call
  • Lead forms
  • Vehicle detail page views
  • Chat box leads
  • Call to action button clicks
  • Search results page appearances

Note what is absent: rankings, impressions, domain authority, and every other number an agency can improve without your phone ringing. That omission sits well alongside our piece on whether AI search visibility is worth paying for separately, which reaches much the same conclusion from the opposite direction. The examples on the What Is SEO slide are local intent searches, the American originals being things like “car dealer sarasota” and “lifted trucks bradenton”. The South African equivalents are the ones your buyers actually type: “bakkie dealers Pretoria”, “Ranger double cab Centurion”, “approved used Polo Durban North”. Those searches either produce a click to call or they do not, and that is the whole test.

Step two: check the events exist at all

Here is where the method meets its biggest South African obstacle, and the session cannot help you with it because the problem does not exist in the market it was written for.

The whole build rests on the Automotive Standards Council event names. Goodsaid uses three throughout:

  • asc_item_pageview for a vehicle page view
  • asc_form_submission for a completed lead form
  • asc_click_to_call for a phone tap

She even runs an audience poll on it: “Do your GA4 events follow Automotive Standards Council standards?” In an American room, most hands go up, because the major website providers there emit these events by default.

The Automotive Standards Council is a North American body. A South African dealer site is quite likely running on a platform that has never heard of it, firing generic form_submit and click events, or nothing at all beyond page views. Before you follow a single step of this session, open GA4, go to Admin, then Data display, then Events, and look at what is actually landing. If there is no asc_ prefix anywhere in that list, your first job is not building a dashboard. It is getting your web provider to fire the events, and that is a conversation with a quote attached.

This is not a reason to skip the method. It is a reason to sequence it properly, and to know that the vendor who tells you this is a five minute job is the one with the question mark next to their cost metrics.

Step three: separating new from used, and the trick worth stealing

A vehicle page view on its own is not much use, because a new car lead and a used car lead are different businesses with different margins. So the session splits the event in two.

The new vehicle version is straightforward. Create a custom event, match on event_name equals asc_item_pageview, and add a second condition of item_condition equals new.

The used version is the clever one, and the handout does not explain why. On stage the condition she sets is not item_condition equals used. It is item_condition does not contain new, with case ignored. Her spoken framing on the slide is “And it’s for a Used vehicle. Vehicle Condition is Used (or CPO)”.

The reason matters. If you match on “used” you will silently drop every certified pre-owned unit, because that page reports its condition as certified, not used. Matching on “not new” catches used and certified in one event, and it will keep catching them when somebody adds a new condition value next year. In South Africa that logic covers more ground still, because our sites variously label stock as used, pre-owned, approved used, certified, and demo. A demo unit is emphatically not new stock, and an equals match would lose the lot of it. Match on “not new” and you are covered.

Step four: give the event a value so it can be counted

This is the step people miss, and the session is emphatic about it. A custom event by itself gives you a count of occurrences, but not something you can divide a budget by inside a report.

So under Admin, Data display, Events, Custom Configurations, Modifications, you add a parameter named after the event itself and give it a value of 1. On screen: parameter used_vdp_view, new value 1. Every time the event fires it now carries a number, and a number is something Looker Studio can do arithmetic with.

Then you declare those parameters as custom dimensions and custom metrics under Custom Definitions, which is what makes them selectable in a report at all. The session suggests item_price, item_year and item_model as dimensions, and the event counts as metrics.

One practical gotcha appears only in the recording. When you edit the metrics on a GA4 exploration you hit a ceiling of ten, and the interface will not tell you politely. The slide simply says “Remove metrics before adding”. Take out what you do not need before you try to add what you do.

Step five: the budget hack that makes the whole thing work

This is the single most valuable thirty seconds in the session, and it is not in the handout in any usable form.

Looker Studio needs your monthly SEO spend as a metric so it can divide by it. But your spend is a fixed number you know and GA4 does not, and Looker will not accept a bare constant where a metric belongs. So Goodsaid creates a calculated field with this formula:

(your budget) + (Event Count * 0)

Multiplying event count by zero contributes nothing to the total, but it makes the expression legally a metric as far as Looker is concerned. Add your budget to it and you have a constant that behaves like a metric, aggregates correctly, and survives filtering. It is a workaround rather than a feature, which is exactly why nobody discovers it on their own.

The slide is insistent on one detail, in large type: the Field ID must be Monthly_Budget. Not the field name, which you can call whatever you like, but the ID underneath it. That is because her downloadable template references that exact ID, and if yours differs the template’s tiles break.

The currency trap nobody in that room had to think about

When she opens the field settings to format the cost figures, the recording shows the dropdown reading “Currency USD, US Dollar ($)”. For the room in Las Vegas that is the default and nobody looks twice.

For you it is a trap with two doors, and both need closing:

  • In GA4, under Admin and Property Settings, set the reporting currency to South African Rand. If this is left on US Dollar, any revenue or value you send GA4 gets converted at Google’s daily rate and stored as dollars, and you will be looking at a number that is neither your rands nor a useful dollar figure.
  • In Looker Studio, set the calculated field’s type to Currency, ZAR. This one is only cosmetic, but a dashboard that prints your cost per lead with a dollar sign in front of it will be quietly mistrusted by every manager who looks at it, and rightly so.

Set the property currency before you start collecting, not after. GA4 does not retrospectively re-convert historical data when you change it.

What the finished dashboard actually says

The demonstration dashboard in the session runs on a month of real data from an American dealership, with a monthly SEO budget of 300 dollars. Converted at 16.21 rand to the dollar, the mid-market rate on 17 August 2026, that is a retainer of about R4,863, and the month’s organic activity was:

ActionCountCost per action
New vehicle page views6,809R0.71
Used vehicle page views1,606R3.03
Chat box leads576R8.44
Lead form submissions215R22.62
Click to call159R30.58

We checked that arithmetic against the tiles shown on screen and it reconciles: the dashboard’s own cost figures are the budget divided by each count, to the cent. There is no attribution model hiding underneath, no weighting, no machine learning. It is division.

A second dashboard later in the session runs a heavier budget of 3,005 dollars, about R48,711, and produces a cost per click to call of R412.87, a cost per lead form of R267.63, a cost per chat lead of R102.29, a cost per service page view of R57.38 and a cost per vehicle page view of R6.65. Same equation, bigger denominator, wildly different answers. Which is the point: these numbers mean nothing in isolation and everything in a trend line.

How to read it without fooling yourself

Three cautions, because a dashboard this easy to build is also easy to misuse.

The cheap number is the least useful one. A cost per vehicle page view of 71 cents looks wonderful next to R30.58 for a phone call, and an agency under pressure will point at it. But page views are the easiest metric on the list to inflate, and the phone call is the one attached to a deal. Judge the expensive numbers. They are expensive because they are scarce, and they are scarce because they matter.

The budget figure is whatever you typed. The calculated field does not read your invoices. If you enter your agency retainer but leave out the content writer, the review platform and the hours your own marketing person spends on it, every cost per action on the board is flattering and wrong. Decide what counts as SEO spend once, write it down, and use the same definition every month.

This measures cost, not return. The session is titled Measuring SEO ROI, and it does not measure ROI. It measures cost per action. Getting from a R22.62 lead form to a return figure needs your close rate and your average gross, and neither of those lives in GA4. That is not a criticism of the method, but it does mean the last step is yours: take the cost per lead into the same conversation as your sold units, or the dashboard becomes another number nobody acts on. Our piece on connecting customer data to revenue covers the join that has to happen next.

The POPIA layer

Nothing in an American analytics session addresses this, so it has to be added here rather than translated.

The moment you enrich GA4 events with vehicle price, VIN and model alongside a user identifier, you are processing personal information under the Protection of Personal Information Act, and a VIN tied to a browsing session is about as identifying as it gets. Three practical consequences:

  • You need a lawful basis and a working consent mechanism on the site before the events fire, not a cookie banner that sets everything regardless of what the visitor clicks.
  • Google’s servers are outside South Africa, so section 72 of the Act and its conditions on cross-border transfer are engaged. This is ordinary and manageable, but it belongs in your privacy notice explicitly.
  • Never send an email address, phone number or ID number into GA4 as an event parameter. It breaches Google’s own terms as well as your POPIA position, and it is the single most common way dealer sites get this wrong.

None of this is legal advice, and your information officer should see the event schema before it goes live.

Where to start this week

In order, and the first step is the one that tells you whether the rest is even available to you:

  • Open GA4, Admin, Data display, Events, and photograph the list. If nothing is prefixed asc_, stop and book the conversation with your website provider.
  • Set the property’s reporting currency to South African Rand before anything else.
  • Build two custom events, new and used, using “does not contain new” for the used one.
  • Modify each to carry a parameter equal to its own name with a value of 1, then declare them as custom metrics.
  • In Looker Studio, add the calculated field with the Field ID Monthly_Budget, formatted as ZAR currency, and divide it by each event count.

Give it two months before you draw any conclusion. One month is a number, two is a direction, and the direction is the only part your general manager should be asked to care about.

The value of this session is not the dashboard. It is that once the dashboard exists, the fourth SEO tool stops being mysterious, and the conversation with whoever sends you that monthly invoice changes permanently.

Source

  • Measuring SEO ROI With GA4 & Looker Studio, presented by Jasmine Goodsaid, Analytics and Reporting Lead at Dealers United, at NADA Show 2026, Las Vegas, 3 to 6 February 2026. Reviewed from the session handout and the full 27 minute recording.
  • The recording carries no audio track, so the slides and on-screen software walkthrough were read in full but the spoken commentary was not available to us. Where we quote the presenter it is text shown on a slide.
  • Unusually for this series, the deck makes no external statistical claims, so there was nothing to fact check. Every figure above is demonstration data from the presenter’s own dashboards, and it is illustrative rather than a benchmark. Do not treat R22.62 as a target cost per lead.
  • Dollar figures were converted at 16.21 rand to the dollar, the mid-market rate on 17 August 2026. Cost per action figures were recalculated from the converted budget rather than converted individually, so they reconcile against the event counts shown on screen.
  • The South African material is ours and not the presenter’s: the Automotive Standards Council availability problem, the demo and approved-used condition values, the GA4 and Looker currency settings, the local search examples, and the POPIA section including cross-border transfer and the warning on personal identifiers. Nothing here is legal or compliance advice.
  • The demonstration dashboards displayed live analytics for named American dealerships. We have described the technique and the arithmetic without republishing those dealerships’ traffic data.

Want to know where you rank on Google?

Get a free, no-nonsense visibility audit for your business.

Get my free audit →

Chat with us