Meiqia live-chat widget not showing / integration error fix lookup

Meiqia live-chat widget not showing / integration error fix lookup tool illustration
Fig: Meiqia chat integration not-showing / error fix lookup (L1 behavior + L2 root cause + five integration methods)

Did your Meiqia web live-chat widget not show up after pasting the code, the chat button never appear, the console report meiqia.js blocked, or agents get no chats? Get three things straight first - did the script not load at all (placement / ad blocker / cache), did it load but get hidden by page styling / stacking, or did it load fine but the config not match (entId / domain / SPA lifecycle). Look up the symptom or keyword you hit (e.g. not showing, adblock, entid, spa, mobile, sdk push): first the L1 behavior & official positioning, then the L2 root cause & fix, then the five integration methods and real cases. Need install / setup? See Meiqia download / customer-service integration guide.

Step 1: check whether the script loaded, then split into four buckets

When Meiqia chat doesn't show, 9 times out of 10 it's one of four buckets - first see whether the script even loaded: F12 -> Network, search meiqia.js; no request or a non-200 status means it didn't load. (1) Load failure - code in the wrong place (it belongs before </body>, not in <head>), blocked by an ad-blocker rule (ERR_BLOCKED_BY_CLIENT), held by CDN / browser cache, or HTTPS cert / mixed content; (2) Config / authorization - entId mismatched with the workbench (script loads but agents get no chats), or the site domain not authorized in the console; (3) Framework integration - a Vue/React/Next SPA destroys the container on a route change and the widget isn't rebuilt; (4) Display / mobile / SDK - site CSS pushes the bubble off-screen / a third-party plugin overlays the DOM, mobile needs its own deploy, in-app needs the SDK. Fuller setup: Meiqia website integration guide.

Load failureplacement . ad blocker . cache . HTTPS
Paste the Meiqia JS before (not in ); F12 -> Network, search meiqia.js and check the status (should be 200); ERR_BLOCKED_BY_CLIENT usually means an ad-blocker extension - retest in incognito or whitelist; clear CDN cache after publishing; ensure full HTTPS with no mixed content.
Config / authorizationentId . domain whitelist . sub-channels
entId is your company's unique id; a mismatch with the workbench means "the script loads but agents get no chats" (check Settings - Team - ID lookup); the site domain must be authorized via "Add integration site"; use a separate sub-channel (probe) per business line instead of reusing one snippet.
Framework integrationSPA . route change . manualInit
A Vue/React/Next SPA destroys the DOM on a route change and the widget isn't auto-rebuilt; use _MEIQIA('manualInit') to stop auto-init and call _MEIQIA('init') in a route hook (useEffect / mounted) to re-mount on demand.
Display issuesstyle conflict . stacking . third-party plugins
Loaded but invisible: usually site-wide CSS overrides the bubble position, or a heatmap / analytics / SEO plugin edits the DOM and overlays the container; F12 -> Elements, search the meiqia container and check for display:none, a losing z-index, or off-screen coords.
Mobile / SDKmobile web . AppKey . push
Mobile / PC web is the same snippet but needs its own deploy; in-app uses the native SDK (first "Add APP config" in the console for an AppKey); push splits into "no push" (in-app only) and "custom push server" (delivered even after leaving the app).
API callswithoutBtn . showPanel . customer info
Want your own button: _MEIQIA('withoutBtn') hides the built-in button, and call _MEIQIA('showPanel') on click to open the chat; pass / sync customer info within the init timing, or it won't take effect.
Chat window / button not-showing triage (two steps first: did the script load -> is the config right)Chat not showingTwo bucketsScript didn't load ->placement . ad blocker . cacheLoaded but hidden / no connect ->stacking . entId . domain . SPAFour root buckets (read cause / fix per item)1. Load failureplacement . block . cache2. Config / authentId . domain whitelist3. FrameworkSPA route . init4. Display / mobile / SDKstacking . mobile . push
Fig 1: Meiqia not-showing triage - check whether the script loaded, then split into load / config / framework / display

Step 2: the most overlooked root cause -> L2 (the widget = third-party off-domain async JS injection)

Key idea: the Meiqia web widget is not a static component embedded in your page - it's a meiqia.js file loaded asynchronously from Meiqia's off-domain origin that then dynamically injects a chat container (DOM / iframe) into your page and opens a cross-origin long-lived connection to Meiqia's servers. That explains most "mysterious" no-shows: (1) it's a third-party off-domain script - AdBlock / uBlock block it by their "third-party tracking / ads" rule lists, so ERR_BLOCKED_BY_CLIENT and the button never appears (while the console looks fine); (2) it injects the DOM asynchronously - in <head> it blocks, an SPA route change destroys the container and it won't auto-rebuild (use manualInit + _MEIQIA('init')), and other heatmap / analytics plugins editing the DOM can overlay its stacking; (3) it binds to your company via entId and is gated by a domain whitelist - with a wrong entId or unauthorized domain the script loads but "can't connect a chat"; (4) mobile and PC are two separate integrations, in-app is the SDK (AppKey), and push splits into "no push" vs "custom push server". Once you see this injection chain, every symptom below has one logic. Below is the integration self-check panel; further down are the five integration methods and 2026 estimates.

Integration self-check panel (green = confirmed / red = easily missed)Check itemVerdictStateMeiqia code pasted before (not )placementconfirmedmeiqia.js status 200 in F12 -> Networkscript loadconfirmedConsole typeof _MEIQIA is functioninitializedconfirmedShows in incognito / with ad blocker offad blockerto verifyentId matches workbench + domain authorizedconfig / authconfirmedRe-init after SPA route change + no plugin overlayframework / stackingto verifyNote: red = the two most overlooked - ad-blocker extensions (ERR_BLOCKED_BY_CLIENT) and framework / stacking (SPA route changes, third-party plugins editing the DOM); check these two first.
Fig 2: Meiqia integration self-check panel (green = confirmed / red = easily missed)
Meiqia pre-integration self-check panel green/red items illustration
Fig: check "code placement + meiqia.js 200 + initialized" first, then "ad blocker + framework/stacking" - the last two are most overlooked

Full symptom table (L1 behavior / official positioning . L2 root cause)

Meiqia five integration methods compared (code / difficulty / features / scenario / time-to-live . official docs)

Integration methodCode / difficultyFeature completenessBest forTime to live
Web JS widgetone JS snippet . lowfullest (float / popup / auto-greet / visitor trail)PC + mobile sites (officially recommended)~3-5 min
Chat linkno code . lowestbasic chatno-tech / drop in a quick chat linkinstant
API / WebIM SDKneeds dev . highdeep customization (custom UI / system / order integration)teams with dev capacity for deep fusiondepends on dev
Native app SDKintegrate SDK . highin-app chat + message pushiOS / Android appsdepends on dev
CMS quick setupplugin / one-click . lowsame as the JS widgetWordPress / Fkw / Shopify sitesminutes

Meiqia not-showing causes & integration-methods comparison (2026 estimate)

The following are 2026 estimates synthesized from Meiqia's official help (Access Channels / JavaScript web widget API) and public integration troubleshooting (not vendor commitments, not first-hand measurement; for reference, shifts by version and browser policy):

DimensionEstimate / comparison
Not-showing cause split (community / tickets . est.)placement / not loaded ~35% > ad blocker / browser extension ~25% > config / auth (entId / domain) ~20% > framework (SPA) ~12% > style / third-party plugin conflict ~8%
What integration really isthe web widget = third-party off-domain async JS injecting the DOM + a cross-origin long-lived connection (not an embedded static component); hence affected by placement, ad-block rules, page CSS stacking, SPA lifecycle
Per-platform integration (est.)PC / mobile web = JS widget (same code, deployed separately); app = native SDK (AppKey); WeChat / Douyin / RED = channel-authorized integration
Ad-blocker impact (est.)about 30-40% of PC users run an ad-blocker extension -> the third-party chat script is blocked by ad rules (ERR_BLOCKED_BY_CLIENT), a leading cause of "console fine, user side missing"
JS widget time to live (official)paste the dedicated JS at the page bottom and it goes live in about 3-5 minutes; entId is the company's unique id, and a mismatch with the workbench means agents get no chats

Estimate basis: source baseline + time extrapolation (meiqia.com/help Access Channels / JavaScript web widget, meiqia.im website-integration guide, public integration troubleshooting, 2026); shifts with version and browser blocking policy. Rely on Meiqia's latest official info.

Real-world cases - quick read