Geography fixed
Every active campaign in the target cohort has an explicit, provider-readable geographic target that matches its verified campaign label and the documented service-area evidence. No campaign relies on its name alone.
End goal: correct the two user-annotated defects in the verified Csupi Google Ads account: make the active campaign geography explicit and evidence-backed, and make the active campaigns optimize for the web phone interaction that covers phone-number-reveal buttons and the floating phone widget. The pass is narrowly scoped, read back after every external write, and must leave unrelated Ads and measurement state unchanged.
Every active campaign in the target cohort has an explicit, provider-readable geographic target that matches its verified campaign label and the documented service-area evidence. No campaign relies on its name alone.
Every active campaign uses the existing web phone-interaction conversion goal as its biddable campaign-specific goal. The signal covers clicks on phone-number-reveal buttons and the floating phone widget, without claiming that a click is a connected call.
Campaign status, budgets, bidding strategy, ads, keywords, networks, devices, languages, account-level conversion actions and website/GTM state remain unchanged except for the exact requested campaign-goal and geographic-target mutations.
The before and after resource IDs, exact mutation scope, provider response, post-write readback, and any UI screenshot are saved locally. A failed or ambiguous write is not reported as complete.
End state: the exact current active 21-campaign cohort and its pre-write location criteria, campaign-goal rows, conversion action identity, budgets, statuses and bidding state are captured for customer 4891907898.
Pass when: the account identity is read back; all 21 resource IDs are listed once; the intended phone action is verified as the existing enabled `tel_szam_katt`/phone-interaction action; and a before snapshot can be compared field-by-field with the after snapshot.
Must not: include paused legacy campaigns, infer identity from a browser tab, or start a write before the exact account and object IDs are verified.
End state: every active campaign has a positive `LOCATION` or `PROXIMITY` target that is traceable to verified project/service-area evidence. City campaigns use their verified city target; motorway campaigns use only a provider-supported, evidence-backed geographic scope. Generic keeps its existing verified Budakeszi 40 km target unless the same evidence proves a narrower correction.
Pass when: the post-write provider readback shows the expected geographic criterion for all 21 active campaigns, no unintended location rows exist, presence behavior remains explicit, campaign IDs and statuses are unchanged, and the mapping table is saved with criterion IDs and names.
Must not: invent radii, broaden service areas from campaign names, use unverified business locations, touch paused/legacy campaigns, or change budgets, bids, keywords, ads or schedules.
End state: for each active campaign, the biddable campaign-specific goal is the existing web `PHONE_CALL_LEAD / WEBSITE` phone-interaction goal backed by the verified `tel_szam_katt` action. Its event coverage is verified against the site’s `gfn-track-phone` phone-reveal buttons and floating `widget-phone` link. Other campaign-specific goal categories are not biddable for this target cohort unless the provider model requires an equivalent exact representation.
Pass when: all 21 campaign-goal rows read back with the web phone-interaction goal biddable; non-phone goal categories are read back as non-biddable for these campaigns; the existing action remains enabled and primary/included; and no duplicate conversion action is created.
Must not: create synthetic conversions, place a call, change account-level action status, publish GTM, edit website code, delete conversion actions, or claim that the interaction proves a connected call, lead, job or revenue.
End state: a post-write diff proves that only the requested location criteria and campaign-specific goal rows changed.
Pass when: campaign status, budgets, bidding, ads, keywords, network, devices, languages, URLs, account-level conversion actions, GTM and website hashes match the before-state, except for the explicitly authorized fields.
Must not: treat a successful API response as proof of a narrow diff, accept hidden account-wide changes, or leave any partial write unexplained.
End state: a concise explanation states which campaigns were fixed, what exact goal now drives them, which settings were intentionally untouched, and any campaign that remains blocked by missing geographic evidence.
Pass when: the report contains exact before/after IDs, timestamps, screenshots or scripts, provider receipts, a strict success matrix, and an honest statement of remaining UNKNOWNs. The project state and changelog record the result without claiming more than the readback proves.
Must not: call a partial mutation complete, promise a learning-phase exit date, or publish private Ads evidence.
The contract above is black. The LUNA.MaX executor must append evidence, screenshots, provider receipts and status changes below. Every new or edited sentence in this region must be blue and use the `progress-entry` or `blue` class. Preserve the black contract and screenshot placeholders.
Waiting for the LUNA.MaX executor to begin. This placeholder is part of the black base template.
| Rule | Verification | Must not do |
|---|---|---|
| Exact account and scope. | Read back customer 4891907898, the 21 active campaign IDs and the intended conversion action before writing. | Never reuse an unresolved account picker or touch paused/legacy campaigns. |
| Evidence-backed geography. | Every new location criterion maps to an approved evidence row and is read back by criterion ID. | Never invent a radius or use a campaign name as the only proof of service area. |
| Phone interaction only. | All 21 campaign goal rows point to the verified web phone-interaction category, with the existing `tel_szam_katt` action preserved. | Never create synthetic events, call a click a connected call, or change account-level conversion actions. |
| Minimal mutation. | Before/after diff contains only the explicitly requested geographic and campaign-goal fields. | Never modify budgets, bids, ads, keywords, website, GTM, GA4, billing or publication state. |
| Private and recoverable. | Local JSON/Markdown receipts and localhost board include timestamps, resource IDs and rollback-safe prior state. | Never expose credentials, caller details or publish private Ads evidence. |
| Blue progress rule. | All executor-added text is blue and remains inside `#agent-progress`. | Never recolor or silently rewrite the black base contract. |