# Fusion PPC report verification

Report-only delivery, 13 September 2026. No provider writes, campaign activation, website changes, client messages, paid tool purchases or public publication occurred.

## Reproduce

```sh
python3 /Users/agency/Documents/Agty/Fusion/outputs/fusion-ppc-decisions-20260913/verify-report.py
```

The standard-library validator checks the saved browser DOM against the HTML and normalized decisions, all source paths, local links, copy/creative mappings, complete landing sections, independently recomputed daily performance, lead arithmetic, current provider budget objects and every proposed launch stage. It rejects raw register contact addresses in the three principal user-facing outputs. See [machine result](verification-result.json) and [runnable validator](verify-report.py).

## Source and content audit

- Google daily activity: 6 December 2019 through 12 September 2026. The 2000–2018 probe returned no rows. All retrieved history totals 693,173.37 HUF. Reported historical conversions mix tracking eras and are not submitted enquiries.
- Meta returned delivery from 25 May 2024 through 12 September 2026, 298,537 HUF total. Insights rejects dates before 13 August 2023. Older campaign objects remain retrievable, so the report does not equate report retention with account creation or zero past activity.
- Latest 14 complete Budapest days are 30 August–12 September, compared with 16–29 August. Current-day data is excluded. Recent attribution remains provisional. The older cohort is used for mature comparison, with seven-day re-read rules and explicit Google lag evidence.
- Live register: 44 rows = 28 submitted + 12 explicit tests + 4 unresolved. Recent: 4 = 4 submitted, previous: 11 = 7 submitted + 4 unresolved. Four missing recent dates were matched to notification timestamps. One suspicious phone stays quality-unknown. Notifications are not added as extra people. No standardized qualified-lead total can be established.
- Recent Google submitted-action attribution is zero, while its 21.976531 reported conversions are form starts. Meta reports four pixel Leads. GA4 reports nine aggregate VHK_lead events. These sources are not deduplicated to one another and are never summed as unique enquiries.
- Exact custom goal and action IDs, primary/secondary status, counting rules and attribution settings were read. The custom goal includes a secondary form-start action that remains biddable. Google official documentation supports this specific behavior.
- Six Google and seven Meta decisions each have two populated slides. Reviewed exact live IDs/settings, evidence, mechanism, confidence, timing and rollback rules. Pausing low-spend Meta ads is explicitly portfolio concentration, not proof of failure.
- All 19 comparable Meta creative payloads match the September 11 snapshot on creative ID, body, title, story, asset feed and image hash. Earlier revisions remain unknown. Four historical Google expanded text ads were additionally recovered. Dynamic body statistics are descriptive associations, never causal component credit.
- The 272-file archive inventory includes six Google database snapshots spanning 25 June–23 August 2026. They overlap fresh history and add no independent spend. No verified pre-retention Meta delivery export was found in the inventoried sources.
- Both campaign packages contain ten finished Hungarian copy sets, ten mapped detailed briefs and eleven-section persona landing drafts. Current product page was read in the authenticated browser. Finishes, play clearance, specifications and order language were checked against its rendered text. New URLs and media are planned, not published/generated. No numeric price or delivery promise was invented.
- Every mutually exclusive launch stage sums to the fresh configured 6,000 HUF/day: 3,000 Google and 3,000 Meta. Configured budgets are not hard per-day billing limits. Meta C1/C2 are sequential, and launch uses one benchmark plus one challenger.

## Browser verification

Actual in-app browser, [local report](http://127.0.0.1:41863/index.html). Desktop viewport measured 1440 × 900 and mobile 390 × 843 CSS pixels.

Passed next/previous, dropdown jump, arrow keyboard, section jump, disclosure open, all-slides toggle, actual DOM count of 62 slides and 26 decision slides. Eight displayed real thumbnails loaded. Mobile all-slides check found no overflowing slide or document-width overflow. Wide tables scroll inside their containers. Console error log was empty.

Print media emulation showed every slide and hid the navigation. Native `Page.printToPDF` returned “Printing is not available” in this in-app runtime, so no PDF export is claimed. The native Print button remains available and invokes the browser print flow. All-slides provides complete access without printing.

- [Desktop performance table screenshot](screenshots/desktop-ranking.png)
- [Mobile finished copy screenshot](screenshots/mobile-copy.png)
- [Mobile decision screenshot](screenshots/mobile-decision.png)
- [Actual DOM and interaction receipt](browser-qa.json)

## Files

- [HTML report](index.html)
- [Normalized facts, coverage and decisions](report-data.json)
- [Reusable Hungarian campaign copy and landing drafts](campaign-copy.md)
- [Campaign package JSON](campaigns.json)
- [Rendered slide index](rendered-slides.json)
- Generation sources: [normalize.py](normalize.py), [decisions.py](decisions.py), [campaigns.py](campaigns.py), [build.py](build.py)

Raw first-party register and email evidence stays in the task's private evidence directory. The report links a redacted reconciliation rather than personal contact data. Evidence receipts and screenshots are local, not publicly hosted.

## Parent correction, revision 2

Corrected M03 to compare with the August 16–29 mature cohort CPL of 5,987.71 HUF. The recent 10,202 HUF remains provisional, and the 20,404 HUF spending cap is explicitly a planning heuristic with a subsequent closed-cohort review. G02 now requires successful-submit validation before paid launch and treats the later bidding switch as operational judgment. M06 preserves existing authorization while identifying implementation as outside this report deliverable. Sources and generated artifacts were rebuilt together. Fresh actual DOM readback passed all four correction checks, and the full validator passed again. Unchanged layout/interaction evidence was retained.
