Fusion Tables, internal only

Client asset pack
acceptance report


What the six-deck pack contains, the five live measurement defects behind it, the ordered fix plan, and what still cannot be sourced. This deck also carries the self-QA and acceptance results for the whole pack.

Built 2026-09-02 Not for client review English, agency use

This run

Six decks plus one index

  • Index · fusion-asset-pack-index-2026-09. Client-facing landing page listing the five client decks.
  • riport-30-nap · 30 napos eredmények. The dated 30-day results deck: spend, clicks, CPC, enquiries, Meta platform and demographic breakdowns.
  • kreativ-teljesitmeny · Hirdetéskreatívok teljesítménye. Ranks the 39 Meta ad creatives against 20 rows of dated insight data.
  • versenytars-hirdetesek · Versenytársak hirdetései. Competitor ad screenshots and copy patterns to reuse or avoid.
  • hirdetesi-strategia · Hirdetési és célzási stratégia. Two targeting scenarios, audiences and a copy bank, built without a confirmed budget baseline.
  • persona · Persona elemzés. Buyer personas and the messages mapped to each.
  • belso-anyagok · Belső anyagok és QA (this deck). Internal only. Defects, fix plan, provenance, gaps and acceptance status for the whole pack.
Forrás_shell/decks.json, the pack's own deck manifest, 2026-09-02.

Why this deck exists

Five live measurement defects

IDSeverityDefect
F-21CriticalA cached page has served one visitor's UTM and Google click ID inside live form action URLs to the next visitor since a clean HIT was graded on 2026-07-30. Never fixed.
F-02CriticalThe armed "Submit lead form" Google Ads conversion action fires on a URL that returns HTTP 404. A separate "Purchase" action sits on a URL that returns 200 and has not fired yet.
F-04CriticalThe CRM source column is null for every enquiry row, so no submitted enquiry can be joined back to the ad that produced it.
F-03CriticalGoogle Ads conversion_value carries the conversion count under unit "huf", producing a ROAS of 0.0005 with no real revenue behind it.
WindowsHighThe five data sources behind the internal reporting pipeline cover three different date ranges, so a single report can mix incompatible windows under one "current" label.
Forrás/Users/agency/.claude/cf-review/fusion-ppc-system-audit-2026-08-31-v1/index.html, consolidated findings table, observed 2026-08-30. Windows severity assessed against /Users/agency/Documents/Agty/Fusion/outputs/loop-runs/2026-08-28-fusiontables-report/report_data.json, "windows" and "source_health".

Fix plan, step 1 of 5

F-21: cached page leaks click IDs between visitors

1

Symptom. A clean cache HIT on the billiard-table landing page serves one visitor's UTM parameters and gclid inside the three rendered CF7 form action URLs to the next visitor who hits the same cache entry.

2

Root cause. The production cache layer, owner not yet identified, caches query-derived personalization fields as part of the static HTML instead of stripping them before the page is cached.

3

Fix. Exclude query-derived click IDs and UTM values from cached HTML. Generate attribution fields per request after the cache layer. Never cache a personalized form action.

4

Who. Site or cache owner, currently unassigned.

Proof it is fixed

An automated clean HIT/MISS matrix using two distinct synthetic visitor IDs shows neither visitor receives the other's values, the page stays at HTTP 200, and every CF7 form action contains only current-request values. No live form submit required.

Forrásedit-manifest.md, EDIT-01, T2 evidence T1-F-audit-005:T-004. Order: first. Fixing attribution before this is closed writes wrong click IDs into new fields instead of empty ones.

Fix plan, step 2 of 5

F-02: the enquiry conversion action cannot fire

1

Symptom. The Google Ads "Submit lead form" conversion action is a page-load trigger on a URL that returns 404. A separate "Purchase" action sits on a URL that returns 200 and is armed but silent.

2

Root cause. Form start stayed Primary and counted Every in Google Ads while the real submission-confirmation URL was never wired to a working conversion action, so both spend and bidding optimize on a page load, not a submission.

3

Fix. Generate one lead_id on server-accepted CF7 success, map it to one canonical GTM and GA4 event, then make the deduplicated submitted-lead action Primary, count once, and move form start and the dead Purchase action to Secondary or retire them.

4

Who. Site or GTM owner for the event, Google Ads account owner for the conversion action change. Both currently unassigned.

Proof it is fixed

Google Ads change preview shows the exact action IDs, Primary or Secondary status, count and value settings. GTM Preview and GA4 DebugView show exactly one start event and one submission event per test action, with matching IDs.

Forrásedit-manifest.md, EDIT-02/03/04, T2 evidence T1-F-audit-005:G-003,G-004 and T1-F-audit-008. Order: second, after F-21 so the new event does not inherit a poisoned click ID.

Fix plan, step 3 of 5

F-04: enquiries carry no source

1

Symptom. crm.source_column is null on every enquiry row in the form register. No submitted enquiry can be traced back to Google or Meta spend.

2

Root cause. The form register headers never included source, campaign, click-ID or landing-page fields, so a submission lands with no attribution even where a click ID was technically available upstream.

3

Fix. Add lead_id, source, medium, campaign, content, term, landing URL and every click ID to the Sheet, populated from the fields the EDIT-02 payload already captures at submission time.

4

Who. Sales or CRM owner for the sheet schema, coordinated with the site owner who ships EDIT-02. Both currently unassigned.

Proof it is fixed

Schema readback confirms the new columns exist. An aggregate completeness report shows fill rate by field. The ten historical rows remain intact, and one synthetic test row flows through the new columns with no personal data.

Forrásedit-manifest.md, EDIT-06, T1-F-audit-004, T2-FRESH-FORM-SHEET-20260830. Order: third, once F-21 and F-02's event are live so the new columns fill with real values.

Fix plan, step 4 of 5

F-03: conversion value is a count, not forint

1

Symptom. The Google Ads conversion_value field carries the raw conversion count tagged with unit "huf", producing a ROAS of 0.0005 that reads as a real return-on-spend figure.

2

Root cause. No verified revenue figure exists anywhere in the stack. The CRM schema has quote and payment fields, but no filled Fusion outcome value, so the count was left in the value field as a placeholder.

3

Fix. Remove the forint-labelled value from the conversion action now. Report spend, clicks and enquiries only, never a computed ROAS, until offline enhanced conversions import a real quote or purchase value from the CRM.

4

Who. Ads account owner for the immediate removal. Sales or CRM owner for the eventual real-value import. Both currently unassigned.

Proof it is fixed

Google Ads readback shows the conversion action carrying no value, or an explicitly disabled value field. No pack deck or client report prints a ROAS number until the real-value import is live.

Forrásedit-manifest.md, EDIT-04 and EDIT-07, T2-FRESH-CRM-SCHEMA-20260830. Order: fourth, after the CRM source column exists so a future value import has a place to read revenue from.

Fix plan, step 5 of 5

Five sources, three different windows

1

Symptom. One report run pulls Google Ads and Meta Ads on 2026-07-25 to 08-23, BigQuery on 2026-07-24 to 08-22, the CRM sheet on 2026-07-26 to 08-24, and work evidence on 2026-06-23 to 08-23.

2

Root cause. Each collector pulls its own trailing window independently, driven by per-source lag and API history limits, and the report assembler merges them without normalizing to one canonical window.

3

Fix. Pick one canonical window per report run. Have every collector clip or pad to it, or return UNAVAILABLE for that source. Treat source_health.range as a gate a report cannot pass with mismatched ranges.

4

Who. The reporting-pipeline owner, the same code line that writes report_data.json.

Proof it is fixed

A rerun of the collector shows every source_health.range entry equal for one report_id, or an explicit UNAVAILABLE for any source that cannot supply that exact window.

Forrás/Users/agency/Documents/Agty/Fusion/outputs/loop-runs/2026-08-28-fusiontables-report/report_data.json, windows and source_health. Order: fifth and last, a reporting-assembly fix independent of the four account-side defects.

Dependencies

Fix sequence, in the order it must run

StepFixDepends onBlocks
1F-21, cache stops leaking click IDsnone2, 3, 4, 5
2F-02, conversion action repointed, Purchase retired13
3F-04, CRM source and click-ID columns added1, 24, 5
4F-03, mislabeled value removed, real-value import planned35
5Report windows normalized to one canonical range1, 2, 3, 4none
Forrásaudit executive-review.md ordered repair plan, cross-checked against edit-manifest.md's implementation order EDIT-01 → EDIT-02 → EDIT-03 → EDIT-04/05/06 → EDIT-07/08.

Where the numbers came from

Data provenance across the whole pack

FileWindowRowsConsumed by
.tmp/overnight-2026-08-10/data/meta_ads.jsonno window field, account-level creative export39 adskreativ-teljesitmeny
.tmp/overnight-2026-08-10/data/meta_ad_insights.json2026-07-11..2026-08-0920 rowskreativ-teljesitmeny
.tmp/fusion-ppc-2026-08-06/breakdowns.json2026-07-08..2026-08-06Google: 4 breakdown sets. Meta: 4 breakdown sets, 15 adsetsriport-30-nap
outputs/loop-runs/2026-08-28-fusiontables-report/report_data.json5 source windows, 3 distinct ranges, see next slide7 source_health entriesriport-30-nap, belso-anyagok
Forrásevery path above is absolute under /Users/agency/Documents/Agty/Fusion/. Counts and windows read out of each file with python3, not copied from any earlier prompt. Deck consumption cross-checked against the .note blocks in each deck's own index.html and provenance.json.

Defect detail

Five sources, five ranges

SourceCurrent windowStatus
google_ads2026-07-25 .. 2026-08-23degraded, change-event history before 07-26 unavailable
meta_ads2026-07-25 .. 2026-08-23degraded, results field is a form-start signal, not a verified enquiry
search_consolenot availableabsent, no property configured for this client
ga4not availableabsent, no measurement configured for this client
bigquery2026-07-24 .. 2026-08-22disabled, no verified GA4 BigQuery export configured
crm_sheet2026-07-26 .. 2026-08-24degraded, blank legacy date header, 7 QA rows excluded
work_evidence2026-06-23 .. 2026-08-23degraded, Activity Log skipped, no CRM page ID configured
Forrásoutputs/loop-runs/2026-08-28-fusiontables-report/report_data.json, windows and source_health, 7 entries. Of the 5 sources that return a window, 3 distinct date ranges appear: the two ad platforms share one range, BigQuery a second, the CRM sheet and work evidence each their own.

Gaps

What is unverified or unavailable

MetricWhy not availableWhat would fix it
Cost-per-enquiry, ad-attributed ROIEnquiries carry no source column, F-04Ship the fix-plan step 3 CRM columns
Enquiry source breakdown by channelSame source-column gap, F-04Same as above, then a backfill window
Qualified lead, quote acceptance, purchase, revenueNo structured qualification field exists in the form register or CRM for either channelEDIT-06 sheet fields, then EDIT-07 offline conversion import
GA4 landing-page funnelNo GA4 measurement configured for this clientConfigure a GA4 property and link it in client config
Search Console organic figuresNo Search Console property available to this clientGrant Search Console access and link it in client config
Fresh Meta account and dataset readbackThe configured Meta API session is invalid, error 190/467, no authorized tokenRe-authorize a live Meta access token for the ad account
Verified combined monthly Meta plus Google budget baseline (B)T4A and T4B, the tasks that were to resolve baseline B, never ran, both stayed WAITING_DEPENDENCYRun T4A/T4B against a fresh authenticated account readback
Forrásreport_data.json source_health, T2 fresh-evidence-register.md (T2-FRESH-GOOGLE-ACCESS-20260830, T2-FRESH-META-ACCESS-20260830), and T4A/T4B run-state.md files under the contracts directory.

Traceability

Evidence index

  • Audit: /Users/agency/.claude/cf-review/fusion-ppc-system-audit-2026-08-31-v1/index.html
  • Frozen contracts: /Users/agency/Documents/Agty/Fusion/.claude/worktrees/fusion-client-asset-pack-mid/outputs/loop-runs/20260901-fusion-client-asset-pack/contracts/goals.md
  • T2 funnel and data flow: .../contracts/t2/current-state-funnel-and-data-flow.md
  • T2 edit manifest: .../contracts/t2/edit-manifest.md
  • T2 event taxonomy: .../contracts/t2/event-conversion-taxonomy.md
  • T2 fresh evidence register: .../contracts/t2/fresh-evidence-register.md
  • Origin orchestration gist: /Users/agency/Documents/Agty/Fusion/.tmp/chat-gists/20260901-fusion-orch/gist.md
  • Meta creatives: /Users/agency/Documents/Agty/Fusion/.tmp/overnight-2026-08-10/data/meta_ads.json
  • Meta insights: /Users/agency/Documents/Agty/Fusion/.tmp/overnight-2026-08-10/data/meta_ad_insights.json
  • Breakdowns: /Users/agency/Documents/Agty/Fusion/.tmp/fusion-ppc-2026-08-06/breakdowns.json
  • Report data: /Users/agency/Documents/Agty/Fusion/outputs/loop-runs/2026-08-28-fusiontables-report/report_data.json
  • Pack root: /Users/agency/Documents/Agty/Fusion/.claude/worktrees/fusion-client-asset-pack-exec/deliverables/fusion-client-asset-pack-2026-09-02/
  • This deck: .../fusion-client-asset-pack-2026-09-02/belso-anyagok/index.html
Forrásevery path listed is the absolute path this deck read from. Long shared prefixes truncated to fit the row, full paths repeat verbatim in provenance.json and notes.md next to this file.

Acceptance

Contract delivery status: T4A, T4B, T7

TaskOriginally asked forThis pack deliversStill open
T4ADecision-level Meta and Google strategy for the single pool-table landing page, allocated against a verified monthly budget baseline Bhirdetesi-strategia deck's single-offer scenario, built without a confirmed BBaseline B verification, WAITING_DEPENDENCY, NOT STARTED at source
T4BFull six-offer-group strategy at or below 1.5x baseline Bhirdetesi-strategia deck's second scenario, same baseline gapSame baseline B verification, WAITING_DEPENDENCY, NOT STARTED at source
T7Source-traceable Google and Meta targeting and campaign pack for both scenarios, keyword-measured under a USD 3 DataForSEO cappersona and hirdetesi-strategia decks carry targeting and audience detail. No DataForSEO keyword run occurred in this packDepended on accepted T4A and T4B, both still WAITING_DEPENDENCY at source
Forráscontracts/goals.md, T4A/T4B/T7 goal-v1.md objectives and run-state.md status fields, all read 2026-09-02. T4A, T4B and T7 never started in the original orchestration this pack traces back to. This pack is a separate, narrower build that reused their evidence rather than resuming their runtime goals.

QA

QA summary

QA summary, all six decks

DeckSlidesLocal QALive HTTP
30 napos eredmények13PASS200
Hirdetéskreatívok teljesítménye13PASS200
Versenytársak hirdetései14PASS200
Hirdetési és célzási stratégia35PASS200
Persona elemzés22PASS200
Belső anyagok és QA24PASS200
MethodPlaywright chromium at 1280x900, device scale factor 1, no other viewport. Each deck is checked for slide navigation by keyboard and by the on-screen arrows, for page scroll, for slides-app chrome, for per-slide overflow, for em-dashes and semicolons in rendered text, and for console and page errors. 64 individual checks ran across the six decks, 0 failed.

QA

QA: riport-30-nap

30 napos eredmények

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 em-dashes in rendered textPASS
0 semicolons in rendered textPASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence13 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

QA

QA: kreativ-teljesitmeny

Hirdetéskreatívok teljesítménye

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 em-dashes in rendered textPASS
0 semicolons in rendered textPASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence13 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

QA

QA: versenytars-hirdetesek

Versenytársak hirdetései

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 em-dashes in rendered textPASS
0 semicolons in rendered textPASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence14 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

QA

QA: hirdetesi-strategia

Hirdetési és célzási stratégia

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 em-dashes in rendered textPASS
0 semicolons in rendered textPASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence35 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

QA

QA: persona

Persona elemzés

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 em-dashes in rendered textPASS
0 semicolons in rendered textPASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence22 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

QA

QA: belso-anyagok

Belső anyagok és QA

CheckResult
Deck is slidesPASS
Arrow key turns the pagePASS
On-screen back arrow worksPASS
On-screen forward arrow worksPASS
Navigation returns to slide 1PASS
No page scroll at 1280x900PASS
No slides-app chrome, 2 nav buttons onlyPASS
No slide overflows its 1280x900 framePASS
0 console errors, 0 page errorsPASS
Live HTTP status200
Comment layer present in fetched HTMLyes
Evidence24 slides, document scrollHeight 900 px, 0 em-dashes, 0 semicolons, 0 console errors. Screenshots of slides 1 and 2 are in the run directory under qa/shots/. Measured with Playwright at 1280x900, device scale factor 1.

Acceptance

Acceptance A1 to A8

Acceptance rows A1 to A8

RowRequirementStatusEvidence file
A1Six decks plus the index are live on review.clientsflow.huPASSqa/a1-live.md
A2Every deck is slides: arrow key and on-screen arrows turn the page, no page scroll at 1280x900, no app chromePASSqa/a2-slides.md, qa/shots/
A30 em-dashes and 0 semicolons in client copy, 0 console errors per deckPASSqa/a3-copy.md, qa/a3-console.md
A4Every number traces to a source file and window, unavailable is labelledPASSqa/a4-provenance.md
A5The creative deck extends the 2026-08-24 report rather than rebuilding itPASSqa/a5-extend.md
A6Gist exists and the strategy deck cites the T4A, T4B and T7 contract itemsPASSqa/a6-contracts.md
A7Work committed on a branch, nothing on main, no secretsPASSqa/a7-git.md
A8Index cards with status, slide count and what to check, plus the round 2 handoffPASSround-2-handoff.md

Acceptance

Missing items

Disclosed limitations, by deck

30 napos eredmények

  • The 316 and 976 index values and the work counters are carried over from the accepted v2 report, not recomputed from raw platform logs.

Hirdetéskreatívok teljesítménye

  • The CTR ranking excludes four ads below the stated minimum impression floor.
  • The duplicate-upload pattern is stated as a correlation, not as a cause.

Versenytársak hirdetései

  • biliardcentrum.hu Meta presence is not covered by the snapshot, so it is labelled not available rather than zero.
  • 4Biliard.hu individual Google ad start dates are not in the snapshot, only the aggregate count of four.

Hirdetési és célzási stratégia

  • The monthly baseline B is unverified because the Meta API token is dead, so every allocation is a percentage with one historical illustration.
  • Interest targeting categories are proposals, no current audience size measurement was possible.
  • Five non-billiard landing pages are proposed, not confirmed live.

Persona elemzés

  • Persona 4 has no age or gender anchor, it is anchored on region and platform only.
  • Budapest and Pest combined clicks and form starts are not available, only the verified spend share.

Belső anyagok és QA

  • The five-ranges finding id was read from the audit's top-10 table, not from the full consolidated findings file.
Nothing was skipped silentlyEvery deck shipped its full required structure, so no deck carries a v1 draft badge on the index. The items above are disclosed data limitations, each already stated on the slide that carries it.

Sources

Source list

  • Measurement audit, 2026-08-31, /Users/agency/.claude/cf-review/fusion-ppc-system-audit-2026-08-31-v1/index.html
  • Frozen T4A/T4B/T7 contracts and T2 handoffs, contracts/ directory dated 2026-09-01
  • Origin orchestration gist, session 019ff730-b932-73c2-9f77-f5ccd4c498b7, 2026-08-12
  • meta_ads.json, meta_ad_insights.json, .tmp/overnight-2026-08-10/data/
  • breakdowns.json, .tmp/fusion-ppc-2026-08-06/
  • report_data.json, outputs/loop-runs/2026-08-28-fusiontables-report/
  • v2 report style reference, deliverables/fusion-30d-riport-2026-08-23/index.html
  • _shell/decks.json, the pack's own deck manifest