Fullstory
El Palacio de Hierro
Strategic Proposal · Pre-Sales Brief · 2026-04-30
Fullstory
FOR
El Palacio de Hierro

One source of experience truth.
Distributed everywhere it's needed.

Palacio is paying for behavioral analytics twice — once in GTM/GA4, again in Quantum Metric — and getting partial coverage from each. FullStory replaces that pattern with a single capture layer that ingests your existing data layer on day one, streams events to GA4 and ad platforms, and unifies behavioral data in your warehouse for CDP and data science.

✓ Validated against your live site QM: 17 events, 2 selectors, 0 PII rules 22 vendors detected, 3 redundant FullStory already partially deployed

You already built the data layer. Let's make it pay off.

El Palacio de Hierro's GTM data layer is rich and well-modeled — Enhanced Ecommerce v3 + GA4 mirror, plus custom events for AI search and merchandising filters. Quantum Metric reads none of it. After deploying QM, the team would still need to write CSS selectors for every event they ever want to capture.

FullStory ingests your existing data layer with no developer work, captures every session by default, streams events back to GA4 and ad platforms (ending the duplicate-instrumentation pattern), and pushes structured behavioral data to BigQuery or Snowflake for the CDP and data-science teams.

Net result: one instrumentation source, one experience truth, distributed everywhere.

You're paying for behavioral analytics twice

Every event your team wants to track today is instrumented in two places — once in GTM (where it's wired into the GA4-compatible Enhanced Ecommerce schema) and a second time in Quantum Metric (where the implementation team writes CSS selectors). Two scopes, two ticket queues, two sets of breakage when the front end ships.

17
Events configured in QM
vs ~92 typical for retailer of this scale
2
CSS selectors used by QM
(.l-plp, .l-plp .b-breadcrumbs-link)
0
PII scrubbing rules configured
compliance gap under LFPDPPP
0
Cart, checkout, purchase, revenue
not tracked in QM today
Today · Quantum Metric

The instrumentation tax — paid twice, coverage is partial

QM is technically deployed but functionally a stub. The team would still need to write CSS selectors for every event they ever want to capture, and as the front-end ships changes those selectors break. Microsoft Clarity is also active, duplicating QM's session-replay capability.

  • No data-layer integration — DOM/XHR scraping only
  • Cart, checkout, purchase events not tracked
  • Custom events (interaccion_search_ai, filter_interaction) ignored
  • Zero PII scrubbing rules — compliance exposure
  • Microsoft Clarity adds a third replay tool with the same gaps
With FullStory

Instrument once. Distribute everywhere.

FullStory ingests your existing GTM data layer via DLO with zero developer work. FullCapture records every session by default. Activation Streams pushes events back to GA4, Google Ads, and other destinations — your team configures one event in FullStory; it lands in every reporting destination automatically.

  • DLO consumes your existing Enhanced Ecommerce schema natively
  • Cart, checkout, purchase, revenue captured day one
  • Custom events flow in automatically — no rule writing
  • Default PII catalog (CVV, RFC, CURP, card numbers, email)
  • Replaces both QM and Clarity
You're not data-poor. You're data-fragmented.

We captured these payloads live from elpalaciodehierro.com on 2026-04-30 — a real PDP, a real PLP, with the QM script running on the page the entire time. Every field below is data your team built into GTM. Quantum Metric is reading none of it.

Two FullStory sessions were recorded while QM was active on the page — one on the Tissot PRX PDP, one on the Burberry brand PLP. The contrast between what FS captured and what QM's 17 events captured is its own demo. Live session links in the appendix.
PDP · productDetail event
// Tissot PRX Casual Plateado, $7,245 MXN { "event": "productDetail", "ecommerce": { "detail": { "products": [{ "id": "42316607", "name": "Reloj para Hombre PRX casual plateado", "price": 7245, "brand": "Tissot", "brandID": "E704", "category": "RELOJERIA", "departmentName": "RELOJERIA", "departmentID": "50401", "subClase": "504010210", "dimension18": "RELOJERIA JOYERIA Y ESCRITURA", "dimension19": "RELOJ CABALLERO" }] } } }
PLP · productImpression event (Burberry, 787 products)
// Position-ranked, AI-personalized via Constructor.io { "event": "productImpression", "constructor_activity": true, "ecommerce": { "currencyCode": "MXN", "impressions": [{ "id": "44926644", "name": "Bolsa Freya", "price": 38990, "brand": "Burberry", "category": "BOUTIQUES LUJO", "dimension18": "LUJO MODA", "list": "Resultado Busqueda", "position": 10 }] } }
The luxury angle that the current stack misses: every product impression carries position (rank in the AI-ranked list) and list (source attribution). This is the data needed to answer "does Constructor.io's #3 ranking convert better than #10 on $38K Burberry handbags?" — a question worth real revenue at luxury price points. QM has no productImpression instrumentation; FullStory ingests it natively via DLO.

Custom events your team built that no system is currently consuming

Custom GTM Event

interaccion_search_ai

AI search engagement, fired by Constructor.io's discovery layer. Critical for measuring how AI search converts on luxury inventory.

Custom GTM Event

filter_interaction

Filter sidebar usage on PLPs. Tells you what shoppers narrow down before they buy. Today: instrumented but unused downstream.

Standard EE Event

promotionImpression

Promo creative views with id, name, creative, position. Measures which Noches Palacio creatives drive carts.

Capture once. Ingest natively. Distribute everywhere.

The shift is not "add another tool." It's the opposite — collapse three replay tools into one, eliminate duplicate GTM-vs-QM instrumentation, and use FullStory as the single source of truth for the user experience that flows out to every system that needs it.

Today · Fragmented

Three behavioral tools, partial coverage from each

  • GTM dataLayer rich and well-modeled — but only consumed by GA4 + ad pixels
  • Quantum Metric: 17 events, 2 selectors, no DLO, no PII rules
  • Microsoft Clarity: duplicates QM session replay
  • FullStory: already partially loaded, not orchestrated
  • Custom events (interaccion_search_ai, filter_interaction) have no destination reading them
  • Every new event = two implementation tickets (GTM + QM)
Proposed · Unified on FullStory

One source, every destination

  • FullCapture records every session by default
  • DLO ingests existing GTM dataLayer natively
  • Activation Streams pushes events to GA4, Google Ads, Floodlight, Meta, TikTok
  • Warehouse Sync delivers structured behavioral data to BigQuery / Snowflake
  • Salesforce CDP gets behavioral signals (rage clicks, frustration, abandon) as attributes
  • One instrumentation source. One implementation ticket.
BEFORE AFTER ──────────────────── ────────────────────────────── Site (SFCC) Site (SFCC) │ │ ├─► GTM ──┬─► GA4 ├─► GTM dataLayer ──┐ │ ├─► 8× Google Ads │ │ │ └─► Floodlight ├─► Ad pixels (kept) │ │ │ │ ├─► Quantum Metric (17 evt) └─► FullStory ◄───────────┘ via DLO ├─► Microsoft Clarity │ ├─► FullStory (partial) ├─► FullCapture (all sessions) ├─► CQuotient + MC Pers │ ├─► Constructor.io ├─► Activation Streams ─┬─► GA4 ├─► Bazaarvoice │ ├─► Google Ads ├─► Datadog RUM │ ├─► Meta / TikTok └─► dw.ac (SFCC native) │ └─► Floodlight │ └─► Warehouse Sync ─────┬─► BigQuery ├─► Snowflake └─► Salesforce CDP Decommission: Quantum Metric, Microsoft Clarity Keep & integrate: GTM, dw.ac, CQuotient, MC Personalization, Constructor.io, Bazaarvoice, Datadog
Day-one capabilities, mapped to your stack

These are the four products that solve the specific problems we identified in your current stack. Each one maps directly to a gap that QM, Clarity, or the duplicate-instrumentation pattern is creating today.

FullCapture + DLO

Capture everything. Read your data layer.

✓

Every session by default

Clicks, scrolls, network requests, console errors, form interactions, frustration signals.

✓

Native GTM dataLayer ingestion

Enhanced Ecommerce v3 + GA4 schema recognized out of the box. Custom events via JSON rules.

✓

Frustration signals built-in

Rage clicks, dead clicks, error clicks, form rage. No rules to write.

Activation Streams

Instrument once. Distribute everywhere.

→

Real-time event streams to GA4

Configure the event in FullStory; it lands in GA4. No more double-instrumenting GTM and QM.

→

Direct to ad platforms

Google Ads, Floodlight, Meta, TikTok, Pinterest — all from one source.

→

Frustration signals as audiences

"Users who rage-clicked the cart button on Burberry" becomes a Google Ads remarketing audience.

Warehouse Sync

Unify CDP + data science around the user.

⊕

BigQuery / Snowflake delivery

Structured event tables, partitioned by date / org / event. Joinable to SFCC orders, Constructor logs, ad conversions.

⊕

Salesforce CDP enablement

Behavioral attributes (cart abandon, frustration, AI-search engagement) flow into your CDP for unified profiles.

⊕

Data-science feature store

LTV, churn, propensity-to-convert models can finally use behavioral features, not just transactional ones.

Privacy & compliance

Default-on PII protection.

⊘

Default PII catalog

CVV, RFC, CURP, card numbers, email, phone — masked or excluded out of the box. QM today: zero PII rules configured.

⊘

Field-level masking

fs-mask / fs-exclude attributes preserve replay while hiding the input.

⊘

LFPDPPP-aligned

Regional controls aligned with Mexican data-protection requirements. Console redaction, IP exclusion, URL exclusion.

Activation Streams ends the duplicate-instrumentation problem

Today, every event your team wants to track gets instrumented in GTM, then re-instrumented in QM. Activation Streams replaces that pattern: configure the event once in FullStory; it lands in GA4, Google Ads, Floodlight, Meta, and any other destination automatically.

Event Palacio cares about Captured by Streamed automatically to
add_to_cartDLO ingesting GTM addToCartGA4, Google Ads, Meta Pixel, Floodlight
purchase (when implemented)DLO ingesting GA4 purchaseGA4, Google Ads, Floodlight, BigQuery
product_impression with positionDLO ingesting productImpressionBigQuery (for AI-rank ROI analysis)
interaccion_search_aiDLO ingesting custom eventGA4, BigQuery
filter_interactionDLO ingesting custom eventGA4, BigQuery
rage_click_on_cart_buttonFullCapture auto-detectedGA4 (as anomaly), Slack, BigQuery
checkout_frustration_signalFullCapture auto-detectedGA4, Salesforce CDP, retargeting audiences
What this enables that isn't possible today: streaming behavioral signals (rage clicks, dead clicks, frustration scores) into GA4 and ad platforms as audiences. Today these signals don't exist anywhere in Palacio's stack — QM nominally captures them but doesn't expose the data, and GA4 has no native concept of frustration. With FullStory + Activation Streams, "users who rage-clicked the cart button on Burberry handbags this week" becomes a Google Ads remarketing audience.
DLO rules ready to deploy against your data layer

These rules were generated from your actual window.dataLayer schema, captured live on 2026-04-30. They map the events your GTM is already firing into normalized FullStory events that downstream Activation Streams and warehouse exports can use cleanly. No developer change to your site is required to deploy them.

FullStory DLO rules · drop into the DLO config UI
[ // ─── Page-level baseline ─── { "id": "page_view", "source": "dataLayer", "match": { "pageType": { "$exists": true } }, "destination": "FS.event", "fsEvent": "Page Viewed", "properties": ["pageType", "pageTitle", "userId1", "userId2", "userStatus"] }, // ─── Product Detail Page view ─── { "id": "product_view", "source": "dataLayer", "match": { "event": "productDetail" }, "destination": "FS.event", "fsEvent": "Product Viewed", "renameMap": { "ecommerce.detail.products[0].id": "product_id", "ecommerce.detail.products[0].name": "product_name", "ecommerce.detail.products[0].price": "price", "ecommerce.detail.products[0].brand": "brand", "ecommerce.detail.products[0].category": "category", "ecommerce.detail.products[0].departmentName": "department", "ecommerce.detail.products[0].dimension18": "segment_lujo", "ecommerce.detail.products[0].subClase": "subclass" } }, // ─── Add to Cart ─── { "id": "add_to_cart", "match": { "event": "addToCart" }, "fsEvent": "Add To Cart", "renameMap": { "ecommerce.add.products[0].id": "product_id", "ecommerce.add.products[0].price": "price", "ecommerce.add.products[0].quantity": "quantity", "ecommerce.add.products[0].brand": "brand" } }, // ─── PLP impression (fan-out per item, preserves position + list) ─── { "id": "product_impression", "match": { "event": "productImpression" }, "fsEvent": "Product Impression", "fanOutOver": "ecommerce.impressions", "renameMap": { "id": "product_id", "price": "price", "brand": "brand", "list": "list_source", "position": "list_position" } }, // ─── AI search interaction ─── { "id": "ai_search", "match": { "event": "interaccion_search_ai" }, "fsEvent": "AI Search Interaction" }, // ─── Filter interaction ─── { "id": "filter", "match": { "event": "filter_interaction" }, "fsEvent": "Filter Used" }, // ─── Purchase (when checkout instrumentation is added) ─── { "id": "purchase", "match": { "event": "purchase" }, "fsEvent": "Order Completed", "renameMap": { "ecommerce.purchase.actionField.id": "order_id", "ecommerce.purchase.actionField.revenue": "revenue", "ecommerce.purchase.actionField.tax": "tax", "ecommerce.purchase.actionField.shipping": "shipping", "ecommerce.currencyCode": "currency" } } ]
Keep, replace, decommission

Most of your stack is doing useful work. The redundancy is concentrated in behavioral analytics and session replay, where three tools overlap. The map below classifies each system by recommended action.

System Today's role Recommendation Why
Behavioral analytics & replay
Quantum MetricReplay + 17 eventsDecommissionStub deployment, no DLO, doubles instrumentation cost
Microsoft ClarityReplay onlyDecommissionDuplicates QM, less mature than FS
FullStoryPartial deploymentPromote to primaryReplaces both above; ingests existing data layer via DLO
Tag management & analytics
Google Tag ManagerTag orchestrationKeepSource of truth for the dataLayer FS DLO consumes
Google Analytics 4ReportingFed via Activation StreamsNo more double-instrumentation; FS streams events in
Google Ads (8 containers)Conversion + retargetingFed via Activation StreamsFS frustration signals add new audiences
Floodlight / DoubleClickConversion measurementFed via Activation StreamsNo change to ad-platform reporting model
Meta / TikTok / Pinterest / Bing UET / RTB HousePixel-based adsFed via Activation StreamsOne source streams to all
Personalization, search, commerce
SFCC native (dw.ac)First-party SFCC analyticsKeepFree, native, not duplicative
CQuotient / EinsteinPersonalization & recsKeep + integrateFS audiences feed Einstein decisions
MC Personalization (igoDigital)Cross-channel personalizationKeep + integrateFS frustration signals become CDP attributes
Constructor.ioAI search & discoveryKeep + measureFS measures conversion impact of Constructor's rankings
Reviews & performance
BazaarvoiceReviews UGCKeepDifferent job, not duplicative
Datadog RUMPerformance monitoringKeepDifferent job, not duplicative
Spend redirection. The Quantum Metric and Microsoft Clarity line items become available for FullStory + Activation Streams + Warehouse Sync. The net P&L impact depends on Palacio's contracts; we can build the side-by-side once we know the QM and Clarity terms.
Validation in 14 days. Decommission decision in 90.

The plan below is paced to clear the validation hurdle quickly, prove parity with QM in production shadow mode, and reach a decommission decision before peak Q3/Q4 trading season.

1
Days 0–14 · Validation

Stand up & confirm coverage

  • FullStory eval org against staging
  • Snippet via existing GTM tag
  • Apply DLO rule catalog
  • Validate against 5-session sample
2
Days 15–30 · Production shadow

Run alongside QM

  • Shadow mode in production
  • First Activation Stream live: FS → GA4
  • Frustration alerts to Slack
  • Exec-level review meeting
3
Days 31–60 · Full coverage

All streams live

  • Full DLO catalog in production
  • Streams to GA4, Ads, Floodlight
  • Warehouse Sync configuration begins
  • QBR with quantified gap-closure metric
4
Days 61–90 · Consolidate

Warehouse + decommission

  • Behavioral data flowing to BigQuery / Snowflake
  • Salesforce CDP integration prototyped
  • Decommission decision: QM + Clarity
  • Contractual transition plan

Validate against your own site this week

The clearest evaluation path is a 60-minute working session against elpalaciodehierro.com with your analytics team in the room. We bring the DLO rule catalog, you bring a sandbox URL, and we stand up the FS eval org live. The validation itself is the demo.

Day-One Wins

Frustration signals on the cart-add flow, AI-rank conversion analysis, default PII protection

Three measurable improvements over the current QM build, deliverable inside the validation window. None of them require front-end engineering work from Palacio's team.

The Strategic Win

Activation Streams ends the GTM-vs-QM duplicate-instrumentation tax

One implementation source, every reporting destination. The analytics team stops shipping the same event twice. Going forward, "instrument once" is the operating model — not a slogan.

The 90-day Outcome

FullStory becomes the source of truth for the user experience, distributed everywhere

QM and Clarity decommissioned. GA4 and ad platforms fed automatically. BigQuery / Snowflake unified for CDP and data science. Salesforce CDP receiving real-time behavioral signals. One layer. One truth.

Every claim in this brief is sourced from the live site

The findings here come from direct observation of elpalaciodehierro.com on 2026-04-30 — including a real PDP cart-add flow and the Burberry brand PLP. Both sessions were captured by FullStory itself, in real time, while Quantum Metric was running on the same page. The contrast is its own demo.

ArtifactWhat it proves
QM SDK snapshot · v1.35.3717 events, 2 selectors, 0 PII rules, no DLO
Live data layer captures · PDP + PLPEnhanced Ecommerce v3 + GA4 mirror, custom events, AI-search flag
Vendor stack inventory · 22 tools detectedThree replay tools (QM + Clarity + FS partial), eight Google Ads containers
FullStory session · PDP cart-add flowEnd-to-end PDP load → cookie consent → cart-add captured by FS while QM was running
FullStory session · Burberry PLP787-product PLP impression event captured with full position + list attribution