Reach a defensible end state in which real mobile landing sessions can reach the phone dialer quickly, strictly more than 50% of spend is attributable to location-specific keywords, and a daily evidence ledger exposes a shortage of local urgent calls well before day 14.
Verify every active final URL and representative mobile/desktop paths for response, redirects, content integrity, phone-widget visibility, tap behavior without completing a call, accessibility blockers, and performance risks using screenshots and repeatable checks.
Must not place a real call or expose personal data. Must not change or deploy the production site, consent layer, phone widget, or tracking.
Calculate keyword-level and campaign-level spend so location-specific terms account for strictly more than 50% of the measured period, with an explicit classification table; define a daily ledger joining spend, impressions, ad clicks, widget-click conversions, and privacy-safe connected/local/urgent call outcomes.
Must not classify a keyword as location-specific from campaign name alone. Must not invent client response-time or caller-quality facts, and must not recommend more spend before delivery and measurement integrity are separated.
Each verdict includes evidence, a negative/failure-path check, an owner, and an intervention trigger before day 14; scenario 15 can pass only with a reproducible spend share above 50%.
Must not claim a visually appealing page converts well without behavioral evidence. Must not treat widget clicks as proof of connected local urgent calls.
Audit status: DONE for the authorized read-only audit and parent handoff. The corrected target outcome is not marked green: current location-specific spend is 9.898015765671%, widget-only click volume is not verifiable from the current event schema, and nearby urgent call quality has no separate outcome evidence.
Corrected goal carried forward: strictly more than 50% of spend on location-specific keywords, at least five verified Google-Ads-originated phone-widget clicks, and separately evidenced nearby urgent call quality. A widget click is not a connected call, and a connected call is not automatically nearby or urgent.
Scope and identity: Google Ads customer 4891907898, Csupi Autómentés, HUF, Europe/Budapest, auto-tagging enabled. Active target scope is 21 campaigns with the current EXACT | structure. Measurement property is GA4 266986146 and the site container is GTM-TH67S8M. The parent is task 01a0a269-78d2-7191-9709-7009b8d01715 on local.
Safety boundary: No Ads, budget, campaign, keyword, ad, GTM, GA4, consent, website, or deployment mutation was issued. No paid ad was clicked, no fake gclid was created, no synthetic conversion was sent, no form was submitted, no real call was placed, no caller PII was read, and no private evidence was published.
Fresh read-only URL probe at 2026-09-17T11:38:20Z (13:38:20 CEST) used curl -sS -L with the exact active URL inventory from the Ads readback. Result: 21/21 HTTP 200, 21/21 final paths unchanged, and no redirect observed. Every response had a title, an H1, one GTM-TH67S8M marker, one tracking-consent.js, one phone-reveal.js, one widget-phone, and at least one gfn-track-phone phone link. The response body sizes were 47,700 to 54,808 bytes and the observed HTML response times were 0.206 to 0.423 seconds. This is a response check, not a Core Web Vitals lab measurement.
| # | Active campaign and ID | RSA ad ID | Exact final URL | Probe |
|---|---|---|---|---|
| 1 | EXACT | Generic | Budakeszi 40 km · 16650800567 | 824788626478 | https://csupiautomentes.hu/?utm_source=google&utm_medium=cpc&utm_campaign=Automentes-Search-O&utm_content=altalanos&utm_term=nonbrand | 200 · same path · all markers |
| 2 | EXACT | Buda | Primary · 23974835198 | 824788626418 | https://csupiautomentes.hu/automentes-buda?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Buda_Search&utm_content=buda&utm_term=nonbrand | 200 · same path · all markers |
| 3 | EXACT | Érd | Primary · 23974835201 | 824788626421 | https://csupiautomentes.hu/automentes-erd?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Erd_Search&utm_content=erd&utm_term=nonbrand | 200 · same path · all markers |
| 4 | EXACT | M31 | Primary · 24246214458 | 824788626451 | https://csupiautomentes.hu/automentes-m31?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Autopalyak_Search&utm_content=autopalya-M31&utm_term=nonbrand | 200 · same path · all markers |
| 5 | EXACT | M7 | Primary · 24257365147 | 824788626454 | https://csupiautomentes.hu/automentes-m7?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Autopalyak_Search&utm_content=autopalya-M7&utm_term=nonbrand | 200 · same path · all markers |
| 6 | EXACT | Biatorbágy | Secondary · 24257365156 | 824788626463 | https://csupiautomentes.hu/automento-biatorbagy?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_biatorbagy_Search&utm_content=biatorbagy&utm_term=nonbrand | 200 · same path · all markers |
| 7 | EXACT | Budakeszi | Primary · 24257365150 | 824788626457 | https://csupiautomentes.hu/automento-budakeszi?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_budakeszi_Search&utm_content=budakeszi&utm_term=nonbrand | 200 · same path · all markers |
| 8 | EXACT | Budaörs | Primary · 23974835216 | 824788626436 | https://csupiautomentes.hu/automento-budaors?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Budaors_Search&utm_content=budaors&utm_term=nonbrand | 200 · same path · all markers |
| 9 | EXACT | Csepel | Primary · 24257365153 | 824788626460 | https://csupiautomentes.hu/automento-csepel?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_csepel_Search&utm_content=csepel&utm_term=nonbrand | 200 · same path · all markers |
| 10 | EXACT | Diósd | Primary · 23974835204 | 824788626424 | https://csupiautomentes.hu/automento-diosd?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Diosd_Search&utm_content=diosd&utm_term=nonbrand | 200 · same path · all markers |
| 11 | EXACT | M0 | Primary · 24246214449 | 824788626439 | https://csupiautomentes.hu/automento-m0?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_m0_Search&utm_content=autopalya-M0&utm_term=nonbrand | 200 · same path · all markers |
| 12 | EXACT | M1 | Primary · 24246214452 | 824788626442 | https://csupiautomentes.hu/automento-m1?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_m1_Search&utm_content=autopalya-M1&utm_term=nonbrand | 200 · same path · all markers |
| 13 | EXACT | M5 | Primary · 23979397390 | 824788626445 | https://csupiautomentes.hu/automento-m5?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Autopalyak_Search&utm_content=autopalya-M5&utm_term=nonbrand | 200 · same path · all markers |
| 14 | EXACT | M6 | Primary · 24246214455 | 824788626448 | https://csupiautomentes.hu/automento-m6?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_m6_Search&utm_content=autopalya-M6&utm_term=nonbrand | 200 · same path · all markers |
| 15 | EXACT | Piliscsaba | Primary · 24257365162 | 824788626469 | https://csupiautomentes.hu/automento-piliscsaba?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_piliscsaba_Search&utm_content=piliscsaba&utm_term=nonbrand | 200 · same path · all markers |
| 16 | EXACT | Pilisvörösvár | Primary · 24257365159 | 824788626466 | https://csupiautomentes.hu/automento-pilisvorosvar?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_pilisvorosvar_Search&utm_content=pilisvorosvar&utm_term=nonbrand | 200 · same path · all markers |
| 17 | EXACT | Pomáz | Primary · 23974835207 | 824788626427 | https://csupiautomentes.hu/automento-pomaz?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Pomaz_Search&utm_content=pomaz&utm_term=nonbrand | 200 · same path · all markers |
| 18 | EXACT | Solymár | Primary · 23974835213 | 824788626433 | https://csupiautomentes.hu/automento-solymar?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Solymar_Search&utm_content=solymar&utm_term=nonbrand | 200 · same path · all markers |
| 19 | EXACT | Szentendre | Primary · 23974835210 | 824788626430 | https://csupiautomentes.hu/automento-szentendre?utm_source=google&utm_medium=cpc&utm_campaign=2606_Automentes_Szentendre_Search&utm_content=szentendre&utm_term=nonbrand | 200 · same path · all markers |
| 20 | EXACT | Törökbálint | Primary · 24257365168 | 824788626475 | https://csupiautomentes.hu/automento-torokbalint?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_torokbalint_Search&utm_content=torokbalint&utm_term=nonbrand | 200 · same path · all markers |
| 21 | EXACT | Zsámbék | Primary · 24257365165 | 824788626472 | https://csupiautomentes.hu/automento-zsambek?utm_source=google&utm_medium=cpc&utm_campaign=EXACT_zsambek_Search&utm_content=zsambek&utm_term=nonbrand | 200 · same path · all markers |
| Path and viewport | Repeatable read-only result | Screenshot and limit |
|---|---|---|
| Fresh direct homepage, desktop default 1747 × 1044 | phone-reveal-ready, H1 AUTÓMENTÉS, top business number visible, 10 visible gfn-track-phone tel links, floating widget visible at 66 × 66 px, no horizontal overflow. | CUA screenshot captured during this run. No phone link was clicked. |
| Fresh direct homepage, mobile 390 × 900 | Top business number and hero call-to-action visible, menu button present, floating widget visible at 62 × 62 px near the lower-right, document scroll width 375 px, no horizontal overflow. | CUA screenshot captured during this run. This proves rendered reachability, not a real paid interaction. |
/automento-budakeszi, mobile 390 × 900 | H1 AUTÓMENTÉS BUDAKESZI, top business number visible, widget href=tel:+36706262777, widget aria label present, scroll width 375 px, no horizontal overflow. | CUA screenshot captured during this run. Representative browser console returned zero error or warning entries. |
Homepage with ?utm_medium=cpc, mobile 390 × 900 | Paid-session class phone-reveal-paid phone-reveal-ready, masked number plus visible Szám mutatása controls, widget visible, five visible reveal buttons, 10 tel links, no horizontal overflow. | Safe paid-path screenshot captured without a gclid and without clicking the page. No synthetic conversion was created. |
The paid-path reveal control is backed by the live phone-reveal.js source, which calls event.preventDefault() before reveal and copy, while retaining the tel: href and gfn-track-phone class. Because that retained class is intentionally observed by GTM, the control itself was not clicked. The live tap-to-dial path therefore remains an explicitly unperformed behavioral check, not a false pass.
| Failure path | Read-only result | Interpretation |
|---|---|---|
Historical extensionless mismatch candidates /automentes-diosd, /automentes-pomaz, and /automentes-budakeszi | HTTP 404, no redirect, and none is used by the 21 active final URLs. | Stale path is exposed as a hard failure if reintroduced. Current active inventory is not using it. |
Unknown path /automento-fm04-nonexistent | HTTP 404, no redirect. | Negative probe behaved as an explicit missing-page response, not as a silent content fallback. |
| Paid masking and consent surface | Masked state and cookie-settings control rendered without obscuring the floating widget. No consent click or phone click was used. | Presentation friction was not observed in this state. Consent-to-attribution and tap telemetry remain unproved. |
| Browser runtime failure | Representative Budakeszi mobile CUA console read returned an empty error/warning list. | No console failure was observed in that representative path. This does not replace resource-level monitoring or a lab performance run. |
Scenario 9 verdict: PREVENTED at the checked technical layer. All 21 active URLs responded with intact marker content, and representative direct, paid-state, desktop, and mobile paths rendered the phone route without overflow or console errors. Residual per-page interaction and performance risk is UNKNOWN because a real paid session and lab performance trace were not permitted.
Scenario 14 verdict: PREVENTED for observed UI visibility, with the five-click target still UNKNOWN. The widget is visible and labelled on desktop and mobile, the paid masked state exposes a clear reveal control, and the mobile layout has no overflow. No live tap was performed, and the current event model does not isolate the floating widget, so this is not conversion or call-quality proof.
Fresh Google Ads API readback covered customer 4891907898, active target campaign IDs only, and the closed customer-timezone period 2026-08-18 through 2026-09-16. The scope query required campaign.status = ENABLED and the 21 current target IDs. It did not filter keyword status, so cost from a criterion later paused or removed during the period was not silently dropped. Cost is metrics.cost_micros / 1,000,000.
| Campaign-level reconciliation | Spend HUF | Impressions | Ads clicks |
|---|---|---|---|
EXACT | Generic | Budakeszi 40 km · 16650800567 | 125,693.62 | 2,485 | 180 |
EXACT | Buda | Primary · 23974835198 | 2,548.49 | 2 | 1 |
EXACT | Pomáz | Primary · 23974835207 | 3,025.80 | 2 | 1 |
EXACT | Szentendre | Primary · 23974835210 | 1,076.35 | 7 | 1 |
EXACT | M5 | Primary · 23979397390 | 618.06 | 10 | 1 |
| Other 16 active target campaigns | 0.00 | Not used for the spend sum | Not used for the spend sum |
| Active target total | 132,962.32 | 2,506 | 184 |
The keyword classifier normalizes case and Hungarian accents, tokenizes the keyword text, and marks a row location-specific only when the keyword itself contains one of these explicit tokens: biatorbagy, budakeszi, budaors, buda, csepel, diosd, erd, pomaz, szentendre, solymar, pilisvorosvar, piliscsaba, zsambek, torokbalint, m0, m1, m5, m6, m7, or m31. The buda token was explicitly included in the corrected rerun. Campaign names and ad-group names were not used as classification evidence.
| Keyword text | Campaign context | Criterion status | Spend HUF | Class |
|---|---|---|---|---|
| autómentő | Generic · 16650800567 | PAUSED | 55,966.73 | generic |
| autómentés | Generic · 16650800567 | PAUSED | 51,888.03 | generic |
| autó szállítás | Generic · 16650800567 | PAUSED | 6,591.78 | generic |
| autómentés pomáz | Pomáz · 23974835207 | ENABLED | 3,025.80 | location-specific |
| buda autómentés | Buda · 23974835198 | PAUSED | 2,548.49 | location-specific |
| érd autómentő | Generic / Érd group · 16650800567 | PAUSED | 1,815.98 | location-specific |
| non stop autómentés | Generic · 16650800567 | PAUSED | 1,773.71 | generic |
| budaörs autómentő | Generic / Budaörs group · 16650800567 | PAUSED | 1,657.24 | location-specific |
| 0-24 autómentés | Generic · 16650800567 | PAUSED | 1,218.72 | generic |
| autómentő szentendre | Szentendre · 23974835210 | ENABLED | 1,076.35 | location-specific |
| autómentő szentendre | Generic / Szentendre group · 16650800567 | REMOVED | 1,053.92 | location-specific |
| sos autómentés | Generic · 16650800567 | PAUSED | 1,012.95 | generic |
| autópálya autómentés | Generic / M31 group · 16650800567 | PAUSED | 731.71 | generic |
| autómentő pomáz | Generic / Pomáz group · 16650800567 | PAUSED | 702.37 | location-specific |
| autómentő szentendre | Generic / Szentendre group · 16650800567 | PAUSED | 688.20 | location-specific |
| autópálya autómentés | M5 · 23979397390 | PAUSED | 618.06 | generic |
| autómentő budaörs | Generic / Budaörs group · 16650800567 | PAUSED | 592.28 | location-specific |
| All remaining keyword rows | 21-campaign scope | zero cost | 0.00 | no spend effect |
Reproducible scenario 15 calculation: the query sums integer micros before rounding: location-specific cost L = 13,160.631008 HUF (13,160,631,008 micros), generic cost G = 119,801.685072 HUF (119,801,685,072 micros), and total T = L + G = 132,962.316080 HUF (132,962,316,080 micros). The displayed campaign-level total rounds to 132,962.32 HUF. Share is L / T × 100 = 9.898015765671220248%. The strict test is 2 × L > T, or 26,321.262016 > 132,962.316080, which is false. Therefore scenario 15 is not passed.
Two anti-error checks are explicit: buda autómentés is counted as location-specific even though its criterion was later paused, while autópálya autómentés in the M5 campaign is generic because the keyword text has no route token. Conversely, location terms inside the Generic campaign are counted as location-specific. This prevents campaign-name-only classification.
Scenario 15 verdict: EXPOSED. Generic terms consumed 90.101984234329% of the measured active-target spend, leaving location-specific terms at 9.898015765671%. No spend recommendation or Ads mutation was made before separating delivery and measurement integrity.
| Signal | Fresh value in 2026-08-18 to 2026-09-16 | What it proves and what it does not prove |
|---|---|---|
GA4 event tel_szam_katt, Google / cpc, mobile | 18 events, 14 sessions | Paid-source phone-link event activity. It does not identify the floating widget, prove unique clicks, prove one-to-one attribution, or prove a connected call. |
GA4 event tel_szam_katt, all non-paid and unavailable sources | 24 additional events across organic, direct, unavailable, Bing organic, and ChatGPT assistant rows | Raw event totals cannot be treated as Ads-originated. |
Ads action 6509672057, Phone click proxy (GA4) - Secondary | all_conversions=17.59, conversions=0.0, last conversion 2026-09-14, MANY_PER_CLICK, GA4 custom, non-call proxy | Provider-reported proxy activity. It does not prove five widget-only clicks or a connected call. |
Ads action 897422774, Tel szám kattintás | all_conversions=15.0, conversions=0.0, last conversion 2026-09-14, WEBPAGE, secondary | Another broad phone-link proxy, not a widget-only or connected-call count. |
| Website-call and ad-call paths | Enabled configurations exist, but no current performance row or recent connected-call evidence was returned. The AD_CALL path recorded 0 current conversions. | Configuration and zero rows are not evidence of call quality. Connected, nearby, and urgent outcomes remain UNKNOWN. |
The current GTM evidence uses a broad Click URL contains tel: trigger for phone-link events. The live page assigns gfn-track-phone widget-phone to the floating widget, but the current provider event rows do not expose a widget-specific dimension. Therefore the 18 paid GA4 events and 17.59 Ads all-conversion value are retained as proxies, not promoted to the corrected five verified widget-click gate.
Daily join key: one complete Europe/Budapest date, with the normal provider reporting-delay note. No caller name, phone number, recording, transcript, vehicle registration, or exact address is stored. Missing outcome fields are UNKNOWN, never zero.
| Field | Source and reproducible rule | Owner |
|---|---|---|
date, evidence_time | Closed local date and timestamp for each readback. | Ads operator |
ads_cost_huf, impressions, ads_clicks | Google Ads API campaign and keyword rows in the 21 active-target scope. | Ads operator |
location_specific_cost_huf, location_share_pct | Apply the explicit keyword-text token classifier above. If total cost is zero, share is UNKNOWN. Pass requires location_specific_cost_huf × 2 > total_cost_huf. | Ads operator |
ga4_paid_phone_events, ads_proxy_all_conversions, ads_proxy_conversions | Read GA4 tel_szam_katt with source/medium split and Ads action 6509672057 separately. Do not force the two totals to match. | Measurement owner |
verified_widget_clicks | Count only unique Google-Ads-originated floating-widget clicks with one matching event and preserved paid attribution. A broad tel: event without a widget discriminator is UNKNOWN. | Measurement owner |
connected_calls | Yes only when the operator or phone provider confirms an answered conversation. Missing is UNKNOWN. | Csupi call-answering owner |
connected_nearby_calls | Connected call plus a coarse in-region yes/no/unknown classification based on caller-stated location and an owner-approved service-area rule. No precise location is retained. | Csupi call-answering owner |
connected_urgent_calls | Connected call plus a separate urgent vehicle-help yes/no/unknown disposition. | Csupi call-answering owner |
connected_nearby_urgent_calls | Intersection of connected, nearby, and urgent fields. Never backfill from a widget click or an Ads campaign location. | Csupi call-answering owner |
Current ledger baseline: the supplied FM04 tracker did not contain a completed daily join. Current aggregate evidence therefore records verified_widget_clicks=UNKNOWN and connected_nearby_urgent_calls=UNKNOWN. GA4's 18 paid phone-link events and Ads proxy values remain separate evidence rows.
| Time gate | Warning or failure trigger | Rollback-safe intervention | Owner |
|---|---|---|---|
| Every complete day d = 1 to 14 | If cost exists and cumulative location share is not strictly above 50%, flag the spend gate. If no denominator exists, keep UNKNOWN. If cumulative verified widget clicks are below ceil(5 × d / 14), flag pacing. | Capture the same readback, mark the gate exposed, and hold the account unchanged pending a separately authorized decision. | Ads operator |
| Day 3 | Any missing source-split event read, any paid event without a widget discriminator, or any paid click with no joinable ledger row. | Reconcile definitions and provider lag. Do not count proxy activity as a click or call. | Measurement owner |
| Day 7 | Fewer than 3 cumulative verified widget clicks, a spend-share warning on two consecutive complete days, or no current connected/nearby/urgent outcome rows. | Escalate the exact missing link with a before-state receipt. No Ads, GTM, GA4, website, or budget change in this audit. | Measurement owner and Csupi call-answering owner |
| Day 14 | Fail the corrected gate if verified widget clicks are below 5, location-specific spend is not strictly above 50%, or the connected-nearby-urgent ratio cannot be separately evidenced. Predominance requires connected_nearby_urgent_calls / connected_calls > 50% when connected calls exist. Zero or missing connected calls remains UNKNOWN and does not pass. | Keep the failure exposed, preserve this provider state as the rollback point, and require an explicitly authorized human decision before any intervention. | Ads operator, measurement owner, and Csupi call-answering owner |
Scenario 16 verdict: EXPOSED. The tracker now defines a daily joined evidence model and trigger schedule, but the current supplied evidence does not contain a completed daily widget-to-call-quality ledger. The shortfall can be detected from the next complete read, but it is not yet proven historically.
| Scenario | Verdict | Evidence | Negative or failure-path check | Trigger before day 14 | Owner |
|---|---|---|---|---|---|
| 9 · Landing integrity | PREVENTED at checked technical layer | 21/21 active URLs 200 with unchanged paths and expected content markers. Desktop and mobile direct paths plus a paid-state path rendered the phone route. Representative mobile console had no error or warning. | Three stale route candidates and one unknown route returned explicit 404. Lab performance and per-page real interaction remain UNKNOWN. | Any active URL non-200, redirect, missing marker, mobile overflow, missing widget, or representative console error. | Web/site owner with Ads operator |
| 14 · Phone UX friction | PREVENTED for observed UI visibility, five-click gate UNKNOWN | Widget visible and labelled at 66 × 66 desktop and 62 × 62 mobile. Paid masking exposed five visible reveal controls and did not create overflow. | No live tel click was performed because the control retains the GTM phone class. No synthetic conversion or real call is claimed. | Any paid click without a widget-specific event, any missing widget or reveal control, or cumulative verified clicks below ceil(5 × d / 14). | Measurement owner |
| 15 · Location-spend mix | EXPOSED | L=13,160.631008 HUF, T=132,962.316080 HUF, share 9.898015765671220248%. Strict test 2L > T is false. | Keyword-text classifier explicitly counts location terms inside Generic and excludes generic M5 route wording despite campaign name. | Any complete-day cumulative share at or below 50%, and hard fail at day 14 unless strictly above 50%. | Ads operator |
| 16 · Operations and reporting | EXPOSED | Daily schema, separate click/proxy/call fields, and D3/D7/D14 thresholds are now defined. Current evidence has no completed daily join and call-quality fields are UNKNOWN. | Source-split GA4 rows and zero/absent connected-call routes reject aggregate-tap-equals-call reasoning. | Missing daily row, unresolved paid attribution, fewer than 3 clicks by day 7, or missing connected-nearby-urgent classification. | Ads operator, measurement owner, and Csupi call-answering owner |
#agent-progress, whose CSS forces blue text.Known limits: A genuine paid-session click, a real floating-widget click, one-to-one event identity, connected call, nearby classification, and urgent classification were not performed or available. They are deliberately not claimed. This audit exposes the current gates and gives the next complete daily run a deterministic acceptance test.
Local privacy note: The tracker remains a private local artifact. No public review host was used because the evidence is customer-specific and the contract forbids publication.