C01 / Google Ads remediation / revision 1 / black-base contract

Campaign delivery and phone-widget optimization

This is the live goal contract and progress surface for the new LUNA.MaX execution session.

AccountCsupi Autómentés / customer 4891907898
Scope21 enabled EXACT targets; 23 non-EXACT legacy campaigns remain paused
ExecutorLUNA.MaX, fresh session, maximum supported reasoning
Live URLhttp://127.0.0.1:18765/deliverables/google-ads-c01-remediation-plan.html

End goal

Leave the authorized C01 Google Ads setup able to generate qualified search clicks across its intended locations, with safe budget and bidding controls, policy-eligible ads and valid destinations, and phone-widget clicks as the campaign optimization signal. Leave a complete private evidence trail that makes every material campaign setting and every ad-copy asset reviewable.

Required end state

Goal-loop states and transition gates

StateAllowed meaningTransition evidence
PLANNEDThis contract exists, the localhost page is open, and no execution claim is made.Plan file exists and is reachable through the localhost URL.
IN PROGRESSAuthorized Ads/tracking changes may be made inside the defined scope. The plan is updated continuously.Each update records the observed state, timestamp, and evidence path in blue text.
VERIFYINGWrites are paused while the same account/object state is read back.Provider/API/UI readback matches the intended change, or the discrepancy is recorded.
COMPLETEAll required deliverables and end-state gates pass. No material issue is silently deferred.Fresh provider readback, artifact checks, and live/local verification are linked in the final handoff.
BLOCKEDAn irreducible provider, authentication, or physical dependency remains after safe recovery.Exact failed gate, attempted alternatives, owner action, and resume point are recorded. Do not call this complete.

Target deliverables and proof floor

DeliverableRequired end stateVerification criteriaConstraints: must not doEvidence placeholder
D1. Serving-ready campaigns All 21 EXACT targets have eligible enabled ads, active ad groups, intended exact keywords/negatives, valid destinations, and controls that permit intended search delivery. Legacy remains paused. Fresh API/UI readback lists every target campaign and ID, status, ad/ad-group/keyword counts, policy status, final URL HTTP result, budgets, bidding, locations, schedule, devices, networks, and campaign-goal status. The result must explicitly say which targets are actively eligible to bid versus only enabled.
  • Do not enable any non-EXACT legacy campaign.
  • Do not raise total approved budget, bypass policy review, or delete historical evidence just to improve a pass rate.
Screenshot placeholder: Ads campaign grid and serving/eligibility readback
D2. Ads and landing quality Current serving ads use safe, location-relevant copy, no broken dynamic insertion, no known destination failure, and valid final URLs. Disapproved serving assets are replaced or removed from the enabled path. Provider asset/ad readback records every enabled target ad, headlines, descriptions, pins, ad strength, approval status and policy reasons. Automated HTTP checks cover every enabled final URL and the overview records any remaining uncertainty.
  • Do not reuse a generic ad in a location group when it creates a false location promise.
  • Do not claim “approved” from a local HTTP 200 alone or from an old screenshot.
Screenshot placeholder: approved ad and destination details
D3. Phone-widget click optimization One canonical consent-aware conversion action counts the intended phone-widget click, is primary/included for C01 bidding, and is not duplicated by another primary phone-click action. Real-call actions are secondary or non-biddable. Ads readback proves action ID/name, status, category, primary/secondary, counting, windows, attribution, and campaign goal inclusion. GTM/container readback and a safe preview or network/DOM test prove the widget click event fires once under the allowed consent state. A real attributed call is not required for this click-optimization end state, but must not be falsely claimed.
  • Do not place a real call, create synthetic conversions, or use a fake gclid as proof.
  • Do not re-add inline gtag Ads/GA4 tags or publish unrelated GTM changes.
Screenshot placeholder: conversion action and GTM/preview evidence
D4. Ad-copy and RSA overview google-ads-c01-settings-and-ad-copy-overview.html is a private, readable inventory of the actual current copy: campaign/ad/ad-group, every headline, pin, every description, final URL, policy/strength state, and the headline-description combinations that can appear. Provider readback row counts reconcile to the enabled target scope. The artifact distinguishes actual assets from illustrative RSA combinations, identifies pinned positions, states any Google serving uncertainty, and has no stale or invented copy.
  • Do not omit an asset because the table is large.
  • Do not present hypothetical combinations as guaranteed impressions or performance.
Screenshot placeholder: ad-copy overview and combination explorer
D5. Complete campaign settings matrix The same overview contains a large table covering every material Google Ads setting exposed for each campaign and relevant child object, with current value, rationale, risk critique, and a better option or “no change” explanation. Matrix coverage is checked against the provider schema/UI: status, budget, bidding, goals, networks, locations/presence, language, schedule, devices, URL options, ad groups, keywords/match/negatives, ads/assets, policy, and serving diagnostics. Unknown/unavailable fields are explicitly labelled.
  • Do not silently collapse campaign-specific values into one account-wide claim.
  • Do not change a setting merely because the critique column identifies a better theoretical option.
Screenshot placeholder: settings matrix and rationale/risk columns
D6. Final evidence and localhost progress This plan remains available at the localhost URL throughout execution and ends with a timestamped status, linked artifacts, provider receipt, verification results, unresolved limits, and exact resume action if anything remains. Plan is served by a local HTTP server and opened in the ChatGPT in-app browser. Every executor-added or changed text block is blue. Final HTML files are non-empty, valid, private/local, and checked for no credentials. Ads/GTM/GA4/site changes receive same-object post-write readback.
  • Do not publish private Ads data to a public review host.
  • Do not mark COMPLETE while a required provider readback or artifact is missing.
Screenshot placeholder: localhost plan view and final verification panel

Baseline risks to close

Live executor progress

2026-09-15 16:53:38 CEST · IN PROGRESS · baseline verified

Fresh pre-write evidence confirms customer 4891907898 / Csupi Autómentés: exactly 21 enabled EXACT | targets and 23 non-EXACT legacy campaigns paused. The logic audit identifies 12 target campaigns without an enabled ad, five primary targets limited by disapproved ads, a paused secondary bidding pool with 0.01 HUF child bids, and destination failures in the prior target-ad read. The tracking audit confirms the consent/GTM/Ads/GA4/WCM stack and the canonical website-call action, but no real attributed call. Next: fresh read-only/API/UI inventory, then only the authorized C01 fixes with same-object readback.

Evidence: logic audit, tracking audit, and this plan’s black-base contract.

2026-09-15 16:57:44 CEST · VERIFYING · first provider mutation

After a fresh identity/scope check, removed 68 obsolete campaign criteria from EXACT | Buda | Primary (campaign 23974835198). Google Ads returned 68 mutation results. A same-call read was eventually consistent and initially returned an incomplete Buda row set; a fresh follow-up snapshot at 16:58 CEST confirmed exactly four active criteria: Hungarian language plus desktop, mobile, and tablet devices. The 21 target campaigns remained enabled and all 23 non-EXACT legacy campaigns remained paused. No legacy object was included in the request.

2026-09-15 17:42:40 CEST · VERIFYING · final provider and artifact readback

Fresh final snapshot captured at 2026-09-15T15:23:55.663531+00:00 confirms customer 4891907898 / Csupi Autómentés, exactly 21 enabled EXACT | targets, 23 non-EXACT non-removed legacy campaigns paused, and no query errors. Target budgets and bidding controls remain within the approved ceiling: primary 4,276.30 HUF/day, secondary 986.80 HUF/day, Generic 1,315.80 HUF/day, combined 199,998.56 HUF over 30.4 days. No budget increase or new spend commitment was made.

Target structure now reads back as 89 active campaign criteria after 629 obsolete criteria removals and 13 criteria creations, including Hungarian language on all targets, Desktop/Mobile/Tablet on all targets, and the Generic Budakeszi 40 km proximity plus four exact negatives. Non-generic active location rows remain UNKNOWN/PARTIAL because conflicting historical scope was not invented. Current enabled groups contain 86 positive EXACT keyword rows, with the Érd and Solymár missing terms created; no active phrase/broad target rows or target ad-group negatives remain.

RSA reconciliation created 21 enabled named RSAs and paused 22 old target ads. Exactly one enabled target RSA remains per campaign, with valid location-relevant copy and 21/21 canonical final URLs returning HTTP 200. Provider policy readback is still REVIEW_IN_PROGRESS / UNKNOWN approval and PENDING strength for the new ads, so D1 and D2 remain PENDING. Campaign diagnostics may retain HAS_ADS_DISAPPROVED, NO_AD_GROUP_ADS, or review-learning reasons from paused/historical objects and must not be read as final delivery proof.

The editable GA4 phone-click action 6509672057 is now primary_for_goal=true and included in conversions. Forwarding-number action 7641831023, duplicate phone-tap action 897422774, and ad-call action 272393221 are secondary/excluded; account call reporting still points to the separate ad-call action. GTM was verified read-only in container GTM-TH67S8M, workspace 15 with zero changes: tag 17 emits tel_szam_katt, tag 13 is the Ads conversion tag, both use the broad tel: link trigger, and built-in consent checks were read. No GTM publish, real call, form, synthetic conversion, fake gclid, or live phone click was performed, so D3 is PARTIAL.

The approved customer-level call asset 47107206664 remains enabled and eligible. Direct campaign-association validation was rejected by Google with FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE; no invalid actual write was made. The overview records account-level inheritance as expected but not directly enumerated by the campaign-asset read. Passive live checks found one GTM bootstrap, one consent script, one widget marker, and no inline gtag() on representative pages. D3 is PARTIAL, D4 is PASS, D5 is PARTIAL, and D6 is PASS. The six screenshot slots remain explicit placeholders because no fresh Ads screenshots were captured.

Evidence: full private ad-copy/settings overview, compact JSON receipt, and the final handoff path recorded below. No site deployment or public hosting occurred.

2026-09-15 17:51:04 CEST · BLOCKED · provider review gate confirmed

A second fresh read-only API snapshot at 2026-09-15T15:47:21.658074+00:00 returned the same 21 enabled target RSAs with REVIEW_IN_PROGRESS, UNKNOWN approval, and PENDING strength. An independent authenticated Ads-console fallback was attempted for customer 4891907898; Google returned an HTTP 500 error page, so it supplied no contradictory policy readback. No guessed URL variant, policy bypass, or additional provider write was attempted.

This is an external blocker for the terminal D1/D2 claim, not for the completed artifacts. The exact resume point is a same-object readback after Google finishes review. D1/D2 remain PENDING; D3/D5 remain PARTIAL; D4/D6 remain PASS. The parent handoff contains the recovery questionnaire, tested alternatives, ownership, and rollback point.

Executor editing rule: preserve this base structure, keep every new or changed progress/report text inside an .agent-update element so it renders blue, and leave the base contract text black. Update this file as evidence arrives, not only at the end.

Parent acceptance

Parent task: 01a0a269-78d2-7191-9709-7009b8d01715 on local. The parent accepts only a final handoff that links D1-D6, states actual provider results, distinguishes built/tested/deployed, and identifies any unproven or blocked condition.