Wider agreed coverage, equally counted phone actions, clean test data and a reusable skill.
READY FOR REVIEW · not launched0 / 12 verified
End goal and end state
Goal: Serve the requested area and hours, count reveals and widget clicks equally, and separate deliberate tests from customer conversions.
Finished means live settings and both measurement paths are verified, a reusable skill is installed, and exact proof and rollback are documented.
Prepare now: review this contract and the unsent client reply. No campaign change, skill installation or executor launch yet.
What changes
Confirmed: all 21 campaigns, weekdays 06:00–22:00 Budapest time. Generic: 50 km from central Budapest. Local campaigns: Hungary presence retained. Mobile-only and existing bids/budget/copy stay.
Confirmed: reveal and widget clicks are equally important. Either can qualify for the same Primary phone-intent conversion. Count One avoids deliberately counting two leads from the same ad interaction. Existing genuine phone CTA coverage stays.
Proposed center: Deák Ferenc tér. Executor must resolve and record its map coordinates. This is a practical interpretation of central Budapest, not a client-specified pin.
Separate bidding choice: Manual CPC stays. Both actions count, but Google does not automatically change manual bids using conversions. A Smart Bidding change is outside this contract.
Boundaries: weekends stay off. These are ad-serving hours, not edits to the website or Google Business Profile opening hours. Actual-call tracking and a mandatory call log are not required.
End goal system
flowchart TD
A["Agreed Search coverage Weekdays 06–22, Generic 50 km central Budapest"]:::confirmed --> B["Normal visitor Consent-aware measurement"]:::confirmed
B --> C["Reveal or widget click Both equally eligible"]:::confirmed
C --> D["One Primary phone-intent goal Count One, separate action diagnostics"]:::confirmed
Q["Explicit QA run Choose supported isolation method"]:::open --> R["Debug evidence only No production conversion pollution"]:::confirmed
S["Reusable skill Client-specific inputs and proof"]:::confirmed --> Q
P["Deák Ferenc tér center Proposed landmark to resolve"]:::assumption --> A
classDef confirmed fill:#E8F5E9,stroke:#2E7D32,color:#173B25
classDef assumption fill:#FCE4EC,stroke:#C2185B,color:#5B1430
classDef open fill:#FFFFFF,stroke:#94A3B8,color:#475569,stroke-dasharray:5 5
Green means a confirmed requirement, not completed implementation. Pink is a proposed detail. Dashed nodes remain open.
Route to the end state
flowchart LR
A["Client hours and area Confirmed requested changes"]:::confirmed --> R
B["Working phone-intent import Preserve both action types"]:::confirmed --> R
C["Test-contaminated reporting Separate QA from now on"]:::confirmed --> R
R["Review this board Read and reconcile comments"]:::open --> L["Later explicit Launch One Sol Medium executor"]:::open
L --> I["Scoped implementation Refresh, snapshot and change"]:::open --> V["Observable verification Provider reads and controlled tests"]:::open --> E["Verified rollout and skill Evidence, limits and rollback"]:::open
classDef confirmed fill:#E8F5E9,stroke:#2E7D32,color:#173B25
classDef assumption fill:#FCE4EC,stroke:#C2185B,color:#5B1430
classDef open fill:#FFFFFF,stroke:#94A3B8,color:#475569,stroke-dasharray:5 5
Diagram rendering failed. The checklist remains the authoritative contract.
the Generic campaign has one enabled50km proximity centered on provider-resolved Deák Ferenc tér and PRESENCE; other20local campaigns retain their Hungary PRESENCE coverage.
Verification and Constraints
✕ no nationwide Generic targeting or addition instead of replacement
✕ no narrow radii added to local campaigns
✕ no unrelated campaign/asset changes.
Evidence: not yet produced. Planned work is not a pass.
Screenshot pending: actual post-change interface or selected debug event. Attach blind Luna High description and parent comparison.
all21targets serve only Monday–Friday06:00–22:00 Budapest time.
Verification and Constraints
✕ no weekend serving or timezone/account-time mutation
✕ no GBP/site business-hours edits
✕ no increase to the agreed planning/exposure band and no bid-strategy or budget change under this contract. Minimum spend remains demand dependent. If verified exposure already exceeds the planning band, report the precise limited decision rather than rewriting unrelated budgets under schedule authority.
Evidence: not yet produced. Planned work is not a pass.
Screenshot pending: actual post-change interface or selected debug event. Attach blind Luna High description and parent comparison.
reveal and widget interactions feed one Primary phone-intent union without duplicate union-event firing for one interaction, with action/placement diagnostics. Count One controls Ads aggregation for the same conversion action, not unique people, calls or jobs.
Verification and Constraints
✕ don't promote both overlapping Ads actions to Primary or duplicate legacy events
✕ don't demote reveal, require connected calls, alter user-approved copy or remove other existing phoneCTAs
✕ preserve dial/reveal/clipboard behavior and consent choices. Explain CountOne aggregation without implying both actions individually always yield two Ads credits.
Evidence: not yet produced. Planned work is not a pass.
Screenshot pending: actual post-change interface or selected debug event. Attach blind Luna High description and parent comparison.
deliberate QA remains observable with a stable run identifier and never contributes to production business conversion counts or eligible bidding signals. Normal visitors retain consent-aware measurement.
Verification and Constraints
✕ no fakegclid, self-clicking paid ads, realcalls, conversion uploads or fabricated business events
✕ no broad source/IP/referrer exclusion that catches customers
✕ no changing consent default to inflate measurement. Keep raw identifiers/private telemetry local. Do not expose test routes that inject conversions into another client/property. Prefer a reversible routing/marking solution
✕ if an Active GA4 exclude filter is used, first prove QA-only matching and disclose its irreversible incoming-data exclusion. Legacy data is not rewritten
✕ supply a reporting exclusion rule for known historic QA.
Evidence: not yet produced. Planned work is not a pass.
Screenshot pending: actual post-change interface or selected debug event. Attach blind Luna High description and parent comparison.
Isolation and test order
Execution order and isolation proof: inventory every phone conversion sender in the deployed site and GTM, including imported GA4 and direct Ads, before interacting. Establish a reversible QA route or outbound interception first, verify it on each sender, and only then run C5/C7/C8. The explicit marker must be available before any conversion sender evaluates, survive same-session navigation/reload, have a bounded lifetime, and clear at teardown. A marker arriving after the first event is a failed test, not partial success. Keep a private run ledger with run ID, timestamps, destination and evidence hashes.
A GA4 filter in Testing is not an exclusion. Never rely on Testing or debug_mode alone to prevent imported conversions. If selecting a filter-based route, validate matches with non-key QA probe events or a separate QA destination while suppressing business conversion submissions, account for propagation delay, and retain sender suppression until actual exclusion is independently evidenced. An Active filter is optional, not required when routing meets the outcome. Do not activate irreversible filtering merely because it appeared in the earlier recommendation.
Implementation freedom: use explicit short-lived QA flag/runID, dedicated QA property or route, validated traffic_type filter, or other supported method that meets both coverage and nonpollution criteria. A separate stream in the same GA4 property alone is not sufficient isolation. No new login/security layer, no broad platform infrastructure. The test mechanism is measurement routing, not an access-control system.
canonical ~/.agents/skills/ads-qa-isolation/SKILL.md and only useful supporting helpers are discoverable from Codex, client-neutral and independently usable on another client without carrying Csupi identifiers or granting write authority.
Verification and Constraints
✕ no replacing existing skills, Claude-specific installation or modifying unrelated clients
✕ no global permission to publish/mutate accounts
✕ no sprawling framework. Preserve per-client configuration, consent semantics, exact identity checks, rollback and source qualification. Invoke skill-creator and writing-for-agents during implementation, and document how to apply it in one concise example.
Evidence: not yet produced. Planned work is not a pass.
stable board with actual saved state, evidence, minimal rollback and remaining business limits, plus one operating handoff.
Verification and Constraints
✕ no acceptance from worker claims alone, no exposing sensitive correspondence/telemetry, no new security gate
✕ no automatic clientsend or extra audio infrastructure. One combined parent recap.
Evidence: not yet produced. Planned work is not a pass.
Screenshot pending: actual post-change interface or selected debug event. Attach blind Luna High description and parent comparison.
Parent ↔ executor handoff
Parent · PREPARE
Contract is ready for review. Independent Sol intent review completed. Two required Luna reviewer models were unavailable; full council coverage is incomplete. No executor exists for this run. Later Launch is required.
Executor · NOT LAUNCHED
Current item: none. No criteria have execution proof yet.
Client reply
An unsent reply is saved in Missive. It describes verified tracking and planned changes separately.
Review the proposed map center, equal-counting rule and Manual CPC boundary. A later explicit Launch authorizes implementation. The executor snapshots scoped state, verifies changes and preserves a narrow rollback.
No new security gate or public private telemetry. The HUF 190,000–215,000 monthly range remains the agreed planning band, not a native hard cap or spend guarantee. Preserve approved ads, keywords, CPC limits, local targeting and existing weekly pacing authority.