# Fusion provider change checklist

All boxes refer to later execution. No live change is marked complete. Record operator, timestamp, before export, after receipt and rollback reference beside each action.

[Overview](index.html) · [Runbook](implementation-runbook.md) · [Checklist](provider-change-checklist.md) · [Client summary](client-summary-hu.md) · [Verification](verification.md)

## Before

- [ ] L01–L04: resolve account/object identities and take narrow snapshots
- [ ] T01–T03: validate successful-submit, dates and browser/server dedup, then match next real enquiry
- [ ] Confirm one 6000 HUF/day allocation stage, exact Meta budget unit and reserved-transfer protocol
- [ ] Verify corrected RSA/3D planner, current landing and required Meta media in all placements

## Change

- [ ] **T01** · Form 3154 / GA4 / GTM: resolve L02 · Inspect success callback, server acknowledgement and all three placements. Emit one aggregate VHK_lead only after accepted submission, preserve diagnostic aliases outside goals. Reuse immutable enquiry ID. Change only the proven faulty trigger/mapping · Dependency: L01–L03 snapshots and reproduced defect.
- [ ] **T02** · Lead Sheet gid0 / bound Apps Script: L03 · Resolve headers by names, preserve received_at and immutable enquiry ID across added columns. Populate missing dates only from matched notification timestamps, never guessed · Dependency: L03 export and exact row matches.
- [ ] **T03** · Meta pixel 1098642584214800 / Apps Script and GTM server path: L02–L03 · Identify every sender and repair failing authorized transport. Use identical event_name Lead and event_id for the same browser/server submission. Do not replay historical failed rows blindly · Dependency: T01, T02 and sender inventory. Owner identity only if real OAuth prompt requires it.
- [ ] **G01a** · Google 2938223921 / action 7586129686 · Keep existing successful-submit action if validated. If irreparable, create one GA4 successful-submit action with same counting/attribution and verified event mapping, record NEW_SUBMIT_ID. Leave aliases diagnostic · Dependency: T01 success proof. New-action alternative only if existing path cannot be repaired.
- [ ] **G01b** · Google custom goal 6458344571 · Set conversion_actions to [validated submitted action], excluding 7586129920 and all hero/CTA/chat aliases · Dependency: G01a, T01 and goal-user inventory L01.
- [ ] **G06-7744821253** · Google conversion action 7744821253 · Set primary_for_goal=false, exclude from new Search custom goal, preserve counting and attribution · Dependency: L01 source snapshot.
- [ ] **G06-7744821256** · Google conversion action 7744821256 · Set primary_for_goal=false, exclude from new Search custom goal, preserve counting and attribution · Dependency: L01 source snapshot.
- [ ] **T04** · Private enquiry ledger and Google offline import mapping: L03 · Add enquiry_id, received_at, consent-appropriate gclid/source/ad ID, contacted, room fit, price acknowledged, quote sent, order, actual value. Test first real matched quote/order import while actions remain secondary · Dependency: T02 and G06. No guessed IDs or values.
- [ ] **G03-8** · Google campaign 23822598651 / new negative criterion · Create negative keyword PHRASE: használt biliárd · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-9** · Google campaign 23822598651 / new negative criterion · Create negative keyword PHRASE: használt biliard · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-10** · Google campaign 23822598651 / new negative criterion · Create negative keyword EXACT: biliárd játékszabályok · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-11** · Google campaign 23822598651 / new negative criterion · Create negative keyword EXACT: biliard szabalyok · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-12** · Google campaign NEW_SEARCH_ID / new negative criterion · Create negative keyword PHRASE: használt biliárd · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-13** · Google campaign NEW_SEARCH_ID / new negative criterion · Create negative keyword PHRASE: használt biliard · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-14** · Google campaign NEW_SEARCH_ID / new negative criterion · Create negative keyword EXACT: biliárd játékszabályok · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G03-15** · Google campaign NEW_SEARCH_ID / new negative criterion · Create negative keyword EXACT: biliard szabalyok · Dependency: L01 term and duplicate check, S01 for new Search.
- [ ] **G04-create-356742283231** · Google asset group 6710749813 / HEADLINE · Create and link replacement text asset: Nézzük meg, elfér-e Önnél · Dependency: L01 exact association snapshot, text length and product fact check.
- [ ] **G04-detach-356742283231** · Google asset group 6710749813 / asset 356742283231 · Detach only this association after replacement is eligible. Do not delete global asset · Dependency: G04-create-356742283231.
- [ ] **G04-create-358503961379** · Google asset group 6710749813 / LONG_HEADLINE · Create and link replacement text asset: Étkező és biliárd egy asztalban. Ismerje meg az átalakítást és a helyigényt! · Dependency: L01 exact association snapshot, text length and product fact check.
- [ ] **G04-detach-358503961379** · Google asset group 6710749813 / asset 358503961379 · Detach only this association after replacement is eligible. Do not delete global asset · Dependency: G04-create-358503961379.
- [ ] **G05-2491387565239** · customers/2938223921/assetGroupSignals/6710749813~2491387565239 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **G05-2491387582279** · customers/2938223921/assetGroupSignals/6710749813~2491387582279 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **G05-2493824310920** · customers/2938223921/assetGroupSignals/6710749813~2493824310920 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **G05-2493824311080** · customers/2938223921/assetGroupSignals/6710749813~2493824311080 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **G05-2493824311120** · customers/2938223921/assetGroupSignals/6710749813~2493824311120 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **G05-2493824317800** · customers/2938223921/assetGroupSignals/6710749813~2493824317800 · Remove this dining-only theme · Dependency: L01 exact ID/text match.
- [ ] **M02-120252434759680184** · Meta ad 120252434759680184 / belga_biliard_carousel_3 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814260184** · Meta ad 120252431814260184 / belga_biliard_carousel_pergola_1 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814290184** · Meta ad 120252431814290184 / belga_biliard_carousel_elenk-meleg · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814270184** · Meta ad 120252431814270184 / belga_biliard_carousel_fa-meleg · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814320184** · Meta ad 120252431814320184 / belga_biliard_carousel_elegans · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252434759670184** · Meta ad 120252434759670184 / belga_biliard_carousel_2 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814360184** · Meta ad 120252431814360184 / belga_biliard_carousel_turkiz-kek · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252431814350184** · Meta ad 120252431814350184 / belga_biliard_carousel_pergola_2 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252435143720184** · Meta ad 120252435143720184 / belga_biliard_carousel_5 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **M02-120252508230230184** · Meta ad 120252508230230184 / belga_biliard_carousel_6 · PAUSED, retain creative and history · Dependency: L01 snapshot. Pause carousel 3 first, then other challengers. Keep 120252431814340184 and 120252434759690184.
- [ ] **S01** · Google / NEW_SEARCH_ID + NEW_SEARCH_BUDGET_ID · Create dedicated nonshared DAILY budget 1500000000 micros and PAUSED FT_Search_DualUse_Test with Search spec below · Dependency: L01, exact schema/field validation in current provider UI or API.
- [ ] **S02** · Google NEW_SEARCH_ID / NEW_ADGROUP_ID · Create enabled DualUse ad group inside paused campaign · Dependency: S01.
- [ ] **S03-38** · Google NEW_ADGROUP_ID / new keyword · EXACT: biliárd étkezőasztal · Dependency: S02, duplicate check.
- [ ] **S03-39** · Google NEW_ADGROUP_ID / new keyword · PHRASE: biliárd étkezőasztal · Dependency: S02, duplicate check.
- [ ] **S03-40** · Google NEW_ADGROUP_ID / new keyword · EXACT: étkező biliárdasztal · Dependency: S02, duplicate check.
- [ ] **S03-41** · Google NEW_ADGROUP_ID / new keyword · PHRASE: étkező biliárdasztal · Dependency: S02, duplicate check.
- [ ] **S03-42** · Google NEW_ADGROUP_ID / new keyword · EXACT: biliárdasztal étkezőasztal · Dependency: S02, duplicate check.
- [ ] **S03-43** · Google NEW_ADGROUP_ID / new keyword · PHRASE: biliárdasztal étkezőasztal · Dependency: S02, duplicate check.
- [ ] **S03-44** · Google NEW_ADGROUP_ID / new keyword · EXACT: átalakítható biliárdasztal · Dependency: S02, duplicate check.
- [ ] **S03-45** · Google NEW_ADGROUP_ID / new keyword · PHRASE: átalakítható biliárdasztal · Dependency: S02, duplicate check.
- [ ] **S03-46** · Google NEW_ADGROUP_ID / new keyword · EXACT: biliárdasztal fedőlappal · Dependency: S02, duplicate check.
- [ ] **S03-47** · Google NEW_ADGROUP_ID / new keyword · PHRASE: biliárdasztal fedőlappal · Dependency: S02, duplicate check.
- [ ] **S04** · Google NEW_ADGROUP_ID / NEW_RSA_ID · Create one enabled RSA with exact corrected copy below, unpinned, final URL current product page · Dependency: S02, copy validation and full destination/3D planner link QA.
- [ ] **S05** · Google NEW_SEARCH_ID / tracking settings · Set final URL suffix from Search spec and use verified account auto-tagging. Retain gclid through redirects/form capture under consent · Dependency: S01, T01 and L01 account tracking snapshot.
- [ ] **B01** · Google campaignBudget 15557925992 · 1500000000 micros = 1500 HUF/day · Dependency: T01, G01b, S01–S05, negatives, Search eligibility and launch gate.
- [ ] **B02** · Google NEW_SEARCH_ID · ENABLED · Dependency: B01 readback, all tracking gates, only one enabled Search test.
- [ ] **M01-create** · Meta act_1783210591808804 / NEW_C1_CAMPAIGN_ID · Create PAUSED C1 OUTCOME_LEADS campaign at 3000 HUF/day campaign budget, no extra ad-set budget · Dependency: T01–T03. Resolve provider HUF budget unit in L01, no blind micros reuse.
- [ ] **M03-adset** · Meta NEW_C1_CAMPAIGN_ID / NEW_C1_ADSET_ID · Create paused website OFFSITE_CONVERSIONS ad set using pixel 1098642584214800, LEAD and C1 settings below · Dependency: M01-create and successful-submit/dedup proof.
- [ ] **M03-benchmark** · Meta NEW_C1_ADSET_ID / NEW_C1_BENCHMARK_AD_ID · Create paused benchmark from ad 120252431814340184 creative snapshot, preserve story/assets with stable URL tags below · Dependency: M03-adset, L04 page/Instagram/creative IDs, destination and media QA.
- [ ] **M03-challenger** · Meta NEW_C1_ADSET_ID / NEW_C1_CHALLENGER_AD_ID · Create paused C1-01 using accepted copy and C1-CR01 brief, produce approved media before launch with stable URL tags below · Dependency: M03-adset, L04 page/Instagram/creative IDs, destination and media QA.
- [ ] **B03** · Meta old campaign 120247127071870184 · PAUSED, retaining configured budget/history · Dependency: New C1 campaign/adset/two ads eligible, T01–T03, transfer snapshot.
- [ ] **B04** · Meta NEW_C1_CAMPAIGN_ID hierarchy · Enable two approved ads and one LEAD ad set under paused campaign, then enable campaign last · Dependency: B03 readback, M03 rows.
- [ ] **S06** · Google NEW_SEARCH_ID bidding strategy · Later switch to Maximize Conversions with no target CPA only after operational review · Dependency: Reliable successful-submit signal, observed lead volume and delivery stability, recorded review. No universal conversion-count threshold.
- [ ] **M04-create** · Meta NEW_C2_CAMPAIGN_ID hierarchy · Build PAUSED C2 by repeating M01-create/M03-adset/benchmark/challenger rows with C2 settings and C2-01. Record separate campaign/adset/ad/creative IDs · Dependency: C1 mature review, same validated event and attribution, produced C2 media.
- [ ] **B05** · Meta NEW_C1_CAMPAIGN_ID · PAUSED, retain configured budget and inventory · Dependency: C2 draft ready and C1 closed-cohort decision recorded.
- [ ] **B06** · Meta NEW_C2_CAMPAIGN_ID hierarchy · Enable approved hierarchy then campaign last at 3000 · Dependency: B05, M04-create.
- [ ] **M05** · Meta selected C1 or C2 ad set / resolved winner ID · Add Facebook Feed and Reels where website-LEAD eligibility supports them. Keep original placements, exclude Audience Network · Dependency: Stable message-test winner, 4:5 and 9:16 assets ready, exact original placement snapshot.
- [ ] **M06-build** · WordPress product variant / resolve L02 · Prepare private C1 /billiardasztal/otthon/ variant with selected persona, actual transformation, 490 × 395 cm clearance or 438 × 342 cm with 122 cm cues, custom quote, finish choices, order/delivery/access and optional room dimensions · Dependency: Accepted C1 landing draft, verified product facts, source backup. Separate website execution, no site writes in this package.
- [ ] **M06-route** · Google NEW_RSA_ID and C1 new ads final destination · Only after verified C1 variant: route relevant C1/Search ads to /billiardasztal/otthon/. C2 stays current until its own /billiardasztal/vendeglatas/ variant passes same build/QA gate · Dependency: M06-build published and live form/tracking readback, exact URL snapshot.

## Immediate readback

- [ ] After each G05 removal: only target absent, all other pre-step themes unchanged, eight retained themes and audience preserved. Expected remaining totals: 13 → 12 → 11 → 10 → 9 → 8.
- [ ] G05 final group acceptance, only after all six removals: exactly eight retained themes and no removed targets.
- [ ] After each M02 pause: only target changes to PAUSED, all other statuses unchanged, both retained anchors ACTIVE. Expected active totals: 11 → 10 → 9 → 8 → 7 → 6 → 5 → 4 → 3 → 2.
- [ ] M02 final group acceptance, only after all ten pauses: exactly the two retained anchors ACTIVE. Carousel 3 is the first pause.
- [ ] Complete the matching proof column for every changed row in the runbook, no success inferred from a save response alone.
- [ ] Read effective Google goal containing only validated submit action and secondary offline actions.
- [ ] Read exact ten Search keywords, four new negatives per campaign, corrected four headlines/two descriptions, destination, CPC and networks.
- [ ] Read each paused ad and both retained anchors by ID. New Meta campaign uses standard LEAD and at most two active ads.
- [ ] Confirm Google 3000 + Meta 3000, one active Meta campaign, old Search paused, no duplicate budgets or stranded reservation.
- [ ] Confirm next real submission identity, timestamps, transport receipt and event reconciliation. Exclude tests.

## Seven-day review

- [ ] Review search terms, eligibility and spend without adding duplicate phrase keywords.
- [ ] Reconcile actual submitted enquiries, GA4 events, Google attribution and Meta attribution separately.
- [ ] Review contacted room/price fit, quote and order evidence, preserve unknowns.
- [ ] Enforce zero-lead exposure caps before further spend, record closed cohort end date.

## Mature review

- [ ] Meta: first 14 days + 7, final 28 stable days + 7. Compare to 5987.71 mature platform CPL, not provisional 10202 as a mature benchmark.
- [ ] Search: 42000 HUF mature exposure and zero submitted leads triggers stop/transfer. Later bid switch has no universal conversion-count threshold.
- [ ] Challenger 20404 cap is a heuristic. Pause spending at cap, reread after at least 7 days before stop/resume.
- [ ] Record qualification tradeoffs and inconclusive findings. C2 only replaces C1 after review, placement test only after message stage.
- [ ] Re-read longer attribution lag where diagnostics warrant it. Do not count later exposures in the earlier closed cohort.

## Rollback

- [ ] Pause affected new delivery first, reconcile effective state, reserve allocation.
- [ ] Restore only changed goal/criteria/association/placement/URL or script version using the row-specific recovery reference.
- [ ] Search paused before PMax rises to 3000. C1/C2 paused before old or prior valid Meta campaign restores 3000.
- [ ] Do not restore broken tracking or unsupported claims as a normal success state. Keep affected launch on hold if baseline unsafe.
- [ ] Re-read restored state and 6000 allocation, preserve enquiry history, no blind event replay or duplicate object creation.
