糖心原创

(see the * 'adobe' handle in functions.php — no async, no defer), so a page-load * Target offer has already set `data-hdr` by the time this runs. * * An answer that lands after this point is inert rather than acted on: * `apply()` finds the prune settled and does nothing, so the visitor * keeps the nav they were served instead of watching it change. That is * the deliberate trade-off — a late activity collects no data, but no * visitor ever sees the wrong nav or waits for the right one. */ (function () { var VARIANTS = ["a","b","c"]; var DEFAULT = "a"; /** * QA-only. When the on-page switcher is drawn we keep every variant in * the DOM so it can toggle between them live and you can see that the * chrome never repaints. Gated by the same constant as the switcher, so * it is false everywhere the switcher is absent — including production. */ var QA_KEEP_ALL = false; var root = document.documentElement; var settled = false; function valid(v) { return VARIANTS.indexOf(v) !== -1; } /** Publish the decision and let the nav JS bind. */ function finish(active) { root.setAttribute('data-hdr', active); // Read by the Adobe Analytics client to attribute the test. root.setAttribute('data-hdr-active', active); if (typeof window.initHeaderNav === 'function') window.initHeaderNav(); /** * `variant` is set before the event so late listeners can tell * "already done" from "not yet". main.js is enqueued in the footer * and therefore always misses the event itself. */ window.medalliaNav.variant = active; document.dispatchEvent(new CustomEvent('medallia:nav-ready', { detail: { variant: active } })); } function prune(active) { if (settled) return; settled = true; if (QA_KEEP_ALL) { finish(active); return; } /** * Only menu items carry data-nav-variant, so this can never touch * the shared chrome. CSS has already hidden the losers; removing * them keeps document.querySelector-based nav JS unambiguous. */ var list = document.querySelectorAll('#site-header [data-nav-variant]'); for (var i = 0; i < list.length; i++) { if (list[i].getAttribute('data-nav-variant') !== active) { list[i].parentNode.removeChild(list[i]); } } finish(active); } window.medalliaNav = { variant: null, apply: function (v) { if (valid(v)) prune(v); } }; // `?hv=` sets this server-side; a Target offer in the blocking // embed sets it before the body is parsed. var pre = root.getAttribute('data-hdr'); if (valid(pre)) { prune(pre); return; } /** * Carried forward from an earlier pageview. Read client-side, never in * PHP: WP Engine does not vary its page-cache key on arbitrary cookies, * so server-side personalisation here would serve the first anonymous * visitor's variant to everyone. */ var m = document.cookie.match(/(?:^|; )medallia_nav_variant=([^;]*)/); if (m && valid(m[1])) { prune(m[1]); return; } prune(DEFAULT); })();

Frontline-Ready-AI

September 24, 2026

Hero Featured

糖心原创 2026 H2 Product Release: From Signals to Action

Frontline-Ready AI already powers how you Analyze and Assist today. This new release makes both sharper, and highlights where we're…

August 4, 2026

Customer Experience

The Architectural Design Principles Behind Enterprise AI That Delivers Value

We are approaching an inflection point. I believe that by 2027, AI will no longer be judged by the sophistication…

July 20, 2026

Customer Experience

Designing for a World of AI Agents, Not Just Human Users

If you’ve been following along our executive perspective series, you’ve heard a little from our CEO Mark Bishof about where…

January 26, 2026

Product Updates

The Full Story: How a Manager Saved a VIP Customer

Explore how a fictional home improvement retailer uses Total Experience Profiles to recover a VIP customer’s loyalty.?

January 22, 2026

Product Updates

The Red Alert: An Urgent Dip in CX Scores and the Fix Found on the Go

Here’s how both Mobile Scorecard Notifications and Root Cause Assist on mobile can help brands spot a declining customer experience…

January 16, 2026

Product Updates

Signal in the Noise: Restoring App Experience Baseline in Minutes

Continuing our Frontline-Ready AI series, we’ll show you how a fictional home improvement retailer uses Digital Experience Analytics for mobile…

January 14, 2026

Product Updates

A Mountain of Text: How a Retail Giant Finds Clarity Amidst the Chaos

dy AI key use cases to life, here’s how a fictional home improvement retailer instantly analyzes thousands of customer interactions…